diff --git a/app/src/main/java/eu/kanade/domain/SYDomainModule.kt b/app/src/main/java/eu/kanade/domain/SYDomainModule.kt index feccf4cf1..4ecb6e41d 100644 --- a/app/src/main/java/eu/kanade/domain/SYDomainModule.kt +++ b/app/src/main/java/eu/kanade/domain/SYDomainModule.kt @@ -28,7 +28,6 @@ import tachiyomi.data.source.SavedSearchRepositoryImpl import tachiyomi.domain.chapter.interactor.DeleteChapters import tachiyomi.domain.chapter.interactor.GetChapterByUrl import tachiyomi.domain.chapter.interactor.GetMergedChaptersByMangaId -import tachiyomi.domain.history.interactor.GetHistoryByMangaId import tachiyomi.domain.manga.interactor.DeleteByMergeId import tachiyomi.domain.manga.interactor.DeleteFavoriteEntries import tachiyomi.domain.manga.interactor.DeleteMangaById @@ -88,7 +87,6 @@ class SYDomainModule : InjektModule { addFactory { DeleteChapters(get()) } addFactory { DeleteMangaById(get()) } addFactory { FilterSerializer() } - addFactory { GetHistoryByMangaId(get()) } addFactory { GetChapterByUrl(get()) } addFactory { GetSourceCategories(get()) } addFactory { CreateSourceCategory(get()) } diff --git a/app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt b/app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt index 4e0be66cf..0dbfab28c 100644 --- a/app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt +++ b/app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt @@ -88,5 +88,32 @@ class SourcePreferences( BANDWIDTH_HERO, WSRV_NL, } + + fun migrateFlags() = preferenceStore.getInt("migrate_flags", Int.MAX_VALUE) + + fun defaultMangaOrder() = preferenceStore.getString("default_manga_order", "") + + fun migrationSources() = preferenceStore.getString("migrate_sources", "") + + fun smartMigration() = preferenceStore.getBoolean("smart_migrate", false) + + fun useSourceWithMost() = preferenceStore.getBoolean("use_source_with_most", false) + + fun skipPreMigration() = preferenceStore.getBoolean(Preference.appStateKey("skip_pre_migration"), false) + + fun hideNotFoundMigration() = preferenceStore.getBoolean("hide_not_found_migration", false) + + fun showOnlyUpdatesMigration() = preferenceStore.getBoolean("show_only_updates_migration", false) + + fun allowLocalSourceHiddenFolders() = preferenceStore.getBoolean("allow_local_source_hidden_folders", false) + + fun preferredMangaDexId() = preferenceStore.getString("preferred_mangaDex_id", "0") + + fun mangadexSyncToLibraryIndexes() = preferenceStore.getStringSet( + "pref_mangadex_sync_to_library_indexes", + emptySet(), + ) + + fun recommendationSearchFlags() = preferenceStore.getInt("rec_search_flags", Int.MAX_VALUE) // SY <-- } diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/ConfigureExhDialog.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/ConfigureExhDialog.kt index bee4ee98e..0ab22f6cf 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/ConfigureExhDialog.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/ConfigureExhDialog.kt @@ -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() + val exhPreferences = remember { + Injekt.get() } 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 }, 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 be178bf47..a192dddf8 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 @@ -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() } - val unsortedPreferences = remember { Injekt.get() } + val exhPreferences = remember { Injekt.get() } val delegateSourcePreferences = remember { Injekt.get() } val securityPreferences = remember { Injekt.get() } 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 -> 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 056a8ec1b..029dc6fb9 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 @@ -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().hideFeedTab().asState(scope) } val uiPreferences = remember { Injekt.get() } - val unsortedPreferences = remember { Injekt.get() } // 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), + ), + ), ) } } 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 bf9e94542..8d3644853 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 @@ -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().isHentaiEnabled().get() + override fun isEnabled(): Boolean = Injekt.get().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 { - 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 { 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 { 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 { - 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(it) } 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 8c9b87567..461c975a7 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 @@ -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() } val libraryPreferences = remember { Injekt.get() } val allCategories by getCategories.subscribe().collectAsState(initial = emptyList()) - // SY --> - val unsortedPreferences = remember { Injekt.get() } - // 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 <-- } 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 b97737fa8..b18163a36 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 @@ -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 { 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 { 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( diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt index 7e0fe1b9f..55bfeed1c 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt @@ -23,6 +23,7 @@ import eu.kanade.domain.chapter.interactor.SyncChaptersWithSource import eu.kanade.domain.manga.interactor.UpdateManga import eu.kanade.domain.manga.model.copyFrom import eu.kanade.domain.manga.model.toSManga +import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.domain.sync.SyncPreferences import eu.kanade.domain.track.model.toDbTrack import eu.kanade.domain.track.model.toDomainTrack @@ -64,7 +65,6 @@ import tachiyomi.core.common.i18n.stringResource import tachiyomi.core.common.preference.getAndSet import tachiyomi.core.common.util.lang.withIOContext import tachiyomi.core.common.util.system.logcat -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.category.model.Category import tachiyomi.domain.chapter.interactor.GetChaptersByMangaId import tachiyomi.domain.chapter.model.Chapter @@ -562,7 +562,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet * filter all follows from Mangadex and only add reading or rereading manga to library */ private suspend fun syncFollows() = coroutineScope { - val preferences = Injekt.get() + val preferences = Injekt.get() var count = 0 val mangaDex = MdUtil.getEnabledMangaDex(preferences, sourceManager = sourceManager) ?: return@coroutineScope diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/mdlist/MdList.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/mdlist/MdList.kt index 524f6e5bb..57b049207 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/mdlist/MdList.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/mdlist/MdList.kt @@ -18,8 +18,6 @@ import tachiyomi.core.common.util.lang.withIOContext import tachiyomi.domain.manga.model.Manga import tachiyomi.i18n.MR import tachiyomi.i18n.sy.SYMR -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get import tachiyomi.domain.track.model.Track as DomainTrack class MdList(id: Long) : BaseTracker(id, "MDList") { @@ -30,7 +28,7 @@ class MdList(id: Long) : BaseTracker(id, "MDList") { .toImmutableList() } - private val mdex by lazy { MdUtil.getEnabledMangaDex(Injekt.get()) } + private val mdex by lazy { MdUtil.getEnabledMangaDex() } val interceptor = MangaDexAuthInterceptor(trackPreferences, this) diff --git a/app/src/main/java/eu/kanade/tachiyomi/di/SYPreferenceModule.kt b/app/src/main/java/eu/kanade/tachiyomi/di/SYPreferenceModule.kt index d31669516..09b92f64b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/di/SYPreferenceModule.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/di/SYPreferenceModule.kt @@ -2,7 +2,7 @@ package eu.kanade.tachiyomi.di import android.app.Application import exh.pref.DelegateSourcePreferences -import tachiyomi.domain.UnsortedPreferences +import exh.source.ExhPreferences import uy.kohesive.injekt.api.InjektRegistrar class SYPreferenceModule(val application: Application) : InjektModule { @@ -15,7 +15,7 @@ class SYPreferenceModule(val application: Application) : InjektModule { } addSingletonFactory { - UnsortedPreferences(get()) + ExhPreferences(get()) } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/AndroidSourceManager.kt b/app/src/main/java/eu/kanade/tachiyomi/source/AndroidSourceManager.kt index a5ae68a1d..017a21dc9 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/AndroidSourceManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/AndroidSourceManager.kt @@ -1,6 +1,7 @@ package eu.kanade.tachiyomi.source import android.content.Context +import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.extension.ExtensionManager import eu.kanade.tachiyomi.source.online.HttpSource @@ -19,6 +20,7 @@ import exh.source.EH_SOURCE_ID import exh.source.EIGHTMUSES_SOURCE_ID import exh.source.EXH_SOURCE_ID import exh.source.EnhancedHttpSource +import exh.source.ExhPreferences import exh.source.HBROWSE_SOURCE_ID import exh.source.MERGED_SOURCE_ID import exh.source.PURURIN_SOURCE_ID @@ -36,7 +38,6 @@ import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.map import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.source.model.StubSource import tachiyomi.domain.source.repository.StubSourceRepository import tachiyomi.domain.source.service.SourceManager @@ -69,14 +70,15 @@ class AndroidSourceManager( } // SY --> - private val preferences: UnsortedPreferences by injectLazy() + private val exhPreferences: ExhPreferences by injectLazy() + private val sourcePreferences: SourcePreferences by injectLazy() // SY <-- init { scope.launch { extensionManager.installedExtensionsFlow // SY --> - .combine(preferences.enableExhentai().changes()) { extensions, enableExhentai -> + .combine(exhPreferences.enableExhentai().changes()) { extensions, enableExhentai -> extensions to enableExhentai } // SY <-- @@ -88,7 +90,7 @@ class AndroidSourceManager( Injekt.get(), Injekt.get(), // SY --> - preferences.allowLocalSourceHiddenFolders()::get, + sourcePreferences.allowLocalSourceHiddenFolders()::get, // SY <-- ), ), diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt index ad8c9485b..c7a7ad21a 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt @@ -44,6 +44,7 @@ import exh.metadata.metadata.EHentaiSearchMetadata.Companion.TAG_TYPE_WEAK import exh.metadata.metadata.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL import exh.metadata.metadata.RaisedSearchMetadata.Companion.toGenreString import exh.metadata.metadata.base.RaisedTag +import exh.source.ExhPreferences import exh.ui.login.EhLoginActivity import exh.util.UriFilter import exh.util.UriGroup @@ -84,7 +85,6 @@ import org.jsoup.nodes.TextNode import rx.Observable import tachiyomi.core.common.util.lang.runAsObservable import tachiyomi.core.common.util.lang.withIOContext -import tachiyomi.domain.UnsortedPreferences import uy.kohesive.injekt.injectLazy import java.io.ByteArrayOutputStream import java.io.IOException @@ -117,7 +117,7 @@ class EHentai( override val lang = "all" override val supportsLatest = true - private val preferences: UnsortedPreferences by injectLazy() + private val exhPreferences: ExhPreferences by injectLazy() private val updateHelper: EHentaiUpdateHelper by injectLazy() /** @@ -476,7 +476,7 @@ class EHentai( } private fun T.checkValid(): MangasPage = - if (exh && mangas.isEmpty() && preferences.igneousVal().get().equals("mystery", true)) { + if (exh && mangas.isEmpty() && exhPreferences.igneousVal().get().equals("mystery", true)) { throw Exception( "Invalid igneous cookie, try re-logging or finding a correct one to input in the login menu", ) @@ -879,30 +879,30 @@ class EHentai( } fun spPref() = if (exh) { - preferences.exhSettingsProfile() + exhPreferences.exhSettingsProfile() } else { - preferences.ehSettingsProfile() + exhPreferences.ehSettingsProfile() } private fun rawCookies(sp: Int): Map { val cookies: MutableMap = mutableMapOf() - if (preferences.enableExhentai().get()) { - cookies[EhLoginActivity.MEMBER_ID_COOKIE] = preferences.memberIdVal().get() - cookies[EhLoginActivity.PASS_HASH_COOKIE] = preferences.passHashVal().get() - cookies[EhLoginActivity.IGNEOUS_COOKIE] = preferences.igneousVal().get() + if (exhPreferences.enableExhentai().get()) { + cookies[EhLoginActivity.MEMBER_ID_COOKIE] = exhPreferences.memberIdVal().get() + cookies[EhLoginActivity.PASS_HASH_COOKIE] = exhPreferences.passHashVal().get() + cookies[EhLoginActivity.IGNEOUS_COOKIE] = exhPreferences.igneousVal().get() cookies["sp"] = sp.toString() - val sessionKey = preferences.exhSettingsKey().get() + val sessionKey = exhPreferences.exhSettingsKey().get() if (sessionKey.isNotBlank()) { cookies["sk"] = sessionKey } - val sessionCookie = preferences.exhSessionCookie().get() + val sessionCookie = exhPreferences.exhSessionCookie().get() if (sessionCookie.isNotBlank()) { cookies["s"] = sessionCookie } - val hathPerksCookie = preferences.exhHathPerksCookies().get() + val hathPerksCookie = exhPreferences.exhHathPerksCookies().get() if (hathPerksCookie.isNotBlank()) { cookies["hath_perks"] = hathPerksCookie } @@ -949,7 +949,7 @@ class EHentai( ToplistOptions(), Filter.Separator(), AutoCompleteTags(), - Watched(isEnabled = preferences.exhWatchedListDefaultState().get()), + Watched(isEnabled = exhPreferences.exhWatchedListDefaultState().get()), GenreGroup(), AdvancedGroup(), ReverseFilter(), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationBottomSheetDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationBottomSheetDialog.kt index e9a797c29..dcc74446f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationBottomSheetDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationBottomSheetDialog.kt @@ -13,13 +13,13 @@ import androidx.compose.runtime.rememberUpdatedState import androidx.compose.ui.Modifier import androidx.compose.ui.viewinterop.AndroidView import androidx.core.view.isVisible +import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.presentation.components.AdaptiveSheet import eu.kanade.tachiyomi.databinding.MigrationBottomSheetBinding import eu.kanade.tachiyomi.ui.browse.migration.MigrationFlags import eu.kanade.tachiyomi.util.system.toast import tachiyomi.core.common.preference.Preference import tachiyomi.core.common.util.lang.toLong -import tachiyomi.domain.UnsortedPreferences import tachiyomi.i18n.sy.SYMR import uy.kohesive.injekt.injectLazy @@ -45,7 +45,7 @@ fun MigrationBottomSheetDialog( } class MigrationBottomSheetDialogState(private val onStartMigration: State<(extraParam: String?) -> Unit>) { - private val preferences: UnsortedPreferences by injectLazy() + private val preferences: SourcePreferences by injectLazy() /** * Init general reader preferences. diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/PreMigrationScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/PreMigrationScreenModel.kt index f831acdc6..6dad92d9f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/PreMigrationScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/PreMigrationScreenModel.kt @@ -10,14 +10,12 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import tachiyomi.core.common.util.lang.launchIO -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.source.service.SourceManager import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get class PreMigrationScreenModel( private val sourceManager: SourceManager = Injekt.get(), - private val prefs: UnsortedPreferences = Injekt.get(), private val sourcePreferences: SourcePreferences = Injekt.get(), ) : ScreenModel { @@ -53,7 +51,7 @@ class PreMigrationScreenModel( */ private fun getEnabledSources(): List { val languages = sourcePreferences.enabledLanguages().get() - val sourcesSaved = prefs.migrationSources().get().split("/") + val sourcesSaved = sourcePreferences.migrationSources().get().split("/") .mapNotNull { it.toLongOrNull() } val disabledSources = sourcePreferences.disabledSources().get() .mapNotNull { it.toLongOrNull() } @@ -134,6 +132,6 @@ class PreMigrationScreenModel( ?.joinToString("/") { it.source.id.toString() } .orEmpty() - prefs.migrationSources().set(listOfSources) + sourcePreferences.migrationSources().set(listOfSources) } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListScreenModel.kt index 2b4d1a2c4..c6d53e4d8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListScreenModel.kt @@ -8,6 +8,7 @@ import eu.kanade.domain.chapter.interactor.SyncChaptersWithSource import eu.kanade.domain.manga.interactor.UpdateManga import eu.kanade.domain.manga.model.hasCustomCover import eu.kanade.domain.manga.model.toSManga +import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.tachiyomi.data.cache.CoverCache import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.source.CatalogueSource @@ -38,14 +39,13 @@ 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.domain.category.interactor.GetCategories import tachiyomi.domain.category.interactor.SetMangaCategories import tachiyomi.domain.chapter.interactor.GetChaptersByMangaId import tachiyomi.domain.chapter.interactor.UpdateChapter import tachiyomi.domain.chapter.model.Chapter import tachiyomi.domain.chapter.model.ChapterUpdate -import tachiyomi.domain.history.interactor.GetHistoryByMangaId +import tachiyomi.domain.history.interactor.GetHistory import tachiyomi.domain.history.interactor.UpsertHistory import tachiyomi.domain.history.model.HistoryUpdate import tachiyomi.domain.manga.interactor.GetManga @@ -64,7 +64,7 @@ import java.util.concurrent.atomic.AtomicInteger class MigrationListScreenModel( private val config: MigrationProcedureConfig, - private val preferences: UnsortedPreferences = Injekt.get(), + private val preferences: SourcePreferences = Injekt.get(), private val sourceManager: SourceManager = Injekt.get(), private val downloadManager: DownloadManager = Injekt.get(), private val coverCache: CoverCache = Injekt.get(), @@ -75,7 +75,7 @@ class MigrationListScreenModel( private val updateChapter: UpdateChapter = Injekt.get(), private val getChaptersByMangaId: GetChaptersByMangaId = Injekt.get(), private val getMergedReferencesById: GetMergedReferencesById = Injekt.get(), - private val getHistoryByMangaId: GetHistoryByMangaId = Injekt.get(), + private val getHistoryByMangaId: GetHistory = Injekt.get(), private val upsertHistory: UpsertHistory = Injekt.get(), private val getCategories: GetCategories = Injekt.get(), private val setMangaCategories: SetMangaCategories = Injekt.get(), @@ -236,7 +236,7 @@ class MigrationListScreenModel( try { syncChaptersWithSource.await(chapters, localManga, source) - } catch (e: Exception) { + } catch (_: Exception) { return@async2 null } manga.progress.value = @@ -248,7 +248,7 @@ class MigrationListScreenModel( } catch (e: CancellationException) { // Ignore cancellations throw e - } catch (e: Exception) { + } catch (_: Exception) { null } } @@ -283,7 +283,7 @@ class MigrationListScreenModel( } catch (e: CancellationException) { // Ignore cancellations throw e - } catch (e: Exception) { + } catch (_: Exception) { null } manga.progress.value = validSources.size to (index + 1) @@ -293,7 +293,7 @@ class MigrationListScreenModel( null } }.await() - } catch (e: CancellationException) { + } catch (_: CancellationException) { // Ignore canceled migrations continue } @@ -305,7 +305,7 @@ class MigrationListScreenModel( } catch (e: CancellationException) { // Ignore cancellations throw e - } catch (e: Exception) { + } catch (_: Exception) { } } @@ -460,7 +460,7 @@ class MigrationListScreenModel( val source = sourceManager.get(manga.source)!! val chapters = source.getChapterList(localManga.toSManga()) syncChaptersWithSource.await(chapters, localManga, source) - } catch (e: Exception) { + } catch (_: Exception) { return@async null } localManga @@ -473,7 +473,7 @@ class MigrationListScreenModel( } catch (e: CancellationException) { // Ignore cancellations throw e - } catch (e: Exception) { + } catch (_: Exception) { } migratingManga.searchResult.value = SearchResult.Result(result.id) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/manga/MigrateMangaScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/manga/MigrateMangaScreen.kt index d2b978354..cc9aa8b95 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/manga/MigrateMangaScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/manga/MigrateMangaScreen.kt @@ -8,13 +8,13 @@ import androidx.compose.ui.platform.LocalContext import cafe.adriel.voyager.core.model.rememberScreenModel import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow +import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.presentation.browse.MigrateMangaScreen import eu.kanade.presentation.util.Screen import eu.kanade.tachiyomi.ui.browse.migration.advanced.design.PreMigrationScreen import eu.kanade.tachiyomi.ui.manga.MangaScreen import eu.kanade.tachiyomi.util.system.toast import kotlinx.coroutines.flow.collectLatest -import tachiyomi.domain.UnsortedPreferences import tachiyomi.i18n.MR import tachiyomi.presentation.core.screens.LoadingScreen import uy.kohesive.injekt.Injekt @@ -44,7 +44,7 @@ data class MigrateMangaScreen( onClickItem = { // SY --> PreMigrationScreen.navigateToMigration( - Injekt.get().skipPreMigration().get(), + Injekt.get().skipPreMigration().get(), navigator, listOf(it.id), ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceTab.kt index 444ccf579..8a0618fab 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceTab.kt @@ -10,6 +10,7 @@ import cafe.adriel.voyager.core.model.rememberScreenModel import cafe.adriel.voyager.core.screen.Screen import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow +import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.presentation.browse.MigrateSourceScreen import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.TabContent @@ -19,7 +20,6 @@ import kotlinx.collections.immutable.persistentListOf import kotlinx.coroutines.DelicateCoroutinesApi import tachiyomi.core.common.util.lang.launchIO import tachiyomi.core.common.util.lang.withUIContext -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.manga.interactor.GetFavorites import tachiyomi.i18n.MR import tachiyomi.presentation.core.i18n.stringResource @@ -63,7 +63,7 @@ fun Screen.migrateSourceTab(): TabContent { manga.asSequence().filter { it.source == source.id }.map { it.id }.toList() withUIContext { PreMigrationScreen.navigateToMigration( - Injekt.get().skipPreMigration().get(), + Injekt.get().skipPreMigration().get(), navigator, sourceMangas, ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesScreen.kt deleted file mode 100644 index e3bfe4c27..000000000 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesScreen.kt +++ /dev/null @@ -1,15 +0,0 @@ -package eu.kanade.tachiyomi.ui.browse.migration.sources - -import androidx.compose.runtime.Composable -import cafe.adriel.voyager.navigator.LocalNavigator -import cafe.adriel.voyager.navigator.currentOrThrow -import eu.kanade.presentation.browse.BrowseTabWrapper -import eu.kanade.presentation.util.Screen - -class MigrationSourcesScreen : Screen() { - @Composable - override fun Content() { - val navigator = LocalNavigator.currentOrThrow - BrowseTabWrapper(migrateSourceTab(), onBackPressed = navigator::pop) - } -} diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt index 1973e4965..421e8393f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt @@ -36,6 +36,7 @@ import androidx.compose.ui.platform.LocalUriHandler import cafe.adriel.voyager.core.model.rememberScreenModel import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow +import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.presentation.browse.BrowseSourceContent import eu.kanade.presentation.browse.MissingSourceScreen import eu.kanade.presentation.browse.components.BrowseSourceToolbar @@ -64,7 +65,6 @@ import kotlinx.coroutines.flow.receiveAsFlow import mihon.presentation.core.util.collectAsLazyPagingItems import tachiyomi.core.common.Constants import tachiyomi.core.common.util.lang.launchIO -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.source.model.StubSource import tachiyomi.i18n.MR import tachiyomi.presentation.core.components.material.Scaffold @@ -327,7 +327,7 @@ data class BrowseSourceScreen( onMigrate = { // SY --> PreMigrationScreen.navigateToMigration( - Injekt.get().skipPreMigration().get(), + Injekt.get().skipPreMigration().get(), navigator, it.id, dialog.manga.id, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt index be881860d..13b335333 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt @@ -29,6 +29,7 @@ import eu.kanade.tachiyomi.source.online.MetadataSource import eu.kanade.tachiyomi.source.online.all.MangaDex import eu.kanade.tachiyomi.util.removeCovers import exh.metadata.metadata.RaisedSearchMetadata +import exh.source.ExhPreferences import exh.source.getMainSource import exh.source.mangaDexSourceIds import kotlinx.collections.immutable.ImmutableList @@ -55,7 +56,6 @@ import tachiyomi.core.common.preference.mapAsCheckboxState import tachiyomi.core.common.util.lang.launchIO import tachiyomi.core.common.util.lang.launchNonCancellable import tachiyomi.core.common.util.lang.withUIContext -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.category.interactor.GetCategories import tachiyomi.domain.category.interactor.SetMangaCategories import tachiyomi.domain.category.model.Category @@ -103,7 +103,7 @@ open class BrowseSourceScreenModel( private val getIncognitoState: GetIncognitoState = Injekt.get(), // SY --> - unsortedPreferences: UnsortedPreferences = Injekt.get(), + exhPreferences: ExhPreferences = Injekt.get(), uiPreferences: UiPreferences = Injekt.get(), private val getFlatMetadataById: GetFlatMetadataById = Injekt.get(), private val deleteSavedSearchById: DeleteSavedSearchById = Injekt.get(), @@ -117,7 +117,7 @@ open class BrowseSourceScreenModel( val source = sourceManager.getOrStub(sourceId) // SY --> - val ehentaiBrowseDisplayMode by unsortedPreferences.enhancedEHentaiView().asState(screenModelScope) + val ehentaiBrowseDisplayMode by exhPreferences.enhancedEHentaiView().asState(screenModelScope) val startExpanded by uiPreferences.expandFilters().asState(screenModelScope) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt index 89227317d..06d376d9c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt @@ -19,6 +19,7 @@ import cafe.adriel.voyager.navigator.currentOrThrow import cafe.adriel.voyager.navigator.tab.LocalTabNavigator import cafe.adriel.voyager.navigator.tab.TabOptions import eu.kanade.core.preference.asState +import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.domain.ui.UiPreferences import eu.kanade.presentation.category.components.ChangeCategoryDialog import eu.kanade.presentation.history.HistoryScreen @@ -36,7 +37,6 @@ import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.receiveAsFlow import tachiyomi.core.common.i18n.stringResource -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.chapter.model.Chapter import tachiyomi.i18n.MR import tachiyomi.presentation.core.i18n.stringResource @@ -123,7 +123,7 @@ data object HistoryTab : Tab { onMigrate = { // SY --> PreMigrationScreen.navigateToMigration( - Injekt.get().skipPreMigration().get(), + Injekt.get().skipPreMigration().get(), navigator, it.id, dialog.manga.id, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt index c6a3e19c3..5386697ab 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt @@ -48,6 +48,7 @@ import exh.search.QueryComponent import exh.search.SearchEngine import exh.search.Text import exh.source.EH_SOURCE_ID +import exh.source.ExhPreferences import exh.source.MERGED_SOURCE_ID import exh.source.isEhBasedManga import exh.source.isMetadataSource @@ -86,7 +87,6 @@ import tachiyomi.core.common.util.lang.compareToWithCollator import tachiyomi.core.common.util.lang.launchIO import tachiyomi.core.common.util.lang.launchNonCancellable import tachiyomi.core.common.util.lang.withIOContext -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.category.interactor.GetCategories import tachiyomi.domain.category.interactor.SetMangaCategories import tachiyomi.domain.category.model.Category @@ -144,7 +144,7 @@ class LibraryScreenModel( private val downloadCache: DownloadCache = Injekt.get(), private val trackerManager: TrackerManager = Injekt.get(), // SY --> - private val unsortedPreferences: UnsortedPreferences = Injekt.get(), + private val exhPreferences: ExhPreferences = Injekt.get(), private val sourcePreferences: SourcePreferences = Injekt.get(), private val getMergedMangaById: GetMergedMangaById = Injekt.get(), private val getTracks: GetTracks = Injekt.get(), @@ -260,9 +260,9 @@ class LibraryScreenModel( // SY --> combine( - unsortedPreferences.isHentaiEnabled().changes(), + exhPreferences.isHentaiEnabled().changes(), sourcePreferences.disabledSources().changes(), - unsortedPreferences.enableExhentai().changes(), + exhPreferences.enableExhentai().changes(), ) { isHentaiEnabled, disabledSources, enableExhentai -> isHentaiEnabled && (EH_SOURCE_ID.toString() !in disabledSources || enableExhentai) } @@ -771,7 +771,7 @@ class LibraryScreenModel( @OptIn(DelicateCoroutinesApi::class) fun syncMangaToDex() { launchIO { - MdUtil.getEnabledMangaDex(unsortedPreferences, sourcePreferences, sourceManager)?.let { mdex -> + MdUtil.getEnabledMangaDex(sourcePreferences, sourceManager)?.let { mdex -> state.value.selection.fastFilter { it.manga.source in mangaDexSourceIds }.fastForEach { (manga) -> mdex.updateFollowStatus(MdUtil.getMangaId(manga.url), FollowStatus.READING) } @@ -1346,13 +1346,13 @@ class LibraryScreenModel( } fun onAcceptSyncWarning() { - unsortedPreferences.exhShowSyncIntro().set(false) + exhPreferences.exhShowSyncIntro().set(false) } fun openFavoritesSyncDialog() { mutableState.update { it.copy( - dialog = if (unsortedPreferences.exhShowSyncIntro().get()) { + dialog = if (exhPreferences.exhShowSyncIntro().get()) { Dialog.SyncFavoritesWarning } else { Dialog.SyncFavoritesConfirm diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt index 7af6adc55..044371ec9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt @@ -28,6 +28,7 @@ import cafe.adriel.voyager.navigator.Navigator import cafe.adriel.voyager.navigator.currentOrThrow import cafe.adriel.voyager.navigator.tab.LocalTabNavigator import cafe.adriel.voyager.navigator.tab.TabOptions +import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.presentation.category.components.ChangeCategoryDialog import eu.kanade.presentation.library.DeleteLibraryMangaDialog import eu.kanade.presentation.library.LibrarySettingsDialog @@ -63,7 +64,6 @@ import kotlinx.coroutines.flow.receiveAsFlow import kotlinx.coroutines.launch import tachiyomi.core.common.i18n.stringResource import tachiyomi.core.common.util.lang.launchIO -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.category.model.Category import tachiyomi.domain.library.model.LibraryGroup import tachiyomi.domain.library.model.LibraryManga @@ -201,7 +201,7 @@ data object LibraryTab : Tab { screenModel.clearSelection() if (selectedMangaIds.isNotEmpty()) { PreMigrationScreen.navigateToMigration( - Injekt.get().skipPreMigration().get(), + Injekt.get().skipPreMigration().get(), navigator, selectedMangaIds, ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index b119b06e6..8843fe88a 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -89,6 +89,7 @@ import exh.log.DebugModeOverlay import exh.source.BlacklistedSources import exh.source.EH_SOURCE_ID import exh.source.EXH_SOURCE_ID +import exh.source.ExhPreferences import exh.syDebugVersion import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.callbackFlow @@ -103,7 +104,6 @@ import mihon.core.migration.Migrator import tachiyomi.core.common.Constants import tachiyomi.core.common.util.lang.launchIO import tachiyomi.core.common.util.system.logcat -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.library.service.LibraryPreferences import tachiyomi.domain.release.interactor.GetApplicationRelease import tachiyomi.presentation.core.components.material.Scaffold @@ -117,7 +117,7 @@ class MainActivity : BaseActivity() { private val preferences: BasePreferences by injectLazy() // SY --> - private val unsortedPreferences: UnsortedPreferences by injectLazy() + private val exhPreferences: ExhPreferences by injectLazy() // SY <-- private val downloadCache: DownloadCache by injectLazy() @@ -222,8 +222,8 @@ class MainActivity : BaseActivity() { // SY --> initWhenIdle { // Upload settings - if (unsortedPreferences.enableExhentai().get() && - unsortedPreferences.exhShowSettingsUploadWarning().get() + if (exhPreferences.enableExhentai().get() && + exhPreferences.exhShowSettingsUploadWarning().get() ) { runExhConfigureDialog = true } @@ -335,7 +335,7 @@ class MainActivity : BaseActivity() { } // SY --> - if (!unsortedPreferences.isHentaiEnabled().get()) { + if (!exhPreferences.isHentaiEnabled().get()) { BlacklistedSources.HIDDEN_SOURCES += EH_SOURCE_ID BlacklistedSources.HIDDEN_SOURCES += EXH_SOURCE_ID } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt index 57eed5bc4..460f089ec 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt @@ -27,6 +27,7 @@ import cafe.adriel.voyager.navigator.currentOrThrow import com.google.android.material.dialog.MaterialAlertDialogBuilder import eu.kanade.domain.manga.model.hasCustomCover import eu.kanade.domain.manga.model.toSManga +import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.presentation.category.components.ChangeCategoryDialog import eu.kanade.presentation.components.NavigatorAdaptiveSheet import eu.kanade.presentation.manga.ChapterSettingsDialog @@ -77,7 +78,6 @@ import tachiyomi.core.common.util.lang.launchUI import tachiyomi.core.common.util.lang.withIOContext import tachiyomi.core.common.util.lang.withNonCancellableContext import tachiyomi.core.common.util.system.logcat -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.chapter.model.Chapter import tachiyomi.domain.manga.model.Manga import tachiyomi.domain.source.service.SourceManager @@ -476,7 +476,7 @@ class MangaScreen( private fun migrateManga(navigator: Navigator, manga: Manga, toMangaId: Long? = null) { // SY --> PreMigrationScreen.navigateToMigration( - Injekt.get().skipPreMigration().get(), + Injekt.get().skipPreMigration().get(), navigator, manga.id, toMangaId, diff --git a/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt b/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt index efc3adad1..a08cc0e15 100644 --- a/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt +++ b/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt @@ -13,7 +13,7 @@ import tachiyomi.domain.chapter.interactor.GetChaptersByMangaId import tachiyomi.domain.chapter.model.Chapter import tachiyomi.domain.chapter.model.ChapterUpdate import tachiyomi.domain.chapter.repository.ChapterRepository -import tachiyomi.domain.history.interactor.GetHistoryByMangaId +import tachiyomi.domain.history.interactor.GetHistory import tachiyomi.domain.history.interactor.RemoveHistory import tachiyomi.domain.history.interactor.UpsertHistory import tachiyomi.domain.history.model.History @@ -43,7 +43,7 @@ class EHentaiUpdateHelper(context: Context) { private val chapterRepository: ChapterRepository by injectLazy() private val upsertHistory: UpsertHistory by injectLazy() private val removeHistory: RemoveHistory by injectLazy() - private val getHistoryByMangaId: GetHistoryByMangaId by injectLazy() + private val getHistoryByMangaId: GetHistory by injectLazy() private val insertFavoriteEntryAlternative: InsertFavoriteEntryAlternative by injectLazy() /** diff --git a/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt b/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt index 991cd93be..42a796256 100644 --- a/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt +++ b/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt @@ -27,14 +27,13 @@ import exh.debug.DebugToggles import exh.eh.EHentaiUpdateWorkerConstants.UPDATES_PER_ITERATION import exh.log.xLog import exh.metadata.metadata.EHentaiSearchMetadata +import exh.source.ExhPreferences import exh.util.cancellable import kotlinx.coroutines.flow.asFlow import kotlinx.coroutines.flow.mapNotNull import kotlinx.coroutines.flow.toList -import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import tachiyomi.core.common.preference.getAndSet -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.chapter.interactor.GetChaptersByMangaId import tachiyomi.domain.chapter.model.Chapter import tachiyomi.domain.library.service.LibraryPreferences @@ -53,7 +52,7 @@ import kotlin.time.Duration.Companion.days class EHentaiUpdateWorker(private val context: Context, workerParams: WorkerParameters) : CoroutineWorker(context, workerParams) { - private val preferences: UnsortedPreferences by injectLazy() + private val exhPreferences: ExhPreferences by injectLazy() private val libraryPreferences: LibraryPreferences by injectLazy() private val sourceManager: SourceManager by injectLazy() private val updateHelper: EHentaiUpdateHelper by injectLazy() @@ -70,7 +69,7 @@ class EHentaiUpdateWorker(private val context: Context, workerParams: WorkerPara override suspend fun doWork(): Result { return try { - if (requiresWifiConnection(preferences) && !context.isConnectedToWifi()) { + if (requiresWifiConnection(exhPreferences) && !context.isConnectedToWifi()) { Result.success() // retry again later } else { setForegroundSafely() @@ -215,7 +214,7 @@ class EHentaiUpdateWorker(private val context: Context, workerParams: WorkerPara updatedThisIteration++ } } finally { - preferences.exhAutoUpdateStats().set( + exhPreferences.exhAutoUpdateStats().set( Json.encodeToString( EHentaiUpdaterStats( startTime, @@ -279,10 +278,10 @@ class EHentaiUpdateWorker(private val context: Context, workerParams: WorkerPara } fun scheduleBackground(context: Context, prefInterval: Int? = null, prefRestrictions: Set? = null) { - val preferences = Injekt.get() - val interval = prefInterval ?: preferences.exhAutoUpdateFrequency().get() + val exhPreferences = Injekt.get() + val interval = prefInterval ?: exhPreferences.exhAutoUpdateFrequency().get() if (interval > 0) { - val restrictions = prefRestrictions ?: preferences.exhAutoUpdateRequirements().get() + val restrictions = prefRestrictions ?: exhPreferences.exhAutoUpdateRequirements().get() val acRestriction = DEVICE_CHARGING in restrictions val constraints = Constraints.Builder() @@ -312,8 +311,8 @@ class EHentaiUpdateWorker(private val context: Context, workerParams: WorkerPara } } - fun requiresWifiConnection(preferences: UnsortedPreferences): Boolean { - val restrictions = preferences.exhAutoUpdateRequirements().get() + fun requiresWifiConnection(exhPreferences: ExhPreferences): Boolean { + val restrictions = exhPreferences.exhAutoUpdateRequirements().get() return DEVICE_ONLY_ON_WIFI in restrictions } } diff --git a/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt b/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt index 3348735b4..c106456e6 100644 --- a/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt +++ b/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt @@ -14,6 +14,7 @@ import exh.eh.EHentaiUpdateWorker import exh.log.xLog import exh.source.EH_SOURCE_ID import exh.source.EXH_SOURCE_ID +import exh.source.ExhPreferences import exh.source.isEhBasedManga import exh.util.ThrottleManager import exh.util.createPartialWakeLock @@ -29,7 +30,6 @@ import okhttp3.Request import tachiyomi.core.common.i18n.stringResource import tachiyomi.core.common.util.lang.withIOContext import tachiyomi.core.common.util.lang.withUIContext -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.category.interactor.CreateCategoryWithName import tachiyomi.domain.category.interactor.GetCategories import tachiyomi.domain.category.interactor.SetMangaCategories @@ -57,7 +57,7 @@ class FavoritesSyncHelper(val context: Context) { private val createCategoryWithName: CreateCategoryWithName by injectLazy() private val updateCategory: UpdateCategory by injectLazy() - private val prefs: UnsortedPreferences by injectLazy() + private val exhPreferences: ExhPreferences by injectLazy() private val exh by lazy { Injekt.get().get(EXH_SOURCE_ID) as? EHentai @@ -90,7 +90,7 @@ class FavoritesSyncHelper(val context: Context) { private suspend fun beginSync() { // Check if logged in - if (!prefs.enableExhentai().get()) { + if (!exhPreferences.enableExhentai().get()) { status.value = FavoritesSyncStatus.SyncError.NotLoggedInSyncError return } @@ -138,7 +138,7 @@ class FavoritesSyncHelper(val context: Context) { status.value = FavoritesSyncStatus.Processing.CalculatingRemoteChanges val remoteChanges = storage.getChangedRemoteEntries(favorites.first) - val localChanges = if (prefs.exhReadOnlySync().get()) { + val localChanges = if (exhPreferences.exhReadOnlySync().get()) { null // Do not build local changes if they are not going to be applied } else { status.value = FavoritesSyncStatus.Processing.CalculatingLocalChanges @@ -238,7 +238,7 @@ class FavoritesSyncHelper(val context: Context) { gallery.gid, ) - if (prefs.exhLenientSync().get()) { + if (exhPreferences.exhLenientSync().get()) { errorList += error } else { status.value = error @@ -289,7 +289,7 @@ class FavoritesSyncHelper(val context: Context) { ) if (!explicitlyRetryExhRequest(10, request)) { - if (prefs.exhLenientSync().get()) { + if (exhPreferences.exhLenientSync().get()) { errorList += FavoritesSyncStatus.SyncError.GallerySyncError.UnableToDeleteFromRemote } else { status.value = FavoritesSyncStatus.SyncError.GallerySyncError.UnableToDeleteFromRemote @@ -392,7 +392,7 @@ class FavoritesSyncHelper(val context: Context) { ) } - if (prefs.exhLenientSync().get()) { + if (exhPreferences.exhLenientSync().get()) { errorList += error } else { status.value = error diff --git a/app/src/main/java/exh/md/MangaDexLoginActivity.kt b/app/src/main/java/exh/md/MangaDexLoginActivity.kt index bc03bb361..d2c8be5ca 100644 --- a/app/src/main/java/exh/md/MangaDexLoginActivity.kt +++ b/app/src/main/java/exh/md/MangaDexLoginActivity.kt @@ -16,14 +16,16 @@ class MangaDexLoginActivity : BaseOAuthLoginActivity() { val code = data?.getQueryParameter("code") if (code != null) { lifecycleScope.launchIO { - Injekt.get().isInitialized.first { it } - MdUtil.getEnabledMangaDex(Injekt.get())?.login(code) + val sourceManager = Injekt.get() + sourceManager.isInitialized.first { it } + MdUtil.getEnabledMangaDex(sourceManager = sourceManager)?.login(code) returnToSettings() } } else { lifecycleScope.launchIO { - Injekt.get().isInitialized.first { it } - MdUtil.getEnabledMangaDex(Injekt.get())?.logout() + val sourceManager = Injekt.get() + sourceManager.isInitialized.first { it } + MdUtil.getEnabledMangaDex(sourceManager = sourceManager)?.logout() returnToSettings() } } diff --git a/app/src/main/java/exh/md/follows/MangaDexFollowsScreen.kt b/app/src/main/java/exh/md/follows/MangaDexFollowsScreen.kt index 033a75d2b..37835f17d 100644 --- a/app/src/main/java/exh/md/follows/MangaDexFollowsScreen.kt +++ b/app/src/main/java/exh/md/follows/MangaDexFollowsScreen.kt @@ -13,6 +13,7 @@ import androidx.compose.ui.platform.LocalHapticFeedback import cafe.adriel.voyager.core.model.rememberScreenModel import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow +import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.presentation.browse.BrowseSourceContent import eu.kanade.presentation.browse.components.BrowseSourceSimpleToolbar import eu.kanade.presentation.browse.components.RemoveMangaDialog @@ -26,7 +27,6 @@ import eu.kanade.tachiyomi.ui.manga.MangaScreen import exh.ui.ifSourcesLoaded import mihon.presentation.core.util.collectAsLazyPagingItems import tachiyomi.core.common.util.lang.launchIO -import tachiyomi.domain.UnsortedPreferences import tachiyomi.i18n.sy.SYMR import tachiyomi.presentation.core.components.material.Scaffold import tachiyomi.presentation.core.i18n.stringResource @@ -109,7 +109,7 @@ class MangaDexFollowsScreen(private val sourceId: Long) : Screen() { onOpenManga = { navigator.push(MangaScreen(it.id)) }, onMigrate = { PreMigrationScreen.navigateToMigration( - Injekt.get().skipPreMigration().get(), + Injekt.get().skipPreMigration().get(), navigator, it.id, dialog.manga.id, diff --git a/app/src/main/java/exh/md/utils/MdUtil.kt b/app/src/main/java/exh/md/utils/MdUtil.kt index a3ce3021c..fc9dc88b0 100644 --- a/app/src/main/java/exh/md/utils/MdUtil.kt +++ b/app/src/main/java/exh/md/utils/MdUtil.kt @@ -17,7 +17,6 @@ import exh.source.getMainSource import exh.util.dropBlank import exh.util.floor import exh.util.nullIfZero -import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import okhttp3.FormBody import okhttp3.Headers @@ -26,7 +25,6 @@ import okhttp3.Request import okhttp3.RequestBody import okhttp3.RequestBody.Companion.toRequestBody import org.jsoup.parser.Parser -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.source.service.SourceManager import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get @@ -232,9 +230,9 @@ class MdUtil { return codeVerifier ?: PkceUtil.generateCodeVerifier().also { codeVerifier = it } } - fun getEnabledMangaDex(preferences: UnsortedPreferences, sourcePreferences: SourcePreferences = Injekt.get(), sourceManager: SourceManager = Injekt.get()): MangaDex? { + fun getEnabledMangaDex(sourcePreferences: SourcePreferences = Injekt.get(), sourceManager: SourceManager = Injekt.get()): MangaDex? { return getEnabledMangaDexs(sourcePreferences, sourceManager).let { mangadexs -> - preferences.preferredMangaDexId().get().toLongOrNull()?.nullIfZero() + sourcePreferences.preferredMangaDexId().get().toLongOrNull()?.nullIfZero() ?.let { preferredMangaDexId -> mangadexs.firstOrNull { it.id == preferredMangaDexId } } diff --git a/app/src/main/java/exh/recs/batch/RecommendationSearchBottomSheetDialog.kt b/app/src/main/java/exh/recs/batch/RecommendationSearchBottomSheetDialog.kt index 535bed570..bfb5bd54e 100644 --- a/app/src/main/java/exh/recs/batch/RecommendationSearchBottomSheetDialog.kt +++ b/app/src/main/java/exh/recs/batch/RecommendationSearchBottomSheetDialog.kt @@ -6,9 +6,9 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.viewinterop.AndroidView +import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.presentation.components.AdaptiveSheet import eu.kanade.tachiyomi.databinding.RecommendationSearchBottomSheetBinding -import tachiyomi.domain.UnsortedPreferences import uy.kohesive.injekt.injectLazy @Composable @@ -30,7 +30,7 @@ fun RecommendationSearchBottomSheetDialog( } class RecommendationSearchBottomSheetDialogState(private val onSearchRequest: () -> Unit) { - private val preferences: UnsortedPreferences by injectLazy() + private val preferences: SourcePreferences by injectLazy() fun initPreferences(binding: RecommendationSearchBottomSheetBinding) { val flags = preferences.recommendationSearchFlags().get() diff --git a/app/src/main/java/exh/recs/batch/RecommendationSearchHelper.kt b/app/src/main/java/exh/recs/batch/RecommendationSearchHelper.kt index cfb85ded2..d3dccea02 100644 --- a/app/src/main/java/exh/recs/batch/RecommendationSearchHelper.kt +++ b/app/src/main/java/exh/recs/batch/RecommendationSearchHelper.kt @@ -6,6 +6,7 @@ import android.os.PowerManager import androidx.annotation.StringRes import androidx.core.net.toUri import eu.kanade.domain.manga.model.toSManga +import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.model.SManga import exh.log.xLog @@ -27,7 +28,6 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.launch import mihon.domain.manga.model.toDomainManga import tachiyomi.data.source.NoResultsException -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.library.model.LibraryManga import tachiyomi.domain.manga.interactor.GetLibraryManga import tachiyomi.domain.manga.interactor.NetworkToLocalManga @@ -47,7 +47,7 @@ class RecommendationSearchHelper(val context: Context) { private val getTracks: GetTracks by injectLazy() private val networkToLocalManga: NetworkToLocalManga by injectLazy() private val sourceManager: SourceManager by injectLazy() - private val prefs: UnsortedPreferences by injectLazy() + private val preferences: SourcePreferences by injectLazy() private var wifiLock: WifiManager.WifiLock? = null private var wakeLock: PowerManager.WakeLock? = null @@ -70,7 +70,7 @@ class RecommendationSearchHelper(val context: Context) { } private suspend fun beginSearch(mangaList: List) { - val flags = prefs.recommendationSearchFlags().get() + val flags = preferences.recommendationSearchFlags().get() val libraryManga = getLibraryManga.await() val tracks = getTracks.await() @@ -192,7 +192,7 @@ class RecommendationSearchHelper(val context: Context) { libraryManga: List, tracks: List, ): List { - val flags = prefs.recommendationSearchFlags().get() + val flags = preferences.recommendationSearchFlags().get() if (!SearchFlags.hasHideLibraryResults(flags)) { return this diff --git a/app/src/main/java/exh/uconfig/EHConfigurator.kt b/app/src/main/java/exh/uconfig/EHConfigurator.kt index b0f133018..4d0dde552 100644 --- a/app/src/main/java/exh/uconfig/EHConfigurator.kt +++ b/app/src/main/java/exh/uconfig/EHConfigurator.kt @@ -8,19 +8,19 @@ import exh.log.maybeInjectEHLogger import exh.log.xLogD import exh.source.EH_SOURCE_ID import exh.source.EXH_SOURCE_ID +import exh.source.ExhPreferences import okhttp3.FormBody import okhttp3.OkHttpClient import okhttp3.Request import tachiyomi.core.common.i18n.stringResource -import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.source.service.SourceManager import tachiyomi.i18n.sy.SYMR import uy.kohesive.injekt.injectLazy import java.util.Locale class EHConfigurator(val context: Context) { - private val prefs: UnsortedPreferences by injectLazy() - private val sources: SourceManager by injectLazy() + private val exhPreferences: ExhPreferences by injectLazy() + private val sourceManager: SourceManager by injectLazy() private val configuratorClient = OkHttpClient.Builder() .maybeInjectEHLogger() @@ -52,8 +52,8 @@ class EHConfigurator(val context: Context) { private val EHentai.uconfigUrl get() = baseUrl + UCONFIG_URL suspend fun configureAll() { - val ehSource = sources.get(EH_SOURCE_ID) as EHentai - val exhSource = sources.get(EXH_SOURCE_ID) as EHentai + val ehSource = sourceManager.get(EH_SOURCE_ID) as EHentai + val exhSource = sourceManager.get(EXH_SOURCE_ID) as EHentai // Get hath perks val perksPage = configuratorClient.newCall( @@ -146,13 +146,13 @@ class EHConfigurator(val context: Context) { }?.removePrefix("hath_perks=")?.substringBefore(';') if (keyCookie != null) { - prefs.exhSettingsKey().set(keyCookie) + exhPreferences.exhSettingsKey().set(keyCookie) } if (sessionCookie != null) { - prefs.exhSessionCookie().set(sessionCookie) + exhPreferences.exhSessionCookie().set(sessionCookie) } if (hathPerksCookie != null) { - prefs.exhHathPerksCookies().set(hathPerksCookie) + exhPreferences.exhHathPerksCookies().set(hathPerksCookie) } } diff --git a/app/src/main/java/exh/uconfig/EhUConfigBuilder.kt b/app/src/main/java/exh/uconfig/EhUConfigBuilder.kt index 1941be80a..3ccba1d03 100644 --- a/app/src/main/java/exh/uconfig/EhUConfigBuilder.kt +++ b/app/src/main/java/exh/uconfig/EhUConfigBuilder.kt @@ -1,18 +1,18 @@ package exh.uconfig +import exh.source.ExhPreferences import okhttp3.FormBody -import tachiyomi.domain.UnsortedPreferences import uy.kohesive.injekt.injectLazy import java.util.Locale class EhUConfigBuilder { - private val preferences: UnsortedPreferences by injectLazy() + private val exhPreferences: ExhPreferences by injectLazy() fun build(hathPerks: EHHathPerksResponse): FormBody { val configItems = mutableListOf() configItems += when ( - preferences.imageQuality() + exhPreferences.imageQuality() .get() .lowercase(Locale.getDefault()) ) { @@ -25,19 +25,19 @@ class EhUConfigBuilder { else -> Entry.ImageSize.AUTO } - configItems += when (preferences.useHentaiAtHome().get()) { + configItems += when (exhPreferences.useHentaiAtHome().get()) { 2 -> Entry.UseHentaiAtHome.NO 1 -> Entry.UseHentaiAtHome.DEFAULTONLY else -> Entry.UseHentaiAtHome.ANY } - configItems += if (preferences.useJapaneseTitle().get()) { + configItems += if (exhPreferences.useJapaneseTitle().get()) { Entry.TitleDisplayLanguage.JAPANESE } else { Entry.TitleDisplayLanguage.DEFAULT } - configItems += if (preferences.exhUseOriginalImages().get()) { + configItems += if (exhPreferences.exhUseOriginalImages().get()) { Entry.UseOriginalImages.YES } else { Entry.UseOriginalImages.NO @@ -61,13 +61,13 @@ class EhUConfigBuilder { configItems += Entry.UseMPV() configItems += Entry.ShowPopularRightNowPane() - configItems += Entry.TagFilteringThreshold(preferences.ehTagFilterValue().get()) - configItems += Entry.TagWatchingThreshold(preferences.ehTagWatchingValue().get()) + configItems += Entry.TagFilteringThreshold(exhPreferences.ehTagFilterValue().get()) + configItems += Entry.TagWatchingThreshold(exhPreferences.ehTagWatchingValue().get()) - configItems += Entry.LanguageSystem().getLanguages(preferences.exhSettingsLanguages().get().split("\n")) + configItems += Entry.LanguageSystem().getLanguages(exhPreferences.exhSettingsLanguages().get().split("\n")) configItems += Entry.Categories().categoryConfigs( - preferences.exhEnabledCategories().get().split(",").map { + exhPreferences.exhEnabledCategories().get().split(",").map { it.toBoolean() }, ) diff --git a/app/src/main/java/exh/ui/batchadd/BatchAddScreenModel.kt b/app/src/main/java/exh/ui/batchadd/BatchAddScreenModel.kt index fd8fd8d4f..84d9e3f99 100644 --- a/app/src/main/java/exh/ui/batchadd/BatchAddScreenModel.kt +++ b/app/src/main/java/exh/ui/batchadd/BatchAddScreenModel.kt @@ -6,6 +6,7 @@ import cafe.adriel.voyager.core.model.screenModelScope import exh.GalleryAddEvent import exh.GalleryAdder import exh.log.xLogE +import exh.source.ExhPreferences import exh.util.trimOrNull import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.Dispatchers @@ -14,13 +15,12 @@ import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import tachiyomi.core.common.i18n.stringResource import tachiyomi.core.common.util.lang.withIOContext -import tachiyomi.domain.UnsortedPreferences import tachiyomi.i18n.sy.SYMR import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get class BatchAddScreenModel( - private val unsortedPreferences: UnsortedPreferences = Injekt.get(), + private val exhPreferences: ExhPreferences = Injekt.get(), ) : StateScreenModel(BatchAddState()) { private val galleryAdder by lazy { GalleryAdder() } @@ -37,7 +37,7 @@ class BatchAddScreenModel( private fun addGalleries(context: Context, galleries: String) { val splitGalleries = if (ehVisitedRegex.containsMatchIn(galleries)) { - val url = if (unsortedPreferences.enableExhentai().get()) { + val url = if (exhPreferences.enableExhentai().get()) { "https://exhentai.org/g/" } else { "https://e-hentai.org/g/" diff --git a/app/src/main/java/exh/ui/login/EhLoginActivity.kt b/app/src/main/java/exh/ui/login/EhLoginActivity.kt index 92fd359a1..ed793c441 100644 --- a/app/src/main/java/exh/ui/login/EhLoginActivity.kt +++ b/app/src/main/java/exh/ui/login/EhLoginActivity.kt @@ -21,7 +21,7 @@ import eu.kanade.tachiyomi.util.system.WebViewUtil import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.util.view.setComposeContent import exh.log.xLogD -import tachiyomi.domain.UnsortedPreferences +import exh.source.ExhPreferences import tachiyomi.i18n.MR import uy.kohesive.injekt.injectLazy import java.net.HttpCookie @@ -31,7 +31,7 @@ import java.util.Locale * LoginController */ class EhLoginActivity : BaseActivity() { - private val preferenceManager: UnsortedPreferences by injectLazy() + private val exhPreferences: ExhPreferences by injectLazy() override fun onCreate(savedInstanceState: Bundle?) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { @@ -106,7 +106,7 @@ class EhLoginActivity : BaseActivity() { } else if (parsedUrl.host.equals("exhentai.org", ignoreCase = true)) { // At ExHentai, check that everything worked out... if (applyExHentaiCookies(url, customIgneous)) { - preferenceManager.enableExhentai().set(true) + exhPreferences.enableExhentai().set(true) setResult(RESULT_OK) finish() } @@ -155,9 +155,9 @@ class EhLoginActivity : BaseActivity() { if (memberId == null || passHash == null || igneous == null) return false // Update prefs - preferenceManager.memberIdVal().set(memberId!!) - preferenceManager.passHashVal().set(passHash!!) - preferenceManager.igneousVal().set(igneous!!) + exhPreferences.memberIdVal().set(memberId!!) + exhPreferences.passHashVal().set(passHash!!) + exhPreferences.igneousVal().set(igneous!!) return true } diff --git a/app/src/main/res/drawable/list_item_selector_background.xml b/app/src/main/res/drawable/list_item_selector_background.xml deleted file mode 100644 index 26682873a..000000000 --- a/app/src/main/res/drawable/list_item_selector_background.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/migration_source_item.xml b/app/src/main/res/layout/migration_source_item.xml index ca9244b32..12fede94a 100644 --- a/app/src/main/res/layout/migration_source_item.xml +++ b/app/src/main/res/layout/migration_source_item.xml @@ -1,46 +1,52 @@ - + app:cardBackgroundColor="?android:attr/colorBackground" + app:cardElevation="0dp" + app:cardForegroundColor="@color/draggable_card_foreground"> + - + - + - + - + + diff --git a/data/src/main/java/tachiyomi/data/history/HistoryRepositoryImpl.kt b/data/src/main/java/tachiyomi/data/history/HistoryRepositoryImpl.kt index 25e8c8763..4475f0542 100644 --- a/data/src/main/java/tachiyomi/data/history/HistoryRepositoryImpl.kt +++ b/data/src/main/java/tachiyomi/data/history/HistoryRepositoryImpl.kt @@ -89,9 +89,5 @@ class HistoryRepositoryImpl( logcat(LogPriority.ERROR, throwable = e) } } - - override suspend fun getByMangaId(mangaId: Long): List { - return handler.awaitList { historyQueries.getHistoryByMangaId(mangaId, HistoryMapper::mapHistory) } - } // SY <-- } diff --git a/domain/src/main/java/tachiyomi/domain/UnsortedPreferences.kt b/domain/src/main/java/exh/source/ExhPreferences.kt similarity index 60% rename from domain/src/main/java/tachiyomi/domain/UnsortedPreferences.kt rename to domain/src/main/java/exh/source/ExhPreferences.kt index a0ed47189..1e6086d7f 100644 --- a/domain/src/main/java/tachiyomi/domain/UnsortedPreferences.kt +++ b/domain/src/main/java/exh/source/ExhPreferences.kt @@ -1,35 +1,16 @@ -package tachiyomi.domain +package exh.source import tachiyomi.core.common.preference.Preference import tachiyomi.core.common.preference.PreferenceStore -class UnsortedPreferences( +class ExhPreferences( private val preferenceStore: PreferenceStore, ) { // SY --> - - fun migrateFlags() = preferenceStore.getInt("migrate_flags", Int.MAX_VALUE) - - fun defaultMangaOrder() = preferenceStore.getString("default_manga_order", "") - - fun migrationSources() = preferenceStore.getString("migrate_sources", "") - - fun smartMigration() = preferenceStore.getBoolean("smart_migrate", false) - - fun useSourceWithMost() = preferenceStore.getBoolean("use_source_with_most", false) - - fun skipPreMigration() = preferenceStore.getBoolean(Preference.appStateKey("skip_pre_migration"), false) - - fun hideNotFoundMigration() = preferenceStore.getBoolean("hide_not_found_migration", false) - - fun showOnlyUpdatesMigration() = preferenceStore.getBoolean("show_only_updates_migration", false) - - fun recommendationSearchFlags() = preferenceStore.getInt("rec_search_flags", Int.MAX_VALUE) - fun isHentaiEnabled() = preferenceStore.getBoolean("eh_is_hentai_enabled", true) - fun enableExhentai() = preferenceStore.getBoolean(Preference.privateKey("enable_exhentai"), false) + fun enableExhentai() = preferenceStore.getBoolean(Preference.Companion.privateKey("enable_exhentai"), false) fun imageQuality() = preferenceStore.getString("ehentai_quality", "auto") @@ -44,15 +25,15 @@ class UnsortedPreferences( fun ehTagWatchingValue() = preferenceStore.getInt("eh_tag_watching_value", 0) // EH Cookies - fun memberIdVal() = preferenceStore.getString(Preference.privateKey("eh_ipb_member_id"), "") + fun memberIdVal() = preferenceStore.getString(Preference.Companion.privateKey("eh_ipb_member_id"), "") - fun passHashVal() = preferenceStore.getString(Preference.privateKey("eh_ipb_pass_hash"), "") - fun igneousVal() = preferenceStore.getString(Preference.privateKey("eh_igneous"), "") - fun ehSettingsProfile() = preferenceStore.getInt(Preference.privateKey("eh_ehSettingsProfile"), -1) - fun exhSettingsProfile() = preferenceStore.getInt(Preference.privateKey("eh_exhSettingsProfile"), -1) - fun exhSettingsKey() = preferenceStore.getString(Preference.privateKey("eh_settingsKey"), "") - fun exhSessionCookie() = preferenceStore.getString(Preference.privateKey("eh_sessionCookie"), "") - fun exhHathPerksCookies() = preferenceStore.getString(Preference.privateKey("eh_hathPerksCookie"), "") + fun passHashVal() = preferenceStore.getString(Preference.Companion.privateKey("eh_ipb_pass_hash"), "") + fun igneousVal() = preferenceStore.getString(Preference.Companion.privateKey("eh_igneous"), "") + fun ehSettingsProfile() = preferenceStore.getInt(Preference.Companion.privateKey("eh_ehSettingsProfile"), -1) + fun exhSettingsProfile() = preferenceStore.getInt(Preference.Companion.privateKey("eh_exhSettingsProfile"), -1) + fun exhSettingsKey() = preferenceStore.getString(Preference.Companion.privateKey("eh_settingsKey"), "") + fun exhSessionCookie() = preferenceStore.getString(Preference.Companion.privateKey("eh_sessionCookie"), "") + fun exhHathPerksCookies() = preferenceStore.getString(Preference.Companion.privateKey("eh_hathPerksCookie"), "") fun exhShowSyncIntro() = preferenceStore.getBoolean("eh_show_sync_intro", true) @@ -68,7 +49,7 @@ class UnsortedPreferences( fun exhAutoUpdateRequirements() = preferenceStore.getStringSet("eh_auto_update_restrictions", emptySet()) - fun exhAutoUpdateStats() = preferenceStore.getString(Preference.appStateKey("eh_auto_update_stats"), "") + fun exhAutoUpdateStats() = preferenceStore.getString(Preference.Companion.appStateKey("eh_auto_update_stats"), "") fun exhWatchedListDefaultState() = preferenceStore.getBoolean("eh_watched_list_default_state", false) @@ -86,13 +67,4 @@ class UnsortedPreferences( ) fun enhancedEHentaiView() = preferenceStore.getBoolean("enhanced_e_hentai_view", true) - - fun preferredMangaDexId() = preferenceStore.getString("preferred_mangaDex_id", "0") - - fun mangadexSyncToLibraryIndexes() = preferenceStore.getStringSet( - "pref_mangadex_sync_to_library_indexes", - emptySet(), - ) - - fun allowLocalSourceHiddenFolders() = preferenceStore.getBoolean("allow_local_source_hidden_folders", false) } diff --git a/domain/src/main/java/tachiyomi/domain/history/interactor/GetHistoryByMangaId.kt b/domain/src/main/java/tachiyomi/domain/history/interactor/GetHistoryByMangaId.kt deleted file mode 100644 index b28427ee5..000000000 --- a/domain/src/main/java/tachiyomi/domain/history/interactor/GetHistoryByMangaId.kt +++ /dev/null @@ -1,13 +0,0 @@ -package tachiyomi.domain.history.interactor - -import tachiyomi.domain.history.model.History -import tachiyomi.domain.history.repository.HistoryRepository - -class GetHistoryByMangaId( - private val repository: HistoryRepository, -) { - - suspend fun await(mangaId: Long): List { - return repository.getByMangaId(mangaId) - } -} diff --git a/domain/src/main/java/tachiyomi/domain/history/repository/HistoryRepository.kt b/domain/src/main/java/tachiyomi/domain/history/repository/HistoryRepository.kt index c8a932a7d..0c5a7366f 100644 --- a/domain/src/main/java/tachiyomi/domain/history/repository/HistoryRepository.kt +++ b/domain/src/main/java/tachiyomi/domain/history/repository/HistoryRepository.kt @@ -25,7 +25,5 @@ interface HistoryRepository { // SY --> suspend fun upsertHistory(historyUpdates: List) - - suspend fun getByMangaId(mangaId: Long): List // SY <-- }