mirror of
https://github.com/mihonapp/mihon.git
synced 2026-10-16 13:48:09 -07:00
Rename Preference.enabled to visible to correctly reflect usage
This commit is contained in:
@@ -11,7 +11,7 @@ import tachiyomi.core.common.preference.Preference as PreferenceData
|
||||
|
||||
sealed class Preference {
|
||||
abstract val title: String
|
||||
abstract val enabled: Boolean
|
||||
abstract val visible: Boolean
|
||||
|
||||
sealed class PreferenceItem<T, R> : Preference() {
|
||||
abstract val subtitle: String?
|
||||
@@ -24,7 +24,7 @@ sealed class Preference {
|
||||
data class TextPreference(
|
||||
override val title: String,
|
||||
override val subtitle: String? = null,
|
||||
override val enabled: Boolean = true,
|
||||
override val visible: Boolean = true,
|
||||
val widget: @Composable (() -> Unit)? = null,
|
||||
val onClick: (() -> Unit)? = null,
|
||||
) : PreferenceItem<String, Unit>() {
|
||||
@@ -39,7 +39,7 @@ sealed class Preference {
|
||||
val preference: PreferenceData<Boolean>,
|
||||
override val title: String,
|
||||
override val subtitle: String? = null,
|
||||
override val enabled: Boolean = true,
|
||||
override val visible: Boolean = true,
|
||||
override val onValueChanged: suspend (value: Boolean) -> Boolean = { true },
|
||||
) : PreferenceItem<Boolean, Boolean>() {
|
||||
override val icon: ImageVector? = null
|
||||
@@ -55,7 +55,7 @@ sealed class Preference {
|
||||
val valueText: @Composable (Int) -> String = { it.toString() },
|
||||
val valueRange: IntProgression = 0..1,
|
||||
@IntRange(from = 0) val steps: Int = with(valueRange) { ((last - first) / step) - 1 },
|
||||
override val enabled: Boolean = true,
|
||||
override val visible: Boolean = true,
|
||||
override val onValueChanged: suspend (value: Int) -> Boolean = { true },
|
||||
) : PreferenceItem<Int, Boolean>() {
|
||||
override val icon: ImageVector? = null
|
||||
@@ -73,7 +73,7 @@ sealed class Preference {
|
||||
val subtitleProvider: @Composable (value: T, entries: Map<T, String>) -> String? =
|
||||
{ v, e -> subtitle?.format(e[v]) },
|
||||
override val icon: ImageVector? = null,
|
||||
override val enabled: Boolean = true,
|
||||
override val visible: Boolean = true,
|
||||
override val onValueChanged: suspend (value: T) -> Boolean = { true },
|
||||
) : PreferenceItem<T, Boolean>() {
|
||||
internal fun internalSet(value: Any) = preference.set(value as T)
|
||||
@@ -95,7 +95,7 @@ sealed class Preference {
|
||||
val subtitleProvider: @Composable (value: String, entries: Map<String, String>) -> String? =
|
||||
{ v, e -> subtitle?.format(e[v]) },
|
||||
override val icon: ImageVector? = null,
|
||||
override val enabled: Boolean = true,
|
||||
override val visible: Boolean = true,
|
||||
override val onValueChanged: suspend (value: String) -> Unit = {},
|
||||
) : PreferenceItem<String, Unit>()
|
||||
|
||||
@@ -120,7 +120,7 @@ sealed class Preference {
|
||||
subtitle?.format(combined)
|
||||
},
|
||||
override val icon: ImageVector? = null,
|
||||
override val enabled: Boolean = true,
|
||||
override val visible: Boolean = true,
|
||||
override val onValueChanged: suspend (value: Set<T>) -> Boolean = { true },
|
||||
) : PreferenceItem<Set<T>, Boolean>() {
|
||||
internal fun internalSet(value: Set<Any?>) = preference.set(value as Set<T>)
|
||||
@@ -138,7 +138,7 @@ sealed class Preference {
|
||||
val preference: PreferenceData<String>,
|
||||
override val title: String,
|
||||
override val subtitle: String? = "%s",
|
||||
override val enabled: Boolean = true,
|
||||
override val visible: Boolean = true,
|
||||
override val onValueChanged: suspend (value: String) -> Boolean = { true },
|
||||
) : PreferenceItem<String, Boolean>() {
|
||||
override val icon: ImageVector? = null
|
||||
@@ -153,7 +153,7 @@ sealed class Preference {
|
||||
val logout: () -> Unit,
|
||||
) : PreferenceItem<String, Unit>() {
|
||||
override val title: String = ""
|
||||
override val enabled: Boolean = true
|
||||
override val visible: Boolean = true
|
||||
override val subtitle: String? = null
|
||||
override val icon: ImageVector? = null
|
||||
override val onValueChanged: suspend (value: String) -> Unit = {}
|
||||
@@ -162,7 +162,7 @@ sealed class Preference {
|
||||
data class InfoPreference(
|
||||
override val title: String,
|
||||
) : PreferenceItem<String, Unit>() {
|
||||
override val enabled: Boolean = true
|
||||
override val visible: Boolean = true
|
||||
override val subtitle: String? = null
|
||||
override val icon: ImageVector? = null
|
||||
override val onValueChanged: suspend (value: String) -> Unit = {}
|
||||
@@ -172,7 +172,7 @@ sealed class Preference {
|
||||
override val title: String,
|
||||
val content: @Composable () -> Unit,
|
||||
) : PreferenceItem<Unit, Unit>() {
|
||||
override val enabled: Boolean = true
|
||||
override val visible: Boolean = true
|
||||
override val subtitle: String? = null
|
||||
override val icon: ImageVector? = null
|
||||
override val onValueChanged: suspend (value: Unit) -> Unit = {}
|
||||
@@ -181,7 +181,7 @@ sealed class Preference {
|
||||
|
||||
data class PreferenceGroup(
|
||||
override val title: String,
|
||||
override val enabled: Boolean = true,
|
||||
override val visible: Boolean = true,
|
||||
|
||||
val preferenceItems: List<PreferenceItem<out Any, out Any>>,
|
||||
) : Preference()
|
||||
|
||||
@@ -45,7 +45,7 @@ fun StatusWrapper(
|
||||
highlightKey: String?,
|
||||
content: @Composable () -> Unit,
|
||||
) {
|
||||
val enabled = item.enabled
|
||||
val enabled = item.visible
|
||||
val highlighted = item.title == highlightKey
|
||||
AnimatedVisibility(
|
||||
visible = enabled,
|
||||
|
||||
@@ -50,7 +50,7 @@ fun PreferenceScreen(
|
||||
when (preference) {
|
||||
// Create Preference Group
|
||||
is Preference.PreferenceGroup -> {
|
||||
if (!preference.enabled) return@fastForEachIndexed
|
||||
if (!preference.visible) return@fastForEachIndexed
|
||||
|
||||
item {
|
||||
Column {
|
||||
|
||||
+1
-1
@@ -267,7 +267,7 @@ object SettingsAdvancedScreen : SearchableSettings {
|
||||
),
|
||||
Preference.PreferenceItem.TextPreference(
|
||||
title = stringResource(MR.strings.pref_reset_user_agent_string),
|
||||
enabled = remember(userAgent) { userAgent != userAgentPref.defaultValue() },
|
||||
visible = remember(userAgent) { userAgent != userAgentPref.defaultValue() },
|
||||
onClick = {
|
||||
userAgentPref.delete()
|
||||
context.toast(MR.strings.requires_app_restart)
|
||||
|
||||
+1
-1
@@ -85,7 +85,7 @@ object SettingsAppearanceScreen : SearchableSettings {
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = amoledPref,
|
||||
title = stringResource(MR.strings.pref_dark_theme_pure_black),
|
||||
enabled = themeMode != ThemeMode.LIGHT,
|
||||
visible = themeMode != ThemeMode.LIGHT,
|
||||
onValueChanged = {
|
||||
(context as? Activity)?.let { ActivityCompat.recreate(it) }
|
||||
true
|
||||
|
||||
+2
-2
@@ -162,7 +162,7 @@ object SettingsDownloadScreen : SearchableSettings {
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = downloadNewUnreadChaptersOnlyPref,
|
||||
title = stringResource(MR.strings.pref_download_new_unread_chapters_only),
|
||||
enabled = downloadNewChapters,
|
||||
visible = downloadNewChapters,
|
||||
),
|
||||
Preference.PreferenceItem.TextPreference(
|
||||
title = stringResource(MR.strings.categories),
|
||||
@@ -171,7 +171,7 @@ object SettingsDownloadScreen : SearchableSettings {
|
||||
included = included,
|
||||
excluded = excluded,
|
||||
),
|
||||
enabled = downloadNewChapters,
|
||||
visible = downloadNewChapters,
|
||||
onClick = { showDialog = true },
|
||||
),
|
||||
),
|
||||
|
||||
+1
-1
@@ -168,7 +168,7 @@ object SettingsLibraryScreen : SearchableSettings {
|
||||
),
|
||||
title = stringResource(MR.strings.pref_library_update_restriction),
|
||||
subtitle = stringResource(MR.strings.restrictions),
|
||||
enabled = autoUpdateInterval > 0,
|
||||
visible = autoUpdateInterval > 0,
|
||||
onValueChanged = {
|
||||
// Post to event looper to allow the preference to be updated.
|
||||
ContextCompat.getMainExecutor(context).execute {
|
||||
|
||||
+15
-15
@@ -98,7 +98,7 @@ object SettingsReaderScreen : SearchableSettings {
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = readerPreferences.drawUnderCutout,
|
||||
title = stringResource(MR.strings.pref_cutout_short),
|
||||
enabled = LocalView.current.hasDisplayCutout() && fullscreen,
|
||||
visible = LocalView.current.hasDisplayCutout() && fullscreen,
|
||||
),
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = readerPreferences.keepScreenOn,
|
||||
@@ -131,14 +131,14 @@ object SettingsReaderScreen : SearchableSettings {
|
||||
valueRange = ReaderPreferences.MILLI_CONVERSION.let { it..it * 15 step it },
|
||||
title = stringResource(MR.strings.pref_flash_duration),
|
||||
valueText = { stringResource(MR.strings.pref_flash_duration_summary, it) },
|
||||
enabled = flashPageState,
|
||||
visible = flashPageState,
|
||||
),
|
||||
Preference.PreferenceItem.SliderPreference(
|
||||
preference = readerPreferences.flashPageInterval,
|
||||
valueRange = 1..10,
|
||||
title = stringResource(MR.strings.pref_flash_page_interval),
|
||||
valueText = { pluralStringResource(MR.plurals.pref_pages, it, it) },
|
||||
enabled = flashPageState,
|
||||
visible = flashPageState,
|
||||
),
|
||||
Preference.PreferenceItem.ListPreference(
|
||||
preference = flashColorPref,
|
||||
@@ -149,7 +149,7 @@ object SettingsReaderScreen : SearchableSettings {
|
||||
to stringResource(MR.strings.pref_flash_style_white_black),
|
||||
),
|
||||
title = stringResource(MR.strings.pref_flash_with),
|
||||
enabled = flashPageState,
|
||||
visible = flashPageState,
|
||||
),
|
||||
),
|
||||
)
|
||||
@@ -212,7 +212,7 @@ object SettingsReaderScreen : SearchableSettings {
|
||||
)
|
||||
.associateWith { stringResource(it.titleRes) },
|
||||
title = stringResource(MR.strings.pref_read_with_tapping_inverted),
|
||||
enabled = navMode != 5,
|
||||
visible = navMode != 5,
|
||||
),
|
||||
Preference.PreferenceItem.ListPreference(
|
||||
preference = imageScaleTypePref,
|
||||
@@ -235,12 +235,12 @@ object SettingsReaderScreen : SearchableSettings {
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = readerPreferences.landscapeZoom,
|
||||
title = stringResource(MR.strings.pref_landscape_zoom),
|
||||
enabled = imageScaleType == 1,
|
||||
visible = imageScaleType == 1,
|
||||
),
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = readerPreferences.navigateToPan,
|
||||
title = stringResource(MR.strings.pref_navigate_pan),
|
||||
enabled = navMode != 5,
|
||||
visible = navMode != 5,
|
||||
),
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = dualPageSplitPref,
|
||||
@@ -254,7 +254,7 @@ object SettingsReaderScreen : SearchableSettings {
|
||||
preference = readerPreferences.dualPageInvertPaged,
|
||||
title = stringResource(MR.strings.pref_dual_page_invert),
|
||||
subtitle = stringResource(MR.strings.pref_dual_page_invert_summary),
|
||||
enabled = dualPageSplit,
|
||||
visible = dualPageSplit,
|
||||
),
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = rotateToFitPref,
|
||||
@@ -267,7 +267,7 @@ object SettingsReaderScreen : SearchableSettings {
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = readerPreferences.dualPageRotateToFitInvert,
|
||||
title = stringResource(MR.strings.pref_page_rotate_invert),
|
||||
enabled = rotateToFit,
|
||||
visible = rotateToFit,
|
||||
),
|
||||
),
|
||||
)
|
||||
@@ -305,7 +305,7 @@ object SettingsReaderScreen : SearchableSettings {
|
||||
)
|
||||
.associateWith { stringResource(it.titleRes) },
|
||||
title = stringResource(MR.strings.pref_read_with_tapping_inverted),
|
||||
enabled = navMode != 5,
|
||||
visible = navMode != 5,
|
||||
),
|
||||
Preference.PreferenceItem.SliderPreference(
|
||||
preference = readerPreferences.webtoonSidePadding,
|
||||
@@ -341,7 +341,7 @@ object SettingsReaderScreen : SearchableSettings {
|
||||
preference = readerPreferences.dualPageInvertWebtoon,
|
||||
title = stringResource(MR.strings.pref_dual_page_invert),
|
||||
subtitle = stringResource(MR.strings.pref_dual_page_invert_summary),
|
||||
enabled = dualPageSplit,
|
||||
visible = dualPageSplit,
|
||||
),
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = rotateToFitPref,
|
||||
@@ -354,7 +354,7 @@ object SettingsReaderScreen : SearchableSettings {
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = readerPreferences.dualPageRotateToFitInvertWebtoon,
|
||||
title = stringResource(MR.strings.pref_page_rotate_invert),
|
||||
enabled = rotateToFit,
|
||||
visible = rotateToFit,
|
||||
),
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = readerPreferences.webtoonDoubleTapZoomEnabled,
|
||||
@@ -385,7 +385,7 @@ object SettingsReaderScreen : SearchableSettings {
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = readerPreferences.readWithVolumeKeysInverted,
|
||||
title = stringResource(MR.strings.pref_read_with_volume_keys_inverted),
|
||||
enabled = readWithVolumeKeys,
|
||||
visible = readWithVolumeKeys,
|
||||
),
|
||||
Preference.PreferenceItem.MultiSelectListPreference(
|
||||
preference = readerPreferences.verticalNavigator,
|
||||
@@ -396,14 +396,14 @@ object SettingsReaderScreen : SearchableSettings {
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = readerPreferences.verticalNavigatorOnLeft,
|
||||
title = stringResource(MR.strings.pref_webtoon_vertical_navigator_on_left),
|
||||
enabled = verticalNavigator.isNotEmpty(),
|
||||
visible = verticalNavigator.isNotEmpty(),
|
||||
),
|
||||
Preference.PreferenceItem.SliderPreference(
|
||||
preference = readerPreferences.verticalNavigatorHeight,
|
||||
valueRange = 65..100,
|
||||
steps = 6,
|
||||
title = stringResource(MR.strings.pref_vertical_navigator_height),
|
||||
enabled = verticalNavigator.isNotEmpty(),
|
||||
visible = verticalNavigator.isNotEmpty(),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
+3
-3
@@ -170,14 +170,14 @@ private fun SearchResult(
|
||||
.flatMap { settingsData ->
|
||||
settingsData.contents.asSequence()
|
||||
// Only search from enabled prefs and one with valid title
|
||||
.filter { it.enabled && it.title.isNotBlank() }
|
||||
.filter { it.visible && it.title.isNotBlank() }
|
||||
// Flatten items contained inside *enabled* PreferenceGroup
|
||||
.flatMap { p ->
|
||||
when (p) {
|
||||
is Preference.PreferenceGroup -> {
|
||||
if (p.enabled) {
|
||||
if (p.visible) {
|
||||
p.preferenceItems.asSequence()
|
||||
.filter { it.enabled && it.title.isNotBlank() }
|
||||
.filter { it.visible && it.title.isNotBlank() }
|
||||
.map { p.title to it }
|
||||
} else {
|
||||
emptySequence()
|
||||
|
||||
+2
-2
@@ -52,7 +52,7 @@ object SettingsSecurityScreen : SearchableSettings {
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = useAuthPref,
|
||||
title = stringResource(MR.strings.lock_with_biometrics),
|
||||
enabled = authSupported,
|
||||
visible = authSupported,
|
||||
onValueChanged = {
|
||||
(context as FragmentActivity).authenticate(
|
||||
title = context.stringResource(MR.strings.lock_with_biometrics),
|
||||
@@ -70,7 +70,7 @@ object SettingsSecurityScreen : SearchableSettings {
|
||||
}
|
||||
},
|
||||
title = stringResource(MR.strings.lock_when_idle),
|
||||
enabled = authSupported && useAuth,
|
||||
visible = authSupported && useAuth,
|
||||
onValueChanged = {
|
||||
(context as FragmentActivity).authenticate(
|
||||
title = context.stringResource(MR.strings.lock_when_idle),
|
||||
|
||||
Reference in New Issue
Block a user