Minor refactors
This commit is contained in:
@@ -13,13 +13,13 @@ import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.window.DialogProperties
|
||||
import eu.kanade.tachiyomi.util.system.toast
|
||||
import exh.log.xLogE
|
||||
import exh.source.ExhPreferences
|
||||
import exh.uconfig.EHConfigurator
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.NonCancellable
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.withContext
|
||||
import tachiyomi.core.common.util.lang.launchUI
|
||||
import tachiyomi.domain.UnsortedPreferences
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
@@ -29,8 +29,8 @@ import kotlin.time.Duration.Companion.seconds
|
||||
|
||||
@Composable
|
||||
fun ConfigureExhDialog(run: Boolean, onRunning: () -> Unit) {
|
||||
val unsortedPreferences = remember {
|
||||
Injekt.get<UnsortedPreferences>()
|
||||
val exhPreferences = remember {
|
||||
Injekt.get<ExhPreferences>()
|
||||
}
|
||||
var warnDialogOpen by remember { mutableStateOf(false) }
|
||||
var configureDialogOpen by remember { mutableStateOf(false) }
|
||||
@@ -38,7 +38,7 @@ fun ConfigureExhDialog(run: Boolean, onRunning: () -> Unit) {
|
||||
|
||||
LaunchedEffect(run) {
|
||||
if (run) {
|
||||
if (unsortedPreferences.exhShowSettingsUploadWarning().get()) {
|
||||
if (exhPreferences.exhShowSettingsUploadWarning().get()) {
|
||||
warnDialogOpen = true
|
||||
} else {
|
||||
configureDialogOpen = true
|
||||
@@ -57,7 +57,7 @@ fun ConfigureExhDialog(run: Boolean, onRunning: () -> Unit) {
|
||||
confirmButton = {
|
||||
TextButton(
|
||||
onClick = {
|
||||
unsortedPreferences.exhShowSettingsUploadWarning().set(false)
|
||||
exhPreferences.exhShowSettingsUploadWarning().set(false)
|
||||
configureDialogOpen = true
|
||||
warnDialogOpen = false
|
||||
},
|
||||
|
||||
+4
-4
@@ -72,6 +72,7 @@ import exh.pref.DelegateSourcePreferences
|
||||
import exh.source.BlacklistedSources
|
||||
import exh.source.EH_SOURCE_ID
|
||||
import exh.source.EXH_SOURCE_ID
|
||||
import exh.source.ExhPreferences
|
||||
import exh.util.toAnnotatedString
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.persistentMapOf
|
||||
@@ -86,7 +87,6 @@ import tachiyomi.core.common.util.lang.launchNonCancellable
|
||||
import tachiyomi.core.common.util.lang.withUIContext
|
||||
import tachiyomi.core.common.util.system.ImageUtil
|
||||
import tachiyomi.core.common.util.system.logcat
|
||||
import tachiyomi.domain.UnsortedPreferences
|
||||
import tachiyomi.domain.chapter.interactor.GetChaptersByMangaId
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.manga.interactor.GetAllManga
|
||||
@@ -701,14 +701,14 @@ object SettingsAdvancedScreen : SearchableSettings {
|
||||
val context = LocalContext.current
|
||||
val navigator = LocalNavigator.currentOrThrow
|
||||
val sourcePreferences = remember { Injekt.get<SourcePreferences>() }
|
||||
val unsortedPreferences = remember { Injekt.get<UnsortedPreferences>() }
|
||||
val exhPreferences = remember { Injekt.get<ExhPreferences>() }
|
||||
val delegateSourcePreferences = remember { Injekt.get<DelegateSourcePreferences>() }
|
||||
val securityPreferences = remember { Injekt.get<SecurityPreferences>() }
|
||||
return Preference.PreferenceGroup(
|
||||
title = stringResource(SYMR.strings.developer_tools),
|
||||
preferenceItems = persistentListOf(
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = unsortedPreferences.isHentaiEnabled(),
|
||||
preference = exhPreferences.isHentaiEnabled(),
|
||||
title = stringResource(SYMR.strings.toggle_hentai_features),
|
||||
subtitle = stringResource(SYMR.strings.toggle_hentai_features_summary),
|
||||
onValueChanged = {
|
||||
@@ -733,7 +733,7 @@ object SettingsAdvancedScreen : SearchableSettings {
|
||||
),
|
||||
),
|
||||
Preference.PreferenceItem.ListPreference(
|
||||
preference = unsortedPreferences.logLevel(),
|
||||
preference = exhPreferences.logLevel(),
|
||||
title = stringResource(SYMR.strings.log_level),
|
||||
subtitle = stringResource(SYMR.strings.log_level_summary),
|
||||
entries = EHLogLevel.entries.mapIndexed { index, ehLogLevel ->
|
||||
|
||||
+19
-3
@@ -20,7 +20,6 @@ import eu.kanade.tachiyomi.util.system.AuthenticatorUtil.authenticate
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import mihon.domain.extensionrepo.interactor.GetExtensionRepoCount
|
||||
import tachiyomi.core.common.i18n.stringResource
|
||||
import tachiyomi.domain.UnsortedPreferences
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.i18n.pluralStringResource
|
||||
@@ -49,7 +48,6 @@ object SettingsBrowseScreen : SearchableSettings {
|
||||
val scope = rememberCoroutineScope()
|
||||
val hideFeedTab by remember { Injekt.get<UiPreferences>().hideFeedTab().asState(scope) }
|
||||
val uiPreferences = remember { Injekt.get<UiPreferences>() }
|
||||
val unsortedPreferences = remember { Injekt.get<UnsortedPreferences>() }
|
||||
// SY <--
|
||||
return listOf(
|
||||
// SY -->
|
||||
@@ -77,7 +75,7 @@ object SettingsBrowseScreen : SearchableSettings {
|
||||
subtitle = stringResource(SYMR.strings.pref_source_navigation_summery),
|
||||
),
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = unsortedPreferences.allowLocalSourceHiddenFolders(),
|
||||
preference = sourcePreferences.allowLocalSourceHiddenFolders(),
|
||||
title = stringResource(SYMR.strings.pref_local_source_hidden_folders),
|
||||
subtitle = stringResource(SYMR.strings.pref_local_source_hidden_folders_summery),
|
||||
),
|
||||
@@ -131,6 +129,24 @@ object SettingsBrowseScreen : SearchableSettings {
|
||||
Preference.PreferenceItem.InfoPreference(stringResource(MR.strings.parental_controls_info)),
|
||||
),
|
||||
),
|
||||
getMigrationCategory(sourcePreferences),
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun getMigrationCategory(sourcePreferences: SourcePreferences): Preference.PreferenceGroup {
|
||||
val skipPreMigration by sourcePreferences.skipPreMigration().collectAsState()
|
||||
val migrationSources by sourcePreferences.migrationSources().collectAsState()
|
||||
return Preference.PreferenceGroup(
|
||||
stringResource(SYMR.strings.migration),
|
||||
enabled = skipPreMigration || migrationSources.isNotEmpty(),
|
||||
preferenceItems = persistentListOf(
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = sourcePreferences.skipPreMigration(),
|
||||
title = stringResource(SYMR.strings.skip_pre_migration),
|
||||
subtitle = stringResource(SYMR.strings.pref_skip_pre_migration_summary),
|
||||
),
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ import exh.eh.EHentaiUpdateWorker
|
||||
import exh.eh.EHentaiUpdateWorkerConstants
|
||||
import exh.eh.EHentaiUpdaterStats
|
||||
import exh.metadata.metadata.EHentaiSearchMetadata
|
||||
import exh.source.ExhPreferences
|
||||
import exh.ui.login.EhLoginActivity
|
||||
import exh.util.nullIfBlank
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
@@ -63,7 +64,6 @@ import tachiyomi.core.common.util.lang.launchNonCancellable
|
||||
import tachiyomi.core.common.util.lang.withIOContext
|
||||
import tachiyomi.core.common.util.lang.withUIContext
|
||||
import tachiyomi.core.common.util.system.logcat
|
||||
import tachiyomi.domain.UnsortedPreferences
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_CHARGING
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_ONLY_ON_WIFI
|
||||
import tachiyomi.domain.manga.interactor.DeleteFavoriteEntries
|
||||
@@ -88,22 +88,22 @@ object SettingsEhScreen : SearchableSettings {
|
||||
@Composable
|
||||
override fun getTitleRes() = SYMR.strings.pref_category_eh
|
||||
|
||||
override fun isEnabled(): Boolean = Injekt.get<UnsortedPreferences>().isHentaiEnabled().get()
|
||||
override fun isEnabled(): Boolean = Injekt.get<ExhPreferences>().isHentaiEnabled().get()
|
||||
|
||||
@Composable
|
||||
fun Reconfigure(
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
exhPreferences: ExhPreferences,
|
||||
openWarnConfigureDialogController: () -> Unit,
|
||||
) {
|
||||
var initialLoadGuard by remember { mutableStateOf(false) }
|
||||
val useHentaiAtHome by unsortedPreferences.useHentaiAtHome().collectAsState()
|
||||
val useJapaneseTitle by unsortedPreferences.useJapaneseTitle().collectAsState()
|
||||
val useOriginalImages by unsortedPreferences.exhUseOriginalImages().collectAsState()
|
||||
val ehTagFilterValue by unsortedPreferences.ehTagFilterValue().collectAsState()
|
||||
val ehTagWatchingValue by unsortedPreferences.ehTagWatchingValue().collectAsState()
|
||||
val settingsLanguages by unsortedPreferences.exhSettingsLanguages().collectAsState()
|
||||
val enabledCategories by unsortedPreferences.exhEnabledCategories().collectAsState()
|
||||
val imageQuality by unsortedPreferences.imageQuality().collectAsState()
|
||||
val useHentaiAtHome by exhPreferences.useHentaiAtHome().collectAsState()
|
||||
val useJapaneseTitle by exhPreferences.useJapaneseTitle().collectAsState()
|
||||
val useOriginalImages by exhPreferences.exhUseOriginalImages().collectAsState()
|
||||
val ehTagFilterValue by exhPreferences.ehTagFilterValue().collectAsState()
|
||||
val ehTagWatchingValue by exhPreferences.ehTagWatchingValue().collectAsState()
|
||||
val settingsLanguages by exhPreferences.exhSettingsLanguages().collectAsState()
|
||||
val enabledCategories by exhPreferences.exhEnabledCategories().collectAsState()
|
||||
val imageQuality by exhPreferences.imageQuality().collectAsState()
|
||||
DisposableEffect(
|
||||
useHentaiAtHome,
|
||||
useJapaneseTitle,
|
||||
@@ -124,15 +124,15 @@ object SettingsEhScreen : SearchableSettings {
|
||||
|
||||
@Composable
|
||||
override fun getPreferences(): List<Preference> {
|
||||
val unsortedPreferences: UnsortedPreferences = remember { Injekt.get() }
|
||||
val exhPreferences: ExhPreferences = remember { Injekt.get() }
|
||||
val getFlatMetadataById: GetFlatMetadataById = remember { Injekt.get() }
|
||||
val deleteFavoriteEntries: DeleteFavoriteEntries = remember { Injekt.get() }
|
||||
val getExhFavoriteMangaWithMetadata: GetExhFavoriteMangaWithMetadata = remember { Injekt.get() }
|
||||
val exhentaiEnabled by unsortedPreferences.enableExhentai().collectAsState()
|
||||
val exhentaiEnabled by exhPreferences.enableExhentai().collectAsState()
|
||||
var runConfigureDialog by remember { mutableStateOf(false) }
|
||||
val openWarnConfigureDialogController = { runConfigureDialog = true }
|
||||
|
||||
Reconfigure(unsortedPreferences, openWarnConfigureDialogController)
|
||||
Reconfigure(exhPreferences, openWarnConfigureDialogController)
|
||||
|
||||
ConfigureExhDialog(run = runConfigureDialog, onRunning = { runConfigureDialog = false })
|
||||
|
||||
@@ -140,36 +140,36 @@ object SettingsEhScreen : SearchableSettings {
|
||||
Preference.PreferenceGroup(
|
||||
stringResource(SYMR.strings.ehentai_prefs_account_settings),
|
||||
preferenceItems = persistentListOf(
|
||||
getLoginPreference(unsortedPreferences, openWarnConfigureDialogController),
|
||||
useHentaiAtHome(exhentaiEnabled, unsortedPreferences),
|
||||
useJapaneseTitle(exhentaiEnabled, unsortedPreferences),
|
||||
useOriginalImages(exhentaiEnabled, unsortedPreferences),
|
||||
getLoginPreference(exhPreferences, openWarnConfigureDialogController),
|
||||
useHentaiAtHome(exhentaiEnabled, exhPreferences),
|
||||
useJapaneseTitle(exhentaiEnabled, exhPreferences),
|
||||
useOriginalImages(exhentaiEnabled, exhPreferences),
|
||||
watchedTags(exhentaiEnabled),
|
||||
tagFilterThreshold(exhentaiEnabled, unsortedPreferences),
|
||||
tagWatchingThreshold(exhentaiEnabled, unsortedPreferences),
|
||||
settingsLanguages(exhentaiEnabled, unsortedPreferences),
|
||||
enabledCategories(exhentaiEnabled, unsortedPreferences),
|
||||
watchedListDefaultState(exhentaiEnabled, unsortedPreferences),
|
||||
imageQuality(exhentaiEnabled, unsortedPreferences),
|
||||
enhancedEhentaiView(unsortedPreferences),
|
||||
tagFilterThreshold(exhentaiEnabled, exhPreferences),
|
||||
tagWatchingThreshold(exhentaiEnabled, exhPreferences),
|
||||
settingsLanguages(exhentaiEnabled, exhPreferences),
|
||||
enabledCategories(exhentaiEnabled, exhPreferences),
|
||||
watchedListDefaultState(exhentaiEnabled, exhPreferences),
|
||||
imageQuality(exhentaiEnabled, exhPreferences),
|
||||
enhancedEhentaiView(exhPreferences),
|
||||
),
|
||||
),
|
||||
Preference.PreferenceGroup(
|
||||
stringResource(SYMR.strings.favorites_sync),
|
||||
preferenceItems = persistentListOf(
|
||||
readOnlySync(unsortedPreferences),
|
||||
readOnlySync(exhPreferences),
|
||||
syncFavoriteNotes(),
|
||||
lenientSync(unsortedPreferences),
|
||||
lenientSync(exhPreferences),
|
||||
forceSyncReset(deleteFavoriteEntries),
|
||||
),
|
||||
),
|
||||
Preference.PreferenceGroup(
|
||||
stringResource(SYMR.strings.gallery_update_checker),
|
||||
preferenceItems = persistentListOf(
|
||||
updateCheckerFrequency(unsortedPreferences),
|
||||
autoUpdateRequirements(unsortedPreferences),
|
||||
updateCheckerFrequency(exhPreferences),
|
||||
autoUpdateRequirements(exhPreferences),
|
||||
updaterStatistics(
|
||||
unsortedPreferences,
|
||||
exhPreferences,
|
||||
getExhFavoriteMangaWithMetadata,
|
||||
getFlatMetadataById,
|
||||
),
|
||||
@@ -180,7 +180,7 @@ object SettingsEhScreen : SearchableSettings {
|
||||
|
||||
@Composable
|
||||
fun getLoginPreference(
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
exhPreferences: ExhPreferences,
|
||||
openWarnConfigureDialogController: () -> Unit,
|
||||
): Preference.PreferenceItem.SwitchPreference {
|
||||
val activityResultContract =
|
||||
@@ -191,9 +191,9 @@ object SettingsEhScreen : SearchableSettings {
|
||||
}
|
||||
}
|
||||
val context = LocalContext.current
|
||||
val value by unsortedPreferences.enableExhentai().collectAsState()
|
||||
val value by exhPreferences.enableExhentai().collectAsState()
|
||||
return Preference.PreferenceItem.SwitchPreference(
|
||||
preference = unsortedPreferences.enableExhentai(),
|
||||
preference = exhPreferences.enableExhentai(),
|
||||
title = stringResource(SYMR.strings.enable_exhentai),
|
||||
subtitle = if (!value) {
|
||||
stringResource(SYMR.strings.requires_login)
|
||||
@@ -202,7 +202,7 @@ object SettingsEhScreen : SearchableSettings {
|
||||
},
|
||||
onValueChanged = { newVal ->
|
||||
if (!newVal) {
|
||||
unsortedPreferences.enableExhentai().set(false)
|
||||
exhPreferences.enableExhentai().set(false)
|
||||
true
|
||||
} else {
|
||||
activityResultContract.launch(EhLoginActivity.newIntent(context))
|
||||
@@ -215,10 +215,10 @@ object SettingsEhScreen : SearchableSettings {
|
||||
@Composable
|
||||
fun useHentaiAtHome(
|
||||
exhentaiEnabled: Boolean,
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
exhPreferences: ExhPreferences,
|
||||
): Preference.PreferenceItem.ListPreference<Int> {
|
||||
return Preference.PreferenceItem.ListPreference(
|
||||
preference = unsortedPreferences.useHentaiAtHome(),
|
||||
preference = exhPreferences.useHentaiAtHome(),
|
||||
title = stringResource(SYMR.strings.use_hentai_at_home),
|
||||
subtitle = stringResource(SYMR.strings.use_hentai_at_home_summary),
|
||||
entries = persistentMapOf(
|
||||
@@ -232,11 +232,11 @@ object SettingsEhScreen : SearchableSettings {
|
||||
@Composable
|
||||
fun useJapaneseTitle(
|
||||
exhentaiEnabled: Boolean,
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
exhPreferences: ExhPreferences,
|
||||
): Preference.PreferenceItem.SwitchPreference {
|
||||
val value by unsortedPreferences.useJapaneseTitle().collectAsState()
|
||||
val value by exhPreferences.useJapaneseTitle().collectAsState()
|
||||
return Preference.PreferenceItem.SwitchPreference(
|
||||
preference = unsortedPreferences.useJapaneseTitle(),
|
||||
preference = exhPreferences.useJapaneseTitle(),
|
||||
title = stringResource(SYMR.strings.show_japanese_titles),
|
||||
subtitle = if (value) {
|
||||
stringResource(SYMR.strings.show_japanese_titles_option_1)
|
||||
@@ -250,11 +250,11 @@ object SettingsEhScreen : SearchableSettings {
|
||||
@Composable
|
||||
fun useOriginalImages(
|
||||
exhentaiEnabled: Boolean,
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
exhPreferences: ExhPreferences,
|
||||
): Preference.PreferenceItem.SwitchPreference {
|
||||
val value by unsortedPreferences.exhUseOriginalImages().collectAsState()
|
||||
val value by exhPreferences.exhUseOriginalImages().collectAsState()
|
||||
return Preference.PreferenceItem.SwitchPreference(
|
||||
preference = unsortedPreferences.exhUseOriginalImages(),
|
||||
preference = exhPreferences.exhUseOriginalImages(),
|
||||
title = stringResource(SYMR.strings.use_original_images),
|
||||
subtitle = if (value) {
|
||||
stringResource(SYMR.strings.use_original_images_on)
|
||||
@@ -351,9 +351,9 @@ object SettingsEhScreen : SearchableSettings {
|
||||
@Composable
|
||||
fun tagFilterThreshold(
|
||||
exhentaiEnabled: Boolean,
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
exhPreferences: ExhPreferences,
|
||||
): Preference.PreferenceItem.TextPreference {
|
||||
val value by unsortedPreferences.ehTagFilterValue().collectAsState()
|
||||
val value by exhPreferences.ehTagFilterValue().collectAsState()
|
||||
var dialogOpen by remember { mutableStateOf(false) }
|
||||
if (dialogOpen) {
|
||||
TagThresholdDialog(
|
||||
@@ -364,7 +364,7 @@ object SettingsEhScreen : SearchableSettings {
|
||||
outsideRangeError = stringResource(SYMR.strings.tag_filtering_threshhold_error),
|
||||
onValueChange = {
|
||||
dialogOpen = false
|
||||
unsortedPreferences.ehTagFilterValue().set(it)
|
||||
exhPreferences.ehTagFilterValue().set(it)
|
||||
},
|
||||
)
|
||||
}
|
||||
@@ -381,9 +381,9 @@ object SettingsEhScreen : SearchableSettings {
|
||||
@Composable
|
||||
fun tagWatchingThreshold(
|
||||
exhentaiEnabled: Boolean,
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
exhPreferences: ExhPreferences,
|
||||
): Preference.PreferenceItem.TextPreference {
|
||||
val value by unsortedPreferences.ehTagWatchingValue().collectAsState()
|
||||
val value by exhPreferences.ehTagWatchingValue().collectAsState()
|
||||
var dialogOpen by remember { mutableStateOf(false) }
|
||||
if (dialogOpen) {
|
||||
TagThresholdDialog(
|
||||
@@ -394,7 +394,7 @@ object SettingsEhScreen : SearchableSettings {
|
||||
outsideRangeError = stringResource(SYMR.strings.tag_watching_threshhold_error),
|
||||
onValueChange = {
|
||||
dialogOpen = false
|
||||
unsortedPreferences.ehTagWatchingValue().set(it)
|
||||
exhPreferences.ehTagWatchingValue().set(it)
|
||||
},
|
||||
)
|
||||
}
|
||||
@@ -604,9 +604,9 @@ object SettingsEhScreen : SearchableSettings {
|
||||
@Composable
|
||||
fun settingsLanguages(
|
||||
exhentaiEnabled: Boolean,
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
exhPreferences: ExhPreferences,
|
||||
): Preference.PreferenceItem.TextPreference {
|
||||
val value by unsortedPreferences.exhSettingsLanguages().collectAsState()
|
||||
val value by exhPreferences.exhSettingsLanguages().collectAsState()
|
||||
var dialogOpen by remember { mutableStateOf(false) }
|
||||
if (dialogOpen) {
|
||||
LanguagesDialog(
|
||||
@@ -614,7 +614,7 @@ object SettingsEhScreen : SearchableSettings {
|
||||
initialValue = value,
|
||||
onValueChange = {
|
||||
dialogOpen = false
|
||||
unsortedPreferences.exhSettingsLanguages().set(it)
|
||||
exhPreferences.exhSettingsLanguages().set(it)
|
||||
},
|
||||
)
|
||||
}
|
||||
@@ -770,9 +770,9 @@ object SettingsEhScreen : SearchableSettings {
|
||||
@Composable
|
||||
fun enabledCategories(
|
||||
exhentaiEnabled: Boolean,
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
exhPreferences: ExhPreferences,
|
||||
): Preference.PreferenceItem.TextPreference {
|
||||
val value by unsortedPreferences.exhEnabledCategories().collectAsState()
|
||||
val value by exhPreferences.exhEnabledCategories().collectAsState()
|
||||
var dialogOpen by remember { mutableStateOf(false) }
|
||||
if (dialogOpen) {
|
||||
FrontPageCategoriesDialog(
|
||||
@@ -780,7 +780,7 @@ object SettingsEhScreen : SearchableSettings {
|
||||
initialValue = value,
|
||||
onValueChange = {
|
||||
dialogOpen = false
|
||||
unsortedPreferences.exhEnabledCategories().set(it)
|
||||
exhPreferences.exhEnabledCategories().set(it)
|
||||
},
|
||||
)
|
||||
}
|
||||
@@ -797,10 +797,10 @@ object SettingsEhScreen : SearchableSettings {
|
||||
@Composable
|
||||
fun watchedListDefaultState(
|
||||
exhentaiEnabled: Boolean,
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
exhPreferences: ExhPreferences,
|
||||
): Preference.PreferenceItem.SwitchPreference {
|
||||
return Preference.PreferenceItem.SwitchPreference(
|
||||
preference = unsortedPreferences.exhWatchedListDefaultState(),
|
||||
preference = exhPreferences.exhWatchedListDefaultState(),
|
||||
title = stringResource(SYMR.strings.watched_list_default),
|
||||
subtitle = stringResource(SYMR.strings.watched_list_state_summary),
|
||||
enabled = exhentaiEnabled,
|
||||
@@ -810,10 +810,10 @@ object SettingsEhScreen : SearchableSettings {
|
||||
@Composable
|
||||
fun imageQuality(
|
||||
exhentaiEnabled: Boolean,
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
exhPreferences: ExhPreferences,
|
||||
): Preference.PreferenceItem.ListPreference<String> {
|
||||
return Preference.PreferenceItem.ListPreference(
|
||||
preference = unsortedPreferences.imageQuality(),
|
||||
preference = exhPreferences.imageQuality(),
|
||||
title = stringResource(SYMR.strings.eh_image_quality_summary),
|
||||
subtitle = stringResource(SYMR.strings.eh_image_quality),
|
||||
entries = persistentMapOf(
|
||||
@@ -829,18 +829,18 @@ object SettingsEhScreen : SearchableSettings {
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun enhancedEhentaiView(unsortedPreferences: UnsortedPreferences): Preference.PreferenceItem.SwitchPreference {
|
||||
fun enhancedEhentaiView(exhPreferences: ExhPreferences): Preference.PreferenceItem.SwitchPreference {
|
||||
return Preference.PreferenceItem.SwitchPreference(
|
||||
preference = unsortedPreferences.enhancedEHentaiView(),
|
||||
preference = exhPreferences.enhancedEHentaiView(),
|
||||
title = stringResource(SYMR.strings.pref_enhanced_e_hentai_view),
|
||||
subtitle = stringResource(SYMR.strings.pref_enhanced_e_hentai_view_summary),
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun readOnlySync(unsortedPreferences: UnsortedPreferences): Preference.PreferenceItem.SwitchPreference {
|
||||
fun readOnlySync(exhPreferences: ExhPreferences): Preference.PreferenceItem.SwitchPreference {
|
||||
return Preference.PreferenceItem.SwitchPreference(
|
||||
preference = unsortedPreferences.exhReadOnlySync(),
|
||||
preference = exhPreferences.exhReadOnlySync(),
|
||||
title = stringResource(SYMR.strings.disable_favorites_uploading),
|
||||
subtitle = stringResource(SYMR.strings.disable_favorites_uploading_summary),
|
||||
)
|
||||
@@ -863,9 +863,9 @@ object SettingsEhScreen : SearchableSettings {
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun lenientSync(unsortedPreferences: UnsortedPreferences): Preference.PreferenceItem.SwitchPreference {
|
||||
fun lenientSync(exhPreferences: ExhPreferences): Preference.PreferenceItem.SwitchPreference {
|
||||
return Preference.PreferenceItem.SwitchPreference(
|
||||
preference = unsortedPreferences.exhLenientSync(),
|
||||
preference = exhPreferences.exhLenientSync(),
|
||||
title = stringResource(SYMR.strings.ignore_sync_errors),
|
||||
subtitle = stringResource(SYMR.strings.ignore_sync_errors_summary),
|
||||
)
|
||||
@@ -935,12 +935,12 @@ object SettingsEhScreen : SearchableSettings {
|
||||
|
||||
@Composable
|
||||
fun updateCheckerFrequency(
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
exhPreferences: ExhPreferences,
|
||||
): Preference.PreferenceItem.ListPreference<Int> {
|
||||
val value by unsortedPreferences.exhAutoUpdateFrequency().collectAsState()
|
||||
val value by exhPreferences.exhAutoUpdateFrequency().collectAsState()
|
||||
val context = LocalContext.current
|
||||
return Preference.PreferenceItem.ListPreference(
|
||||
preference = unsortedPreferences.exhAutoUpdateFrequency(),
|
||||
preference = exhPreferences.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))
|
||||
@@ -971,12 +971,12 @@ object SettingsEhScreen : SearchableSettings {
|
||||
|
||||
@Composable
|
||||
fun autoUpdateRequirements(
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
exhPreferences: ExhPreferences,
|
||||
): Preference.PreferenceItem.MultiSelectListPreference {
|
||||
val value by unsortedPreferences.exhAutoUpdateRequirements().collectAsState()
|
||||
val value by exhPreferences.exhAutoUpdateRequirements().collectAsState()
|
||||
val context = LocalContext.current
|
||||
return Preference.PreferenceItem.MultiSelectListPreference(
|
||||
preference = unsortedPreferences.exhAutoUpdateRequirements(),
|
||||
preference = exhPreferences.exhAutoUpdateRequirements(),
|
||||
title = stringResource(SYMR.strings.auto_update_restrictions),
|
||||
subtitle = remember(value) {
|
||||
context.stringResource(
|
||||
@@ -1139,7 +1139,7 @@ object SettingsEhScreen : SearchableSettings {
|
||||
|
||||
@Composable
|
||||
fun updaterStatistics(
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
exhPreferences: ExhPreferences,
|
||||
getExhFavoriteMangaWithMetadata: GetExhFavoriteMangaWithMetadata,
|
||||
getFlatMetadataById: GetFlatMetadataById,
|
||||
): Preference.PreferenceItem.TextPreference {
|
||||
@@ -1150,7 +1150,7 @@ object SettingsEhScreen : SearchableSettings {
|
||||
value = withIOContext {
|
||||
try {
|
||||
val stats =
|
||||
unsortedPreferences.exhAutoUpdateStats().get().nullIfBlank()?.let {
|
||||
exhPreferences.exhAutoUpdateStats().get().nullIfBlank()?.let {
|
||||
Json.decodeFromString<EHentaiUpdaterStats>(it)
|
||||
}
|
||||
|
||||
|
||||
-22
@@ -25,7 +25,6 @@ import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.persistentMapOf
|
||||
import kotlinx.collections.immutable.toImmutableMap
|
||||
import kotlinx.coroutines.launch
|
||||
import tachiyomi.domain.UnsortedPreferences
|
||||
import tachiyomi.domain.category.interactor.GetCategories
|
||||
import tachiyomi.domain.category.interactor.ResetCategoryFlags
|
||||
import tachiyomi.domain.category.model.Category
|
||||
@@ -59,9 +58,6 @@ object SettingsLibraryScreen : SearchableSettings {
|
||||
val getCategories = remember { Injekt.get<GetCategories>() }
|
||||
val libraryPreferences = remember { Injekt.get<LibraryPreferences>() }
|
||||
val allCategories by getCategories.subscribe().collectAsState(initial = emptyList())
|
||||
// SY -->
|
||||
val unsortedPreferences = remember { Injekt.get<UnsortedPreferences>() }
|
||||
// SY <--
|
||||
|
||||
return listOf(
|
||||
getCategoriesGroup(LocalNavigator.currentOrThrow, allCategories, libraryPreferences),
|
||||
@@ -69,7 +65,6 @@ object SettingsLibraryScreen : SearchableSettings {
|
||||
getBehaviorGroup(libraryPreferences),
|
||||
// SY -->
|
||||
getSortingCategory(LocalNavigator.currentOrThrow, libraryPreferences),
|
||||
getMigrationCategory(unsortedPreferences),
|
||||
// SY <--
|
||||
)
|
||||
}
|
||||
@@ -300,22 +295,5 @@ object SettingsLibraryScreen : SearchableSettings {
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun getMigrationCategory(unsortedPreferences: UnsortedPreferences): Preference.PreferenceGroup {
|
||||
val skipPreMigration by unsortedPreferences.skipPreMigration().collectAsState()
|
||||
val migrationSources by unsortedPreferences.migrationSources().collectAsState()
|
||||
return Preference.PreferenceGroup(
|
||||
stringResource(SYMR.strings.migration),
|
||||
enabled = skipPreMigration || migrationSources.isNotEmpty(),
|
||||
preferenceItems = persistentListOf(
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
preference = unsortedPreferences.skipPreMigration(),
|
||||
title = stringResource(SYMR.strings.skip_pre_migration),
|
||||
subtitle = stringResource(SYMR.strings.pref_skip_pre_migration_summary),
|
||||
),
|
||||
),
|
||||
)
|
||||
}
|
||||
// SY <--
|
||||
}
|
||||
|
||||
+6
-9
@@ -44,7 +44,6 @@ import logcat.LogPriority
|
||||
import tachiyomi.core.common.util.lang.launchIO
|
||||
import tachiyomi.core.common.util.lang.withUIContext
|
||||
import tachiyomi.core.common.util.system.logcat
|
||||
import tachiyomi.domain.UnsortedPreferences
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.components.material.padding
|
||||
@@ -65,14 +64,13 @@ object SettingsMangadexScreen : SearchableSettings {
|
||||
@Composable
|
||||
override fun getPreferences(): List<Preference> {
|
||||
val sourcePreferences: SourcePreferences = remember { Injekt.get() }
|
||||
val unsortedPreferences: UnsortedPreferences = remember { Injekt.get() }
|
||||
val trackPreferences: TrackPreferences = remember { Injekt.get() }
|
||||
val mdex = remember { MdUtil.getEnabledMangaDex(unsortedPreferences, sourcePreferences) } ?: return emptyList()
|
||||
val mdex = remember { MdUtil.getEnabledMangaDex(sourcePreferences) } ?: return emptyList()
|
||||
|
||||
return listOf(
|
||||
loginPreference(mdex, trackPreferences),
|
||||
preferredMangaDexId(unsortedPreferences, sourcePreferences),
|
||||
syncMangaDexIntoThis(unsortedPreferences),
|
||||
preferredMangaDexId(sourcePreferences),
|
||||
syncMangaDexIntoThis(sourcePreferences),
|
||||
syncLibraryToMangaDex(),
|
||||
)
|
||||
}
|
||||
@@ -174,11 +172,10 @@ object SettingsMangadexScreen : SearchableSettings {
|
||||
|
||||
@Composable
|
||||
fun preferredMangaDexId(
|
||||
unsortedPreferences: UnsortedPreferences,
|
||||
sourcePreferences: SourcePreferences,
|
||||
): Preference.PreferenceItem.ListPreference<String> {
|
||||
return Preference.PreferenceItem.ListPreference(
|
||||
preference = unsortedPreferences.preferredMangaDexId(),
|
||||
preference = sourcePreferences.preferredMangaDexId(),
|
||||
title = stringResource(SYMR.strings.mangadex_preffered_source),
|
||||
subtitle = stringResource(SYMR.strings.mangadex_preffered_source_summary),
|
||||
entries = MdUtil.getEnabledMangaDexs(sourcePreferences)
|
||||
@@ -250,7 +247,7 @@ object SettingsMangadexScreen : SearchableSettings {
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun syncMangaDexIntoThis(unsortedPreferences: UnsortedPreferences): Preference.PreferenceItem.TextPreference {
|
||||
fun syncMangaDexIntoThis(sourcePreferences: SourcePreferences): Preference.PreferenceItem.TextPreference {
|
||||
val context = LocalContext.current
|
||||
var dialogOpen by remember { mutableStateOf(false) }
|
||||
if (dialogOpen) {
|
||||
@@ -258,7 +255,7 @@ object SettingsMangadexScreen : SearchableSettings {
|
||||
onDismissRequest = { dialogOpen = false },
|
||||
onSelectionConfirmed = { items ->
|
||||
dialogOpen = false
|
||||
unsortedPreferences.mangadexSyncToLibraryIndexes().set(
|
||||
sourcePreferences.mangadexSyncToLibraryIndexes().set(
|
||||
List(items.size) { index -> (index + 1).toString() }.toSet(),
|
||||
)
|
||||
LibraryUpdateJob.startNow(
|
||||
|
||||
Reference in New Issue
Block a user