diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/Preference.kt b/app/src/main/java/eu/kanade/presentation/more/settings/Preference.kt index 3a01eb339..231bf8fef 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/Preference.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/Preference.kt @@ -20,7 +20,7 @@ sealed class Preference { // SY <-- abstract val icon: ImageVector? - abstract val onValueChanged: suspend (newValue: T) -> Boolean + abstract val onValueChanged: suspend (value: T) -> Boolean /** * A basic [PreferenceItem] that only displays texts. @@ -28,24 +28,25 @@ sealed class Preference { data class TextPreference( override val title: String, override val subtitle: CharSequence? = null, - override val icon: ImageVector? = null, override val enabled: Boolean = true, - override val onValueChanged: suspend (newValue: String) -> Boolean = { true }, - val onClick: (() -> Unit)? = null, - ) : PreferenceItem() + ) : PreferenceItem() { + override val icon: ImageVector? = null + override val onValueChanged: suspend (value: String) -> Boolean = { true } + } /** * A [PreferenceItem] that provides a two-state toggleable option. */ data class SwitchPreference( - val pref: PreferenceData, + val preference: PreferenceData, override val title: String, override val subtitle: CharSequence? = null, - override val icon: ImageVector? = null, override val enabled: Boolean = true, - override val onValueChanged: suspend (newValue: Boolean) -> Boolean = { true }, - ) : PreferenceItem() + override val onValueChanged: suspend (value: Boolean) -> Boolean = { true }, + ) : PreferenceItem() { + override val icon: ImageVector? = null + } /** * A [PreferenceItem] that provides a slider to select an integer number. @@ -55,31 +56,31 @@ sealed class Preference { val max: Int, val min: Int = 0, val steps: Int = 0, - override val title: String = "", + override val title: String, override val subtitle: String? = null, - override val icon: ImageVector? = null, override val enabled: Boolean = true, - override val onValueChanged: suspend (newValue: Int) -> Boolean = { true }, - ) : PreferenceItem() + override val onValueChanged: suspend (value: Int) -> Boolean = { true }, + ) : PreferenceItem() { + override val icon: ImageVector? = null + } /** * A [PreferenceItem] that displays a list of entries as a dialog. */ @Suppress("UNCHECKED_CAST") data class ListPreference( - val pref: PreferenceData, + val preference: PreferenceData, + val entries: ImmutableMap, override val title: String, override val subtitle: String? = "%s", val subtitleProvider: @Composable (value: T, entries: ImmutableMap) -> String? = { v, e -> subtitle?.format(e[v]) }, override val icon: ImageVector? = null, override val enabled: Boolean = true, - override val onValueChanged: suspend (newValue: T) -> Boolean = { true }, - - val entries: ImmutableMap, + override val onValueChanged: suspend (value: T) -> Boolean = { true }, ) : PreferenceItem() { - internal fun internalSet(newValue: Any) = pref.set(newValue as T) - internal suspend fun internalOnValueChanged(newValue: Any) = onValueChanged(newValue as T) + internal fun internalSet(value: Any) = preference.set(value as T) + internal suspend fun internalOnValueChanged(value: Any) = onValueChanged(value as T) @Composable internal fun internalSubtitleProvider(value: Any?, entries: ImmutableMap) = @@ -91,15 +92,14 @@ sealed class Preference { */ data class BasicListPreference( val value: String, + val entries: ImmutableMap, override val title: String, override val subtitle: String? = "%s", val subtitleProvider: @Composable (value: String, entries: ImmutableMap) -> String? = { v, e -> subtitle?.format(e[v]) }, override val icon: ImageVector? = null, override val enabled: Boolean = true, - override val onValueChanged: suspend (newValue: String) -> Boolean = { true }, - - val entries: ImmutableMap, + override val onValueChanged: suspend (value: String) -> Boolean = { true }, ) : PreferenceItem() /** @@ -107,52 +107,51 @@ sealed class Preference { * Multiple entries can be selected at the same time. */ data class MultiSelectListPreference( - val pref: PreferenceData>, + val preference: PreferenceData>, + val entries: ImmutableMap, override val title: String, override val subtitle: String? = "%s", - val subtitleProvider: @Composable ( - value: Set, - entries: ImmutableMap, - ) -> String? = { v, e -> - val combined = remember(v) { - v.map { e[it] } - .takeIf { it.isNotEmpty() } - ?.joinToString() - } ?: stringResource(MR.strings.none) - subtitle?.format(combined) - }, + val subtitleProvider: @Composable (value: Set, entries: ImmutableMap) -> String? = + { v, e -> + val combined = remember(v, e) { + v.mapNotNull { e[it] } + .joinToString() + .takeUnless { it.isBlank() } + } + ?: stringResource(MR.strings.none) + subtitle?.format(combined) + }, override val icon: ImageVector? = null, override val enabled: Boolean = true, - override val onValueChanged: suspend (newValue: Set) -> Boolean = { true }, - - val entries: ImmutableMap, + override val onValueChanged: suspend (value: Set) -> Boolean = { true }, ) : PreferenceItem>() /** * A [PreferenceItem] that shows a EditText in the dialog. */ data class EditTextPreference( - val pref: PreferenceData, + val preference: PreferenceData, override val title: String, override val subtitle: String? = "%s", - override val icon: ImageVector? = null, override val enabled: Boolean = true, - override val onValueChanged: suspend (newValue: String) -> Boolean = { true }, - ) : PreferenceItem() + override val onValueChanged: suspend (value: String) -> Boolean = { true }, + ) : PreferenceItem() { + override val icon: ImageVector? = null + } /** * A [PreferenceItem] for individual tracker. */ data class TrackerPreference( val tracker: Tracker, - override val title: String, val login: () -> Unit, val logout: () -> Unit, ) : PreferenceItem() { + override val title: String = "" override val enabled: Boolean = true override val subtitle: String? = null override val icon: ImageVector? = null - override val onValueChanged: suspend (newValue: String) -> Boolean = { true } + override val onValueChanged: suspend (value: String) -> Boolean = { true } } data class InfoPreference( @@ -161,7 +160,7 @@ sealed class Preference { override val enabled: Boolean = true override val subtitle: String? = null override val icon: ImageVector? = null - override val onValueChanged: suspend (newValue: String) -> Boolean = { true } + override val onValueChanged: suspend (value: String) -> Boolean = { true } } data class CustomPreference( @@ -171,7 +170,7 @@ sealed class Preference { override val enabled: Boolean = true override val subtitle: String? = null override val icon: ImageVector? = null - override val onValueChanged: suspend (newValue: Unit) -> Boolean = { true } + override val onValueChanged: suspend (value: Unit) -> Boolean = { true } } } diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceItem.kt b/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceItem.kt index 45ab258b0..9f97d3a83 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceItem.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceItem.kt @@ -61,7 +61,7 @@ internal fun PreferenceItem( ) { when (item) { is Preference.PreferenceItem.SwitchPreference -> { - val value by item.pref.collectAsState() + val value by item.preference.collectAsState() SwitchPreferenceWidget( title = item.title, subtitle = item.subtitle, @@ -70,7 +70,7 @@ internal fun PreferenceItem( onCheckedChanged = { newValue -> scope.launch { if (item.onValueChanged(newValue)) { - item.pref.set(newValue) + item.preference.set(newValue) } } }, @@ -93,7 +93,7 @@ internal fun PreferenceItem( ) } is Preference.PreferenceItem.ListPreference<*> -> { - val value by item.pref.collectAsState() + val value by item.preference.collectAsState() ListPreferenceWidget( value = value, title = item.title, @@ -120,14 +120,14 @@ internal fun PreferenceItem( ) } is Preference.PreferenceItem.MultiSelectListPreference -> { - val values by item.pref.collectAsState() + val values by item.preference.collectAsState() MultiSelectListPreferenceWidget( preference = item, values = values, onValuesChange = { newValues -> scope.launch { if (item.onValueChanged(newValues)) { - item.pref.set(newValues.toMutableSet()) + item.preference.set(newValues.toMutableSet()) } } }, @@ -142,7 +142,7 @@ internal fun PreferenceItem( ) } is Preference.PreferenceItem.EditTextPreference -> { - val values by item.pref.collectAsState() + val values by item.preference.collectAsState() EditTextPreferenceWidget( title = item.title, subtitle = item.subtitle, @@ -150,7 +150,7 @@ internal fun PreferenceItem( value = values, onConfirm = { val accepted = item.onValueChanged(it) - if (accepted) item.pref.set(it) + if (accepted) item.preference.set(it) accepted }, ) diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt index 48851c323..a15a81d29 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt @@ -126,7 +126,7 @@ object SettingsAdvancedScreen : SearchableSettings { }, ), /* SY --> Preference.PreferenceItem.SwitchPreference( - pref = networkPreferences.verboseLogging(), + preference = networkPreferences.verboseLogging(), title = stringResource(MR.strings.pref_verbose_logging), subtitle = stringResource(MR.strings.pref_verbose_logging_summary), onValueChanged = { @@ -272,8 +272,7 @@ object SettingsAdvancedScreen : SearchableSettings { }, ), Preference.PreferenceItem.ListPreference( - pref = networkPreferences.dohProvider(), - title = stringResource(MR.strings.pref_dns_over_https), + preference = networkPreferences.dohProvider(), entries = persistentMapOf( -1 to stringResource(MR.strings.disabled), PREF_DOH_CLOUDFLARE to "Cloudflare", @@ -289,13 +288,14 @@ object SettingsAdvancedScreen : SearchableSettings { PREF_DOH_NJALLA to "Njalla", PREF_DOH_SHECAN to "Shecan", ), + title = stringResource(MR.strings.pref_dns_over_https), onValueChanged = { context.toast(MR.strings.requires_app_restart) true }, ), Preference.PreferenceItem.EditTextPreference( - pref = userAgentPref, + preference = userAgentPref, title = stringResource(MR.strings.pref_user_agent_string), onValueChanged = { try { @@ -372,13 +372,7 @@ object SettingsAdvancedScreen : SearchableSettings { title = stringResource(MR.strings.pref_category_reader), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - pref = basePreferences.hardwareBitmapThreshold(), - title = stringResource(MR.strings.pref_hardware_bitmap_threshold), - subtitleProvider = { value, options -> - stringResource(MR.strings.pref_hardware_bitmap_threshold_summary, options[value].orEmpty()) - }, - enabled = !ImageUtil.HARDWARE_BITMAP_UNSUPPORTED && - GLUtil.DEVICE_TEXTURE_LIMIT > GLUtil.SAFE_TEXTURE_LIMIT, + preference = basePreferences.hardwareBitmapThreshold(), entries = GLUtil.CUSTOM_TEXTURE_LIMIT_OPTIONS .mapIndexed { index, option -> val display = if (index == 0) { @@ -390,9 +384,15 @@ object SettingsAdvancedScreen : SearchableSettings { } .toMap() .toImmutableMap(), + title = stringResource(MR.strings.pref_hardware_bitmap_threshold), + subtitleProvider = { value, options -> + stringResource(MR.strings.pref_hardware_bitmap_threshold_summary, options[value].orEmpty()) + }, + enabled = !ImageUtil.HARDWARE_BITMAP_UNSUPPORTED && + GLUtil.DEVICE_TEXTURE_LIMIT > GLUtil.SAFE_TEXTURE_LIMIT, ), Preference.PreferenceItem.SwitchPreference( - pref = basePreferences.alwaysDecodeLongStripWithSSIV(), + preference = basePreferences.alwaysDecodeLongStripWithSSIV(), title = stringResource(MR.strings.pref_always_decode_long_strip_with_ssiv), subtitle = stringResource(MR.strings.pref_always_decode_long_strip_with_ssiv_summary), ), @@ -444,8 +444,7 @@ object SettingsAdvancedScreen : SearchableSettings { title = stringResource(MR.strings.label_extensions), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - pref = extensionInstallerPref, - title = stringResource(MR.strings.ext_installer_pref), + preference = extensionInstallerPref, entries = extensionInstallerPref.entries .filter { // TODO: allow private option in stable versions once URL handling is more fleshed out @@ -457,6 +456,7 @@ object SettingsAdvancedScreen : SearchableSettings { } .associateWith { stringResource(it.titleRes) } .toImmutableMap(), + title = stringResource(MR.strings.ext_installer_pref), onValueChanged = { if (it == BasePreferences.ExtensionInstaller.SHIZUKU && !context.isShizukuInstalled @@ -618,7 +618,7 @@ object SettingsAdvancedScreen : SearchableSettings { title = stringResource(SYMR.strings.data_saver), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - pref = sourcePreferences.dataSaver(), + preference = sourcePreferences.dataSaver(), title = stringResource(SYMR.strings.data_saver), subtitle = stringResource(SYMR.strings.data_saver_summary), entries = persistentMapOf( @@ -628,28 +628,28 @@ object SettingsAdvancedScreen : SearchableSettings { ), ), Preference.PreferenceItem.EditTextPreference( - pref = sourcePreferences.dataSaverServer(), + preference = sourcePreferences.dataSaverServer(), title = stringResource(SYMR.strings.bandwidth_data_saver_server), subtitle = stringResource(SYMR.strings.data_saver_server_summary), enabled = dataSaver == DataSaver.BANDWIDTH_HERO, ), Preference.PreferenceItem.SwitchPreference( - pref = sourcePreferences.dataSaverDownloader(), + preference = sourcePreferences.dataSaverDownloader(), title = stringResource(SYMR.strings.data_saver_downloader), enabled = dataSaver != DataSaver.NONE, ), Preference.PreferenceItem.SwitchPreference( - pref = sourcePreferences.dataSaverIgnoreJpeg(), + preference = sourcePreferences.dataSaverIgnoreJpeg(), title = stringResource(SYMR.strings.data_saver_ignore_jpeg), enabled = dataSaver != DataSaver.NONE, ), Preference.PreferenceItem.SwitchPreference( - pref = sourcePreferences.dataSaverIgnoreGif(), + preference = sourcePreferences.dataSaverIgnoreGif(), title = stringResource(SYMR.strings.data_saver_ignore_gif), enabled = dataSaver != DataSaver.NONE, ), Preference.PreferenceItem.ListPreference( - pref = sourcePreferences.dataSaverImageQuality(), + preference = sourcePreferences.dataSaverImageQuality(), title = stringResource(SYMR.strings.data_saver_image_quality), subtitle = stringResource(SYMR.strings.data_saver_image_quality_summary), entries = listOf( @@ -668,7 +668,7 @@ object SettingsAdvancedScreen : SearchableSettings { val dataSaverImageFormatJpeg by sourcePreferences.dataSaverImageFormatJpeg() .collectAsState() Preference.PreferenceItem.SwitchPreference( - pref = sourcePreferences.dataSaverImageFormatJpeg(), + preference = sourcePreferences.dataSaverImageFormatJpeg(), title = stringResource(SYMR.strings.data_saver_image_format), subtitle = if (dataSaverImageFormatJpeg) { stringResource(SYMR.strings.data_saver_image_format_summary_on) @@ -679,7 +679,7 @@ object SettingsAdvancedScreen : SearchableSettings { ) }, Preference.PreferenceItem.SwitchPreference( - pref = sourcePreferences.dataSaverColorBW(), + preference = sourcePreferences.dataSaverColorBW(), title = stringResource(SYMR.strings.data_saver_color_bw), enabled = dataSaver == DataSaver.BANDWIDTH_HERO, ), @@ -699,7 +699,7 @@ object SettingsAdvancedScreen : SearchableSettings { title = stringResource(SYMR.strings.developer_tools), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = unsortedPreferences.isHentaiEnabled(), + preference = unsortedPreferences.isHentaiEnabled(), title = stringResource(SYMR.strings.toggle_hentai_features), subtitle = stringResource(SYMR.strings.toggle_hentai_features_summary), onValueChanged = { @@ -714,7 +714,7 @@ object SettingsAdvancedScreen : SearchableSettings { }, ), Preference.PreferenceItem.SwitchPreference( - pref = delegateSourcePreferences.delegateSources(), + preference = delegateSourcePreferences.delegateSources(), title = stringResource(SYMR.strings.toggle_delegated_sources), subtitle = stringResource( SYMR.strings.toggle_delegated_sources_summary, @@ -724,7 +724,7 @@ object SettingsAdvancedScreen : SearchableSettings { ), ), Preference.PreferenceItem.ListPreference( - pref = unsortedPreferences.logLevel(), + preference = unsortedPreferences.logLevel(), title = stringResource(SYMR.strings.log_level), subtitle = stringResource(SYMR.strings.log_level_summary), entries = EHLogLevel.entries.mapIndexed { index, ehLogLevel -> @@ -734,7 +734,7 @@ object SettingsAdvancedScreen : SearchableSettings { }.toMap().toImmutableMap(), ), Preference.PreferenceItem.SwitchPreference( - pref = sourcePreferences.enableSourceBlacklist(), + preference = sourcePreferences.enableSourceBlacklist(), title = stringResource(SYMR.strings.enable_source_blacklist), subtitle = stringResource( SYMR.strings.enable_source_blacklist_summary, @@ -778,7 +778,7 @@ object SettingsAdvancedScreen : SearchableSettings { } Preference.PreferenceItem.SwitchPreference( title = stringResource(SYMR.strings.encrypt_database), - pref = securityPreferences.encryptDatabase(), + preference = securityPreferences.encryptDatabase(), subtitle = stringResource(SYMR.strings.encrypt_database_subtitle), onValueChanged = { if (it) { diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt index c8366f106..fd28b33ad 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt @@ -88,7 +88,7 @@ object SettingsAppearanceScreen : SearchableSettings { } }, Preference.PreferenceItem.SwitchPreference( - pref = amoledPref, + preference = amoledPref, title = stringResource(MR.strings.pref_dark_theme_pure_black), enabled = themeMode != ThemeMode.LIGHT, onValueChanged = { @@ -122,28 +122,28 @@ object SettingsAppearanceScreen : SearchableSettings { onClick = { navigator.push(AppLanguageScreen()) }, ), Preference.PreferenceItem.ListPreference( - pref = uiPreferences.tabletUiMode(), - title = stringResource(MR.strings.pref_tablet_ui_mode), + preference = uiPreferences.tabletUiMode(), entries = TabletUiMode.entries .associateWith { stringResource(it.titleRes) } .toImmutableMap(), + title = stringResource(MR.strings.pref_tablet_ui_mode), onValueChanged = { context.toast(MR.strings.requires_app_restart) true }, ), Preference.PreferenceItem.ListPreference( - pref = uiPreferences.dateFormat(), - title = stringResource(MR.strings.pref_date_format), + preference = uiPreferences.dateFormat(), entries = DateFormats .associateWith { val formattedDate = UiPreferences.dateFormat(it).format(now) "${it.ifEmpty { stringResource(MR.strings.label_default) }} ($formattedDate)" } .toImmutableMap(), + title = stringResource(MR.strings.pref_date_format), ), Preference.PreferenceItem.SwitchPreference( - pref = uiPreferences.relativeTime(), + preference = uiPreferences.relativeTime(), title = stringResource(MR.strings.pref_relative_format), subtitle = stringResource( MR.strings.pref_relative_format_summary, @@ -164,16 +164,16 @@ object SettingsAppearanceScreen : SearchableSettings { stringResource(SYMR.strings.pref_category_fork), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = uiPreferences.expandFilters(), + preference = uiPreferences.expandFilters(), title = stringResource(SYMR.strings.toggle_expand_search_filters), ), Preference.PreferenceItem.SwitchPreference( - pref = uiPreferences.recommendsInOverflow(), + preference = uiPreferences.recommendsInOverflow(), title = stringResource(SYMR.strings.put_recommends_in_overflow), subtitle = stringResource(SYMR.strings.put_recommends_in_overflow_summary), ), Preference.PreferenceItem.SwitchPreference( - pref = uiPreferences.mergeInOverflow(), + preference = uiPreferences.mergeInOverflow(), title = stringResource(SYMR.strings.put_merge_in_overflow), subtitle = stringResource(SYMR.strings.put_merge_in_overflow_summary), ), @@ -206,15 +206,15 @@ object SettingsAppearanceScreen : SearchableSettings { stringResource(SYMR.strings.pref_category_navbar), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = uiPreferences.showNavUpdates(), + preference = uiPreferences.showNavUpdates(), title = stringResource(SYMR.strings.pref_hide_updates_button), ), Preference.PreferenceItem.SwitchPreference( - pref = uiPreferences.showNavHistory(), + preference = uiPreferences.showNavHistory(), title = stringResource(SYMR.strings.pref_hide_history_button), ), Preference.PreferenceItem.SwitchPreference( - pref = uiPreferences.bottomBarLabels(), + preference = uiPreferences.bottomBarLabels(), title = stringResource(SYMR.strings.pref_show_bottom_bar_labels), ), ), diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBrowseScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBrowseScreen.kt index 40d23eb20..056a8ec1b 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBrowseScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBrowseScreen.kt @@ -67,17 +67,17 @@ object SettingsBrowseScreen : SearchableSettings { ) }, Preference.PreferenceItem.SwitchPreference( - pref = sourcePreferences.sourcesTabCategoriesFilter(), + preference = sourcePreferences.sourcesTabCategoriesFilter(), title = stringResource(SYMR.strings.pref_source_source_filtering), subtitle = stringResource(SYMR.strings.pref_source_source_filtering_summery), ), Preference.PreferenceItem.SwitchPreference( - pref = uiPreferences.useNewSourceNavigation(), + preference = uiPreferences.useNewSourceNavigation(), title = stringResource(SYMR.strings.pref_source_navigation), subtitle = stringResource(SYMR.strings.pref_source_navigation_summery), ), Preference.PreferenceItem.SwitchPreference( - pref = unsortedPreferences.allowLocalSourceHiddenFolders(), + preference = unsortedPreferences.allowLocalSourceHiddenFolders(), title = stringResource(SYMR.strings.pref_local_source_hidden_folders), subtitle = stringResource(SYMR.strings.pref_local_source_hidden_folders_summery), ), @@ -87,11 +87,11 @@ object SettingsBrowseScreen : SearchableSettings { title = stringResource(SYMR.strings.feed), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = uiPreferences.hideFeedTab(), + preference = uiPreferences.hideFeedTab(), title = stringResource(SYMR.strings.pref_hide_feed), ), Preference.PreferenceItem.SwitchPreference( - pref = uiPreferences.feedTabInFront(), + preference = uiPreferences.feedTabInFront(), title = stringResource(SYMR.strings.pref_feed_position), subtitle = stringResource(SYMR.strings.pref_feed_position_summery), enabled = hideFeedTab.not(), @@ -103,7 +103,7 @@ object SettingsBrowseScreen : SearchableSettings { title = stringResource(MR.strings.label_sources), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = sourcePreferences.hideInLibraryItems(), + preference = sourcePreferences.hideInLibraryItems(), title = stringResource(MR.strings.pref_hide_in_library_items), ), Preference.PreferenceItem.TextPreference( @@ -119,7 +119,7 @@ object SettingsBrowseScreen : SearchableSettings { title = stringResource(MR.strings.pref_category_nsfw_content), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = sourcePreferences.showNsfwSource(), + preference = sourcePreferences.showNsfwSource(), title = stringResource(MR.strings.pref_show_nsfw_source), subtitle = stringResource(MR.strings.requires_app_restart), onValueChanged = { diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt index 9474b6894..cf8253bd5 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt @@ -255,8 +255,7 @@ object SettingsDataScreen : SearchableSettings { // Automatic backups Preference.PreferenceItem.ListPreference( - pref = backupPreferences.backupInterval(), - title = stringResource(MR.strings.pref_backup_interval), + preference = backupPreferences.backupInterval(), entries = persistentMapOf( 0 to stringResource(MR.strings.off), 6 to stringResource(MR.strings.update_6hour), @@ -265,6 +264,7 @@ object SettingsDataScreen : SearchableSettings { 48 to stringResource(MR.strings.update_48hour), 168 to stringResource(MR.strings.update_weekly), ), + title = stringResource(MR.strings.pref_backup_interval), onValueChanged = { BackupCreateJob.setupTask(context, it) true @@ -348,7 +348,7 @@ object SettingsDataScreen : SearchableSettings { ), // SY <-- Preference.PreferenceItem.SwitchPreference( - pref = libraryPreferences.autoClearChapterCache(), + preference = libraryPreferences.autoClearChapterCache(), title = stringResource(MR.strings.pref_auto_clear_chapter_cache), ), ), @@ -362,7 +362,7 @@ object SettingsDataScreen : SearchableSettings { title = stringResource(SYMR.strings.pref_sync_service_category), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - pref = syncPreferences.syncService(), + preference = syncPreferences.syncService(), title = stringResource(SYMR.strings.pref_sync_service), entries = persistentMapOf( SyncManager.SyncService.NONE.value to stringResource(MR.strings.off), @@ -506,7 +506,7 @@ object SettingsDataScreen : SearchableSettings { Preference.PreferenceItem.EditTextPreference( title = stringResource(SYMR.strings.pref_sync_host), subtitle = stringResource(SYMR.strings.pref_sync_host_summ), - pref = syncPreferences.clientHost(), + preference = syncPreferences.clientHost(), onValueChanged = { newValue -> scope.launch { // Trim spaces at the beginning and end, then remove trailing slash if present @@ -520,7 +520,7 @@ object SettingsDataScreen : SearchableSettings { Preference.PreferenceItem.EditTextPreference( title = stringResource(SYMR.strings.pref_sync_api_key), subtitle = stringResource(SYMR.strings.pref_sync_api_key_summ), - pref = syncPreferences.clientAPIKey(), + preference = syncPreferences.clientAPIKey(), ), ) } @@ -567,7 +567,7 @@ object SettingsDataScreen : SearchableSettings { title = stringResource(SYMR.strings.pref_sync_automatic_category), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - pref = syncIntervalPref, + preference = syncIntervalPref, title = stringResource(SYMR.strings.pref_sync_interval), entries = persistentMapOf( 0 to stringResource(MR.strings.off), diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt index 680d73405..46608659e 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt @@ -39,15 +39,15 @@ object SettingsDownloadScreen : SearchableSettings { val downloadPreferences = remember { Injekt.get() } return listOf( Preference.PreferenceItem.SwitchPreference( - pref = downloadPreferences.downloadOnlyOverWifi(), + preference = downloadPreferences.downloadOnlyOverWifi(), title = stringResource(MR.strings.connected_to_wifi), ), Preference.PreferenceItem.SwitchPreference( - pref = downloadPreferences.saveChaptersAsCBZ(), + preference = downloadPreferences.saveChaptersAsCBZ(), title = stringResource(MR.strings.save_chapter_as_cbz), ), Preference.PreferenceItem.SwitchPreference( - pref = downloadPreferences.splitTallImages(), + preference = downloadPreferences.splitTallImages(), title = stringResource(MR.strings.split_tall_images), subtitle = stringResource(MR.strings.split_tall_images_summary), ), @@ -72,12 +72,11 @@ object SettingsDownloadScreen : SearchableSettings { title = stringResource(MR.strings.pref_category_delete_chapters), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = downloadPreferences.removeAfterMarkedAsRead(), + preference = downloadPreferences.removeAfterMarkedAsRead(), title = stringResource(MR.strings.pref_remove_after_marked_as_read), ), Preference.PreferenceItem.ListPreference( - pref = downloadPreferences.removeAfterReadSlots(), - title = stringResource(MR.strings.pref_remove_after_read), + preference = downloadPreferences.removeAfterReadSlots(), entries = persistentMapOf( -1 to stringResource(MR.strings.disabled), 0 to stringResource(MR.strings.last_read_chapter), @@ -86,9 +85,10 @@ object SettingsDownloadScreen : SearchableSettings { 3 to stringResource(MR.strings.fourth_to_last), 4 to stringResource(MR.strings.fifth_to_last), ), + title = stringResource(MR.strings.pref_remove_after_read), ), Preference.PreferenceItem.SwitchPreference( - pref = downloadPreferences.removeBookmarkedChapters(), + preference = downloadPreferences.removeBookmarkedChapters(), title = stringResource(MR.strings.pref_remove_bookmarked_chapters), ), getExcludedCategoriesPreference( @@ -105,11 +105,11 @@ object SettingsDownloadScreen : SearchableSettings { categories: () -> List, ): Preference.PreferenceItem.MultiSelectListPreference { return Preference.PreferenceItem.MultiSelectListPreference( - pref = downloadPreferences.removeExcludeCategories(), - title = stringResource(MR.strings.pref_remove_exclude_categories), + preference = downloadPreferences.removeExcludeCategories(), entries = categories() .associate { it.id.toString() to it.visualName } .toImmutableMap(), + title = stringResource(MR.strings.pref_remove_exclude_categories), ) } @@ -149,11 +149,11 @@ object SettingsDownloadScreen : SearchableSettings { title = stringResource(MR.strings.pref_category_auto_download), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = downloadNewChaptersPref, + preference = downloadNewChaptersPref, title = stringResource(MR.strings.pref_download_new), ), Preference.PreferenceItem.SwitchPreference( - pref = downloadNewUnreadChaptersOnlyPref, + preference = downloadNewUnreadChaptersOnlyPref, title = stringResource(MR.strings.pref_download_new_unread_chapters_only), enabled = downloadNewChapters, ), @@ -164,8 +164,8 @@ object SettingsDownloadScreen : SearchableSettings { included = included, excluded = excluded, ), - onClick = { showDialog = true }, enabled = downloadNewChapters, + onClick = { showDialog = true }, ), ), ) @@ -179,8 +179,7 @@ object SettingsDownloadScreen : SearchableSettings { title = stringResource(MR.strings.download_ahead), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - pref = downloadPreferences.autoDownloadWhileReading(), - title = stringResource(MR.strings.auto_download_while_reading), + preference = downloadPreferences.autoDownloadWhileReading(), entries = listOf(0, 2, 3, 5, 10) .associateWith { if (it == 0) { @@ -190,6 +189,7 @@ object SettingsDownloadScreen : SearchableSettings { } } .toImmutableMap(), + title = stringResource(MR.strings.auto_download_while_reading), ), Preference.PreferenceItem.InfoPreference(stringResource(MR.strings.download_ahead_info)), ), diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt index 72136b9da..bf9e94542 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt @@ -43,7 +43,6 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties -import androidx.core.content.ContextCompat.startActivity import eu.kanade.presentation.library.components.SyncFavoritesWarningDialog import eu.kanade.presentation.more.settings.Preference import eu.kanade.tachiyomi.ui.webview.WebViewActivity @@ -194,7 +193,7 @@ object SettingsEhScreen : SearchableSettings { val context = LocalContext.current val value by unsortedPreferences.enableExhentai().collectAsState() return Preference.PreferenceItem.SwitchPreference( - pref = unsortedPreferences.enableExhentai(), + preference = unsortedPreferences.enableExhentai(), title = stringResource(SYMR.strings.enable_exhentai), subtitle = if (!value) { stringResource(SYMR.strings.requires_login) @@ -219,7 +218,7 @@ object SettingsEhScreen : SearchableSettings { unsortedPreferences: UnsortedPreferences, ): Preference.PreferenceItem.ListPreference { return Preference.PreferenceItem.ListPreference( - pref = unsortedPreferences.useHentaiAtHome(), + preference = unsortedPreferences.useHentaiAtHome(), title = stringResource(SYMR.strings.use_hentai_at_home), subtitle = stringResource(SYMR.strings.use_hentai_at_home_summary), entries = persistentMapOf( @@ -237,7 +236,7 @@ object SettingsEhScreen : SearchableSettings { ): Preference.PreferenceItem.SwitchPreference { val value by unsortedPreferences.useJapaneseTitle().collectAsState() return Preference.PreferenceItem.SwitchPreference( - pref = unsortedPreferences.useJapaneseTitle(), + preference = unsortedPreferences.useJapaneseTitle(), title = stringResource(SYMR.strings.show_japanese_titles), subtitle = if (value) { stringResource(SYMR.strings.show_japanese_titles_option_1) @@ -255,7 +254,7 @@ object SettingsEhScreen : SearchableSettings { ): Preference.PreferenceItem.SwitchPreference { val value by unsortedPreferences.exhUseOriginalImages().collectAsState() return Preference.PreferenceItem.SwitchPreference( - pref = unsortedPreferences.exhUseOriginalImages(), + preference = unsortedPreferences.exhUseOriginalImages(), title = stringResource(SYMR.strings.use_original_images), subtitle = if (value) { stringResource(SYMR.strings.use_original_images_on) @@ -273,8 +272,7 @@ object SettingsEhScreen : SearchableSettings { title = stringResource(SYMR.strings.watched_tags), subtitle = stringResource(SYMR.strings.watched_tags_summary), onClick = { - startActivity( - context, + context.startActivity( WebViewActivity.newIntent( context, url = "https://exhentai.org/mytags", @@ -802,7 +800,7 @@ object SettingsEhScreen : SearchableSettings { unsortedPreferences: UnsortedPreferences, ): Preference.PreferenceItem.SwitchPreference { return Preference.PreferenceItem.SwitchPreference( - pref = unsortedPreferences.exhWatchedListDefaultState(), + preference = unsortedPreferences.exhWatchedListDefaultState(), title = stringResource(SYMR.strings.watched_list_default), subtitle = stringResource(SYMR.strings.watched_list_state_summary), enabled = exhentaiEnabled, @@ -815,7 +813,7 @@ object SettingsEhScreen : SearchableSettings { unsortedPreferences: UnsortedPreferences, ): Preference.PreferenceItem.ListPreference { return Preference.PreferenceItem.ListPreference( - pref = unsortedPreferences.imageQuality(), + preference = unsortedPreferences.imageQuality(), title = stringResource(SYMR.strings.eh_image_quality_summary), subtitle = stringResource(SYMR.strings.eh_image_quality), entries = persistentMapOf( @@ -833,7 +831,7 @@ object SettingsEhScreen : SearchableSettings { @Composable fun enhancedEhentaiView(unsortedPreferences: UnsortedPreferences): Preference.PreferenceItem.SwitchPreference { return Preference.PreferenceItem.SwitchPreference( - pref = unsortedPreferences.enhancedEHentaiView(), + preference = unsortedPreferences.enhancedEHentaiView(), title = stringResource(SYMR.strings.pref_enhanced_e_hentai_view), subtitle = stringResource(SYMR.strings.pref_enhanced_e_hentai_view_summary), ) @@ -842,7 +840,7 @@ object SettingsEhScreen : SearchableSettings { @Composable fun readOnlySync(unsortedPreferences: UnsortedPreferences): Preference.PreferenceItem.SwitchPreference { return Preference.PreferenceItem.SwitchPreference( - pref = unsortedPreferences.exhReadOnlySync(), + preference = unsortedPreferences.exhReadOnlySync(), title = stringResource(SYMR.strings.disable_favorites_uploading), subtitle = stringResource(SYMR.strings.disable_favorites_uploading_summary), ) @@ -867,7 +865,7 @@ object SettingsEhScreen : SearchableSettings { @Composable fun lenientSync(unsortedPreferences: UnsortedPreferences): Preference.PreferenceItem.SwitchPreference { return Preference.PreferenceItem.SwitchPreference( - pref = unsortedPreferences.exhLenientSync(), + preference = unsortedPreferences.exhLenientSync(), title = stringResource(SYMR.strings.ignore_sync_errors), subtitle = stringResource(SYMR.strings.ignore_sync_errors_summary), ) @@ -942,7 +940,7 @@ object SettingsEhScreen : SearchableSettings { val value by unsortedPreferences.exhAutoUpdateFrequency().collectAsState() val context = LocalContext.current return Preference.PreferenceItem.ListPreference( - pref = unsortedPreferences.exhAutoUpdateFrequency(), + preference = unsortedPreferences.exhAutoUpdateFrequency(), title = stringResource(SYMR.strings.time_between_batches), subtitle = if (value == 0) { stringResource(SYMR.strings.time_between_batches_summary_1, stringResource(MR.strings.app_name)) @@ -978,7 +976,7 @@ object SettingsEhScreen : SearchableSettings { val value by unsortedPreferences.exhAutoUpdateRequirements().collectAsState() val context = LocalContext.current return Preference.PreferenceItem.MultiSelectListPreference( - pref = unsortedPreferences.exhAutoUpdateRequirements(), + preference = unsortedPreferences.exhAutoUpdateRequirements(), title = stringResource(SYMR.strings.auto_update_restrictions), subtitle = remember(value) { context.stringResource( diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt index 57dcbb83d..f802723ec 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt @@ -100,12 +100,12 @@ object SettingsLibraryScreen : SearchableSettings { onClick = { navigator.push(CategoryScreen()) }, ), Preference.PreferenceItem.ListPreference( - pref = libraryPreferences.defaultCategory(), - title = stringResource(MR.strings.default_category), + preference = libraryPreferences.defaultCategory(), entries = ids.zip(labels).toMap().toImmutableMap(), + title = stringResource(MR.strings.default_category), ), Preference.PreferenceItem.SwitchPreference( - pref = libraryPreferences.categorizedDisplaySettings(), + preference = libraryPreferences.categorizedDisplaySettings(), title = stringResource(MR.strings.categorized_display_settings), onValueChanged = { if (!it) { @@ -157,8 +157,7 @@ object SettingsLibraryScreen : SearchableSettings { title = stringResource(MR.strings.pref_category_library_update), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - pref = autoUpdateIntervalPref, - title = stringResource(MR.strings.pref_library_update_interval), + preference = autoUpdateIntervalPref, entries = persistentMapOf( 0 to stringResource(MR.strings.update_never), 12 to stringResource(MR.strings.update_12hour), @@ -167,21 +166,22 @@ object SettingsLibraryScreen : SearchableSettings { 72 to stringResource(MR.strings.update_72hour), 168 to stringResource(MR.strings.update_weekly), ), + title = stringResource(MR.strings.pref_library_update_interval), onValueChanged = { LibraryUpdateJob.setupTask(context, it) true }, ), Preference.PreferenceItem.MultiSelectListPreference( - pref = libraryPreferences.autoUpdateDeviceRestrictions(), - enabled = autoUpdateInterval > 0, - title = stringResource(MR.strings.pref_library_update_restriction), - subtitle = stringResource(MR.strings.restrictions), + preference = libraryPreferences.autoUpdateDeviceRestrictions(), entries = persistentMapOf( DEVICE_ONLY_ON_WIFI to stringResource(MR.strings.connected_to_wifi), DEVICE_NETWORK_NOT_METERED to stringResource(MR.strings.network_not_metered), DEVICE_CHARGING to stringResource(MR.strings.charging), ), + title = stringResource(MR.strings.pref_library_update_restriction), + subtitle = stringResource(MR.strings.restrictions), + enabled = autoUpdateInterval > 0, onValueChanged = { // Post to event looper to allow the preference to be updated. ContextCompat.getMainExecutor(context).execute { LibraryUpdateJob.setupTask(context) } @@ -199,7 +199,7 @@ object SettingsLibraryScreen : SearchableSettings { ), // SY --> Preference.PreferenceItem.ListPreference( - pref = libraryPreferences.groupLibraryUpdateType(), + preference = libraryPreferences.groupLibraryUpdateType(), title = stringResource(SYMR.strings.library_group_updates), entries = persistentMapOf( GroupLibraryMode.GLOBAL to stringResource(SYMR.strings.library_group_updates_global), @@ -210,27 +210,27 @@ object SettingsLibraryScreen : SearchableSettings { ), // SY <-- Preference.PreferenceItem.SwitchPreference( - pref = libraryPreferences.autoUpdateMetadata(), + preference = libraryPreferences.autoUpdateMetadata(), title = stringResource(MR.strings.pref_library_update_refresh_metadata), subtitle = stringResource(MR.strings.pref_library_update_refresh_metadata_summary), ), Preference.PreferenceItem.MultiSelectListPreference( - pref = libraryPreferences.autoUpdateMangaRestrictions(), - title = stringResource(MR.strings.pref_library_update_smart_update), + preference = libraryPreferences.autoUpdateMangaRestrictions(), entries = persistentMapOf( MANGA_HAS_UNREAD to stringResource(MR.strings.pref_update_only_completely_read), MANGA_NON_READ to stringResource(MR.strings.pref_update_only_started), MANGA_NON_COMPLETED to stringResource(MR.strings.pref_update_only_non_completed), MANGA_OUTSIDE_RELEASE_PERIOD to stringResource(MR.strings.pref_update_only_in_release_period), ), + title = stringResource(MR.strings.pref_library_update_smart_update), ), Preference.PreferenceItem.SwitchPreference( - pref = libraryPreferences.newShowUpdatesCount(), + preference = libraryPreferences.newShowUpdatesCount(), title = stringResource(MR.strings.pref_library_update_show_tab_badge), ), // SY --> Preference.PreferenceItem.SwitchPreference( - pref = libraryPreferences.libraryReadDuplicateChapters(), + preference = libraryPreferences.libraryReadDuplicateChapters(), title = stringResource(SYMR.strings.pref_library_mark_duplicate_chapters), subtitle = stringResource(SYMR.strings.pref_library_mark_duplicate_chapters_summary), ), @@ -247,8 +247,7 @@ object SettingsLibraryScreen : SearchableSettings { title = stringResource(MR.strings.pref_chapter_swipe), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - pref = libraryPreferences.swipeToStartAction(), - title = stringResource(MR.strings.pref_chapter_swipe_start), + preference = libraryPreferences.swipeToStartAction(), entries = persistentMapOf( LibraryPreferences.ChapterSwipeAction.Disabled to stringResource(MR.strings.disabled), @@ -259,10 +258,10 @@ object SettingsLibraryScreen : SearchableSettings { LibraryPreferences.ChapterSwipeAction.Download to stringResource(MR.strings.action_download), ), + title = stringResource(MR.strings.pref_chapter_swipe_start), ), Preference.PreferenceItem.ListPreference( - pref = libraryPreferences.swipeToEndAction(), - title = stringResource(MR.strings.pref_chapter_swipe_end), + preference = libraryPreferences.swipeToEndAction(), entries = persistentMapOf( LibraryPreferences.ChapterSwipeAction.Disabled to stringResource(MR.strings.disabled), @@ -273,6 +272,7 @@ object SettingsLibraryScreen : SearchableSettings { LibraryPreferences.ChapterSwipeAction.Download to stringResource(MR.strings.action_download), ), + title = stringResource(MR.strings.pref_chapter_swipe_end), ), ), ) @@ -305,7 +305,7 @@ object SettingsLibraryScreen : SearchableSettings { enabled = skipPreMigration || migrationSources.isNotEmpty(), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = unsortedPreferences.skipPreMigration(), + preference = unsortedPreferences.skipPreMigration(), title = stringResource(SYMR.strings.skip_pre_migration), subtitle = stringResource(SYMR.strings.pref_skip_pre_migration_summary), ), diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMangadexScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMangadexScreen.kt index 66a84062c..b97737fa8 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMangadexScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMangadexScreen.kt @@ -178,7 +178,7 @@ object SettingsMangadexScreen : SearchableSettings { sourcePreferences: SourcePreferences, ): Preference.PreferenceItem.ListPreference { return Preference.PreferenceItem.ListPreference( - pref = unsortedPreferences.preferredMangaDexId(), + preference = unsortedPreferences.preferredMangaDexId(), title = stringResource(SYMR.strings.mangadex_preffered_source), subtitle = stringResource(SYMR.strings.mangadex_preffered_source_summary), entries = MdUtil.getEnabledMangaDexs(sourcePreferences) diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt index 8605aaed8..c160aafb7 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt @@ -39,45 +39,45 @@ object SettingsReaderScreen : SearchableSettings { return listOf( Preference.PreferenceItem.ListPreference( - pref = readerPref.defaultReadingMode(), - title = stringResource(MR.strings.pref_viewer_type), + preference = readerPref.defaultReadingMode(), entries = ReadingMode.entries.drop(1) .associate { it.flagValue to stringResource(it.stringRes) } .toImmutableMap(), + title = stringResource(MR.strings.pref_viewer_type), ), Preference.PreferenceItem.ListPreference( - pref = readerPref.doubleTapAnimSpeed(), - title = stringResource(MR.strings.pref_double_tap_anim_speed), + preference = readerPref.doubleTapAnimSpeed(), entries = persistentMapOf( 1 to stringResource(MR.strings.double_tap_anim_speed_0), 500 to stringResource(MR.strings.double_tap_anim_speed_normal), 250 to stringResource(MR.strings.double_tap_anim_speed_fast), ), + title = stringResource(MR.strings.pref_double_tap_anim_speed), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPref.showReadingMode(), + preference = readerPref.showReadingMode(), title = stringResource(MR.strings.pref_show_reading_mode), subtitle = stringResource(MR.strings.pref_show_reading_mode_summary), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPref.showNavigationOverlayOnStart(), + preference = readerPref.showNavigationOverlayOnStart(), title = stringResource(MR.strings.pref_show_navigation_mode), subtitle = stringResource(MR.strings.pref_show_navigation_mode_summary), ), // SY --> Preference.PreferenceItem.SwitchPreference( - pref = readerPref.forceHorizontalSeekbar(), + preference = readerPref.forceHorizontalSeekbar(), title = stringResource(SYMR.strings.pref_force_horz_seekbar), subtitle = stringResource(SYMR.strings.pref_force_horz_seekbar_summary), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPref.landscapeVerticalSeekbar(), + preference = readerPref.landscapeVerticalSeekbar(), title = stringResource(SYMR.strings.pref_show_vert_seekbar_landscape), subtitle = stringResource(SYMR.strings.pref_show_vert_seekbar_landscape_summary), enabled = !forceHorizontalSeekbar, ), Preference.PreferenceItem.SwitchPreference( - pref = readerPref.leftVerticalSeekbar(), + preference = readerPref.leftVerticalSeekbar(), title = stringResource(SYMR.strings.pref_left_handed_vertical_seekbar), subtitle = stringResource(SYMR.strings.pref_left_handed_vertical_seekbar_summary), enabled = !forceHorizontalSeekbar, @@ -85,7 +85,7 @@ object SettingsReaderScreen : SearchableSettings { // SY <-- /* SY --> Preference.PreferenceItem.SwitchPreference( - pref = readerPref.pageTransitions(), + preference = readerPref.pageTransitions(), title = stringResource(MR.strings.pref_page_transitions), ), SY <-- */ @@ -114,39 +114,39 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_category_display), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - pref = readerPreferences.defaultOrientationType(), - title = stringResource(MR.strings.pref_rotation_type), + preference = readerPreferences.defaultOrientationType(), entries = ReaderOrientation.entries.drop(1) .associate { it.flagValue to stringResource(it.stringRes) } .toImmutableMap(), + title = stringResource(MR.strings.pref_rotation_type), ), Preference.PreferenceItem.ListPreference( - pref = readerPreferences.readerTheme(), - title = stringResource(MR.strings.pref_reader_theme), + preference = readerPreferences.readerTheme(), entries = persistentMapOf( 1 to stringResource(MR.strings.black_background), 2 to stringResource(MR.strings.gray_background), 0 to stringResource(MR.strings.white_background), 3 to stringResource(MR.strings.automatic_background), ), + title = stringResource(MR.strings.pref_reader_theme), ), Preference.PreferenceItem.SwitchPreference( - pref = fullscreenPref, + preference = fullscreenPref, title = stringResource(MR.strings.pref_fullscreen), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.cutoutShort(), + preference = readerPreferences.cutoutShort(), title = stringResource(MR.strings.pref_cutout_short), enabled = fullscreen && Build.VERSION.SDK_INT >= Build.VERSION_CODES.P && LocalView.current.rootWindowInsets?.displayCutout != null, // has cutout ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.keepScreenOn(), + preference = readerPreferences.keepScreenOn(), title = stringResource(MR.strings.pref_keep_screen_on), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.showPageNumber(), + preference = readerPreferences.showPageNumber(), title = stringResource(MR.strings.pref_show_page_number), ), ), @@ -169,45 +169,45 @@ object SettingsReaderScreen : SearchableSettings { title = "E-Ink", preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.flashOnPageChange(), + preference = readerPreferences.flashOnPageChange(), title = stringResource(MR.strings.pref_flash_page), subtitle = stringResource(MR.strings.pref_flash_page_summ), ), Preference.PreferenceItem.SliderPreference( value = flashMillis / ReaderPreferences.MILLI_CONVERSION, - min = 1, max = 15, + min = 1, steps = 13, title = stringResource(MR.strings.pref_flash_duration), subtitle = stringResource(MR.strings.pref_flash_duration_summary, flashMillis), + enabled = flashPageState, onValueChanged = { flashMillisPref.set(it * ReaderPreferences.MILLI_CONVERSION) true }, - enabled = flashPageState, ), Preference.PreferenceItem.SliderPreference( value = flashInterval, - min = 1, max = 10, + min = 1, steps = 8, title = stringResource(MR.strings.pref_flash_page_interval), subtitle = pluralStringResource(MR.plurals.pref_pages, flashInterval, flashInterval), + enabled = flashPageState, onValueChanged = { flashIntervalPref.set(it) true }, - enabled = flashPageState, ), Preference.PreferenceItem.ListPreference( - pref = flashColorPref, - title = stringResource(MR.strings.pref_flash_with), + preference = flashColorPref, entries = persistentMapOf( ReaderPreferences.FlashColor.BLACK to stringResource(MR.strings.pref_flash_style_black), ReaderPreferences.FlashColor.WHITE to stringResource(MR.strings.pref_flash_style_white), ReaderPreferences.FlashColor.WHITE_BLACK to stringResource(MR.strings.pref_flash_style_white_black), ), + title = stringResource(MR.strings.pref_flash_with), enabled = flashPageState, ), ), @@ -220,26 +220,26 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_category_reading), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.skipRead(), + preference = readerPreferences.skipRead(), title = stringResource(MR.strings.pref_skip_read_chapters), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.skipFiltered(), + preference = readerPreferences.skipFiltered(), title = stringResource(MR.strings.pref_skip_filtered_chapters), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.skipDupe(), + preference = readerPreferences.skipDupe(), title = stringResource(MR.strings.pref_skip_dupe_chapters), ), // SY --> Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.markReadDupe(), + preference = readerPreferences.markReadDupe(), title = stringResource(SYMR.strings.pref_mark_read_dupe_chapters), subtitle = stringResource(SYMR.strings.pref_mark_read_dupe_chapters_summary), ), // SY <-- Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.alwaysShowChapterTransition(), + preference = readerPreferences.alwaysShowChapterTransition(), title = stringResource(MR.strings.pref_always_show_chapter_transition), ), ), @@ -262,16 +262,15 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pager_viewer), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - pref = navModePref, - title = stringResource(MR.strings.pref_viewer_nav), + preference = navModePref, entries = ReaderPreferences.TapZones .mapIndexed { index, it -> index to stringResource(it) } .toMap() .toImmutableMap(), + title = stringResource(MR.strings.pref_viewer_nav), ), Preference.PreferenceItem.ListPreference( - pref = readerPreferences.pagerNavInverted(), - title = stringResource(MR.strings.pref_read_with_tapping_inverted), + preference = readerPreferences.pagerNavInverted(), entries = persistentListOf( ReaderPreferences.TappingInvertMode.NONE, ReaderPreferences.TappingInvertMode.HORIZONTAL, @@ -280,46 +279,47 @@ object SettingsReaderScreen : SearchableSettings { ) .associateWith { stringResource(it.titleRes) } .toImmutableMap(), + title = stringResource(MR.strings.pref_read_with_tapping_inverted), enabled = navMode != 5, ), Preference.PreferenceItem.ListPreference( - pref = imageScaleTypePref, - title = stringResource(MR.strings.pref_image_scale_type), + preference = imageScaleTypePref, entries = ReaderPreferences.ImageScaleType .mapIndexed { index, it -> index + 1 to stringResource(it) } .toMap() .toImmutableMap(), + title = stringResource(MR.strings.pref_image_scale_type), ), Preference.PreferenceItem.ListPreference( - pref = readerPreferences.zoomStart(), - title = stringResource(MR.strings.pref_zoom_start), + preference = readerPreferences.zoomStart(), entries = ReaderPreferences.ZoomStart .mapIndexed { index, it -> index + 1 to stringResource(it) } .toMap() .toImmutableMap(), + title = stringResource(MR.strings.pref_zoom_start), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.cropBorders(), + preference = readerPreferences.cropBorders(), title = stringResource(MR.strings.pref_crop_borders), ), // SY --> Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.pageTransitionsPager(), + preference = readerPreferences.pageTransitionsPager(), title = stringResource(MR.strings.pref_page_transitions), ), // SY <-- Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.landscapeZoom(), + preference = readerPreferences.landscapeZoom(), title = stringResource(MR.strings.pref_landscape_zoom), enabled = imageScaleType == 1, ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.navigateToPan(), + preference = readerPreferences.navigateToPan(), title = stringResource(MR.strings.pref_navigate_pan), enabled = navMode != 5, ), Preference.PreferenceItem.SwitchPreference( - pref = dualPageSplitPref, + preference = dualPageSplitPref, title = stringResource(MR.strings.pref_dual_page_split), onValueChanged = { rotateToFitPref.set(false) @@ -327,13 +327,13 @@ object SettingsReaderScreen : SearchableSettings { }, ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.dualPageInvertPaged(), + preference = readerPreferences.dualPageInvertPaged(), title = stringResource(MR.strings.pref_dual_page_invert), subtitle = stringResource(MR.strings.pref_dual_page_invert_summary), enabled = dualPageSplit, ), Preference.PreferenceItem.SwitchPreference( - pref = rotateToFitPref, + preference = rotateToFitPref, title = stringResource(MR.strings.pref_page_rotate), onValueChanged = { dualPageSplitPref.set(false) @@ -341,7 +341,7 @@ object SettingsReaderScreen : SearchableSettings { }, ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.dualPageRotateToFitInvert(), + preference = readerPreferences.dualPageRotateToFitInvert(), title = stringResource(MR.strings.pref_page_rotate_invert), enabled = rotateToFit, ), @@ -367,16 +367,15 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.webtoon_viewer), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - pref = navModePref, - title = stringResource(MR.strings.pref_viewer_nav), + preference = navModePref, entries = ReaderPreferences.TapZones .mapIndexed { index, it -> index to stringResource(it) } .toMap() .toImmutableMap(), + title = stringResource(MR.strings.pref_viewer_nav), ), Preference.PreferenceItem.ListPreference( - pref = readerPreferences.webtoonNavInverted(), - title = stringResource(MR.strings.pref_read_with_tapping_inverted), + preference = readerPreferences.webtoonNavInverted(), entries = persistentListOf( ReaderPreferences.TappingInvertMode.NONE, ReaderPreferences.TappingInvertMode.HORIZONTAL, @@ -385,35 +384,36 @@ object SettingsReaderScreen : SearchableSettings { ) .associateWith { stringResource(it.titleRes) } .toImmutableMap(), + title = stringResource(MR.strings.pref_read_with_tapping_inverted), enabled = navMode != 5, ), Preference.PreferenceItem.SliderPreference( value = webtoonSidePadding, + max = ReaderPreferences.WEBTOON_PADDING_MAX, + min = ReaderPreferences.WEBTOON_PADDING_MIN, title = stringResource(MR.strings.pref_webtoon_side_padding), subtitle = numberFormat.format(webtoonSidePadding / 100f), - min = ReaderPreferences.WEBTOON_PADDING_MIN, - max = ReaderPreferences.WEBTOON_PADDING_MAX, onValueChanged = { webtoonSidePaddingPref.set(it) true }, ), Preference.PreferenceItem.ListPreference( - pref = readerPreferences.readerHideThreshold(), - title = stringResource(MR.strings.pref_hide_threshold), + preference = readerPreferences.readerHideThreshold(), entries = persistentMapOf( ReaderPreferences.ReaderHideThreshold.HIGHEST to stringResource(MR.strings.pref_highest), ReaderPreferences.ReaderHideThreshold.HIGH to stringResource(MR.strings.pref_high), ReaderPreferences.ReaderHideThreshold.LOW to stringResource(MR.strings.pref_low), ReaderPreferences.ReaderHideThreshold.LOWEST to stringResource(MR.strings.pref_lowest), ), + title = stringResource(MR.strings.pref_hide_threshold), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.cropBordersWebtoon(), + preference = readerPreferences.cropBordersWebtoon(), title = stringResource(MR.strings.pref_crop_borders), ), Preference.PreferenceItem.SwitchPreference( - pref = dualPageSplitPref, + preference = dualPageSplitPref, title = stringResource(MR.strings.pref_dual_page_split), onValueChanged = { rotateToFitPref.set(false) @@ -421,13 +421,13 @@ object SettingsReaderScreen : SearchableSettings { }, ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.dualPageInvertWebtoon(), + preference = readerPreferences.dualPageInvertWebtoon(), title = stringResource(MR.strings.pref_dual_page_invert), subtitle = stringResource(MR.strings.pref_dual_page_invert_summary), enabled = dualPageSplit, ), Preference.PreferenceItem.SwitchPreference( - pref = rotateToFitPref, + preference = rotateToFitPref, title = stringResource(MR.strings.pref_page_rotate), onValueChanged = { dualPageSplitPref.set(false) @@ -435,21 +435,21 @@ object SettingsReaderScreen : SearchableSettings { }, ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.dualPageRotateToFitInvertWebtoon(), + preference = readerPreferences.dualPageRotateToFitInvertWebtoon(), title = stringResource(MR.strings.pref_page_rotate_invert), enabled = rotateToFit, ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.webtoonDoubleTapZoomEnabled(), + preference = readerPreferences.webtoonDoubleTapZoomEnabled(), title = stringResource(MR.strings.pref_double_tap_zoom), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.webtoonDisableZoomOut(), + preference = readerPreferences.webtoonDisableZoomOut(), title = stringResource(MR.strings.pref_webtoon_disable_zoom_out), ), // SY --> Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.pageTransitionsWebtoon(), + preference = readerPreferences.pageTransitionsWebtoon(), title = stringResource(MR.strings.pref_page_transitions), ), // SY <-- @@ -464,12 +464,12 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.vertical_plus_viewer), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.continuousVerticalTappingByPage(), + preference = readerPreferences.continuousVerticalTappingByPage(), title = stringResource(SYMR.strings.tap_scroll_page), subtitle = stringResource(SYMR.strings.tap_scroll_page_summary), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.cropBordersContinuousVertical(), + preference = readerPreferences.cropBordersContinuousVertical(), title = stringResource(MR.strings.pref_crop_borders), ), ), @@ -485,11 +485,11 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_reader_navigation), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = readWithVolumeKeysPref, + preference = readWithVolumeKeysPref, title = stringResource(MR.strings.pref_read_with_volume_keys), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.readWithVolumeKeysInverted(), + preference = readerPreferences.readWithVolumeKeysInverted(), title = stringResource(MR.strings.pref_read_with_volume_keys_inverted), enabled = readWithVolumeKeys, ), @@ -503,11 +503,11 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_reader_actions), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.readWithLongTap(), + preference = readerPreferences.readWithLongTap(), title = stringResource(MR.strings.pref_read_with_long_tap), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.folderPerManga(), + preference = readerPreferences.folderPerManga(), title = stringResource(MR.strings.pref_create_folder_per_manga), subtitle = stringResource(MR.strings.pref_create_folder_per_manga_summary), ), @@ -522,7 +522,7 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(SYMR.strings.page_downloading), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - pref = readerPreferences.preloadSize(), + preference = readerPreferences.preloadSize(), title = stringResource(SYMR.strings.reader_preload_amount), subtitle = stringResource(SYMR.strings.reader_preload_amount_summary), entries = persistentMapOf( @@ -537,13 +537,13 @@ object SettingsReaderScreen : SearchableSettings { ), ), Preference.PreferenceItem.ListPreference( - pref = readerPreferences.readerThreads(), + preference = readerPreferences.readerThreads(), title = stringResource(SYMR.strings.download_threads), subtitle = stringResource(SYMR.strings.download_threads_summary), entries = List(5) { it }.associateWith { it.toString() }.toImmutableMap(), ), Preference.PreferenceItem.ListPreference( - pref = readerPreferences.cacheSize(), + preference = readerPreferences.cacheSize(), title = stringResource(SYMR.strings.reader_cache_size), subtitle = stringResource(SYMR.strings.reader_cache_size_summary), entries = persistentMapOf( @@ -566,7 +566,7 @@ object SettingsReaderScreen : SearchableSettings { ), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.aggressivePageLoading(), + preference = readerPreferences.aggressivePageLoading(), title = stringResource(SYMR.strings.aggressively_load_pages), subtitle = stringResource(SYMR.strings.aggressively_load_pages_summary), ), @@ -581,21 +581,21 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(SYMR.strings.pref_category_fork), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.readerInstantRetry(), + preference = readerPreferences.readerInstantRetry(), title = stringResource(SYMR.strings.skip_queue_on_retry), subtitle = stringResource(SYMR.strings.skip_queue_on_retry_summary), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.preserveReadingPosition(), + preference = readerPreferences.preserveReadingPosition(), title = stringResource(SYMR.strings.preserve_reading_position), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.useAutoWebtoon(), + preference = readerPreferences.useAutoWebtoon(), title = stringResource(SYMR.strings.auto_webtoon_mode), subtitle = stringResource(SYMR.strings.auto_webtoon_mode_summary), ), Preference.PreferenceItem.MultiSelectListPreference( - pref = readerPreferences.readerBottomButtons(), + preference = readerPreferences.readerBottomButtons(), title = stringResource(SYMR.strings.reader_bottom_buttons), subtitle = stringResource(SYMR.strings.reader_bottom_buttons_summary), entries = ReaderBottomButton.entries @@ -603,7 +603,7 @@ object SettingsReaderScreen : SearchableSettings { .toImmutableMap(), ), Preference.PreferenceItem.ListPreference( - pref = readerPreferences.pageLayout(), + preference = readerPreferences.pageLayout(), title = stringResource(SYMR.strings.page_layout), subtitle = stringResource(SYMR.strings.automatic_can_still_switch), entries = ReaderPreferences.PageLayouts @@ -612,12 +612,12 @@ object SettingsReaderScreen : SearchableSettings { .toImmutableMap(), ), Preference.PreferenceItem.SwitchPreference( - pref = readerPreferences.invertDoublePages(), + preference = readerPreferences.invertDoublePages(), title = stringResource(SYMR.strings.invert_double_pages), enabled = pageLayout != PagerConfig.PageLayout.SINGLE_PAGE, ), Preference.PreferenceItem.ListPreference( - pref = readerPreferences.centerMarginType(), + preference = readerPreferences.centerMarginType(), title = stringResource(SYMR.strings.center_margin), subtitle = stringResource(SYMR.strings.pref_center_margin_summary), entries = ReaderPreferences.CenterMarginTypes @@ -626,7 +626,7 @@ object SettingsReaderScreen : SearchableSettings { .toImmutableMap(), ), Preference.PreferenceItem.ListPreference( - pref = readerPreferences.archiveReaderMode(), + preference = readerPreferences.archiveReaderMode(), title = stringResource(SYMR.strings.pref_archive_reader_mode), subtitle = stringResource(SYMR.strings.pref_archive_reader_mode_summary), entries = ReaderPreferences.archiveModeTypes diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt index 2aef01827..8bae22750 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt @@ -96,7 +96,7 @@ object SettingsSecurityScreen : SearchableSettings { title = stringResource(MR.strings.pref_security), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = useAuthPref, + preference = useAuthPref, title = stringResource(MR.strings.lock_with_biometrics), enabled = authSupported, onValueChanged = { @@ -106,9 +106,7 @@ object SettingsSecurityScreen : SearchableSettings { }, ), Preference.PreferenceItem.ListPreference( - pref = securityPreferences.lockAppAfter(), - title = stringResource(MR.strings.lock_when_idle), - enabled = authSupported && useAuth, + preference = securityPreferences.lockAppAfter(), entries = LockAfterValues .associateWith { when (it) { @@ -118,6 +116,8 @@ object SettingsSecurityScreen : SearchableSettings { } } .toImmutableMap(), + title = stringResource(MR.strings.lock_when_idle), + enabled = authSupported && useAuth, onValueChanged = { (context as FragmentActivity).authenticate( title = context.stringResource(MR.strings.lock_when_idle), @@ -125,25 +125,25 @@ object SettingsSecurityScreen : SearchableSettings { }, ), Preference.PreferenceItem.SwitchPreference( - pref = securityPreferences.hideNotificationContent(), + preference = securityPreferences.hideNotificationContent(), title = stringResource(MR.strings.hide_notification_content), ), Preference.PreferenceItem.ListPreference( - pref = securityPreferences.secureScreen(), - title = stringResource(MR.strings.secure_screen), + preference = securityPreferences.secureScreen(), entries = SecurityPreferences.SecureScreenMode.entries .associateWith { stringResource(it.titleRes) } .toImmutableMap(), + title = stringResource(MR.strings.secure_screen), ), // SY --> Preference.PreferenceItem.SwitchPreference( - pref = securityPreferences.passwordProtectDownloads(), + preference = securityPreferences.passwordProtectDownloads(), title = stringResource(SYMR.strings.password_protect_downloads), subtitle = stringResource(SYMR.strings.password_protect_downloads_summary), enabled = isCbzPasswordSet, ), Preference.PreferenceItem.ListPreference( - pref = securityPreferences.encryptionType(), + preference = securityPreferences.encryptionType(), title = stringResource(SYMR.strings.encryption_type), entries = SecurityPreferences.EncryptionType.entries .associateWith { stringResource(it.titleRes) } @@ -384,12 +384,12 @@ object SettingsSecurityScreen : SearchableSettings { title = stringResource(MR.strings.pref_firebase), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - pref = privacyPreferences.crashlytics(), + preference = privacyPreferences.crashlytics(), title = stringResource(MR.strings.onboarding_permission_crashlytics), subtitle = stringResource(MR.strings.onboarding_permission_crashlytics_description), ), Preference.PreferenceItem.SwitchPreference( - pref = privacyPreferences.analytics(), + preference = privacyPreferences.analytics(), title = stringResource(MR.strings.onboarding_permission_analytics), subtitle = stringResource(MR.strings.onboarding_permission_analytics_description), ), diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt index 54e3ada14..7c2a5caac 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt @@ -126,19 +126,19 @@ object SettingsTrackingScreen : SearchableSettings { return listOf( Preference.PreferenceItem.SwitchPreference( - pref = trackPreferences.autoUpdateTrack(), + preference = trackPreferences.autoUpdateTrack(), title = stringResource(MR.strings.pref_auto_update_manga_sync), ), Preference.PreferenceItem.ListPreference( - pref = trackPreferences.autoUpdateTrackOnMarkRead(), - title = stringResource(MR.strings.pref_auto_update_manga_on_mark_read), + preference = trackPreferences.autoUpdateTrackOnMarkRead(), entries = AutoTrackState.entries .associateWith { stringResource(it.titleRes) } .toPersistentMap(), + title = stringResource(MR.strings.pref_auto_update_manga_on_mark_read), ), // SY --> Preference.PreferenceItem.SwitchPreference( - pref = trackPreferences.resolveUsingSourceMetadata(), + preference = trackPreferences.resolveUsingSourceMetadata(), title = stringResource(SYMR.strings.pref_tracker_resolve_using_source_metadata), subtitle = stringResource(SYMR.strings.pref_tracker_resolve_using_source_metadata_summary), ), @@ -147,37 +147,31 @@ object SettingsTrackingScreen : SearchableSettings { title = stringResource(MR.strings.services), preferenceItems = persistentListOf( Preference.PreferenceItem.TrackerPreference( - title = trackerManager.myAnimeList.name, tracker = trackerManager.myAnimeList, login = { context.openInBrowser(MyAnimeListApi.authUrl(), forceDefaultBrowser = true) }, logout = { dialog = LogoutDialog(trackerManager.myAnimeList) }, ), Preference.PreferenceItem.TrackerPreference( - title = trackerManager.aniList.name, tracker = trackerManager.aniList, login = { context.openInBrowser(AnilistApi.authUrl(), forceDefaultBrowser = true) }, logout = { dialog = LogoutDialog(trackerManager.aniList) }, ), Preference.PreferenceItem.TrackerPreference( - title = trackerManager.kitsu.name, tracker = trackerManager.kitsu, login = { dialog = LoginDialog(trackerManager.kitsu, MR.strings.email) }, logout = { dialog = LogoutDialog(trackerManager.kitsu) }, ), Preference.PreferenceItem.TrackerPreference( - title = trackerManager.mangaUpdates.name, tracker = trackerManager.mangaUpdates, login = { dialog = LoginDialog(trackerManager.mangaUpdates, MR.strings.username) }, logout = { dialog = LogoutDialog(trackerManager.mangaUpdates) }, ), Preference.PreferenceItem.TrackerPreference( - title = trackerManager.shikimori.name, tracker = trackerManager.shikimori, login = { context.openInBrowser(ShikimoriApi.authUrl(), forceDefaultBrowser = true) }, logout = { dialog = LogoutDialog(trackerManager.shikimori) }, ), Preference.PreferenceItem.TrackerPreference( - title = trackerManager.bangumi.name, tracker = trackerManager.bangumi, login = { context.openInBrowser(BangumiApi.authUrl(), forceDefaultBrowser = true) }, logout = { dialog = LogoutDialog(trackerManager.bangumi) }, @@ -191,7 +185,6 @@ object SettingsTrackingScreen : SearchableSettings { enhancedTrackers.first .map { service -> Preference.PreferenceItem.TrackerPreference( - title = service.name, tracker = service, login = { (service as EnhancedTracker).loginNoop() }, logout = service::logout,