From f7202e67cc3452676f5e2532015741811cd505bb Mon Sep 17 00:00:00 2001 From: Tim Schneeberger Date: Mon, 12 Aug 2024 00:30:19 +0200 Subject: [PATCH] feat(migration): add option to only show entries with new chapters (#1238) --- .../advanced/design/MigrationBottomSheetDialog.kt | 2 ++ .../advanced/process/MigrationListScreenModel.kt | 7 +++++++ app/src/main/res/layout/migration_bottom_sheet.xml | 10 +++++++++- .../main/java/tachiyomi/domain/UnsortedPreferences.kt | 2 ++ i18n-sy/src/commonMain/moko-resources/base/strings.xml | 1 + 5 files changed, 21 insertions(+), 1 deletion(-) 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 2348ea620..57b368c51 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 @@ -74,6 +74,7 @@ class MigrationBottomSheetDialogState(private val onStartMigration: State<(extra binding.skipStep.isChecked = preferences.skipPreMigration().get() binding.HideNotFoundManga.isChecked = preferences.hideNotFoundMigration().get() + binding.OnlyShowUpdates.isChecked = preferences.showOnlyUpdatesMigration().get() binding.skipStep.setOnCheckedChangeListener { _, isChecked -> if (isChecked) { binding.root.context.toast( @@ -86,6 +87,7 @@ class MigrationBottomSheetDialogState(private val onStartMigration: State<(extra binding.migrateBtn.setOnClickListener { preferences.skipPreMigration().set(binding.skipStep.isChecked) preferences.hideNotFoundMigration().set(binding.HideNotFoundManga.isChecked) + preferences.showOnlyUpdatesMigration().set(binding.OnlyShowUpdates.isChecked) onStartMigration.value( if (binding.useSmartSearch.isChecked && binding.extraSearchParamText.text.isNotBlank()) { binding.extraSearchParamText.toString() 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 a44c95fd0..d263e9a0c 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 @@ -94,6 +94,7 @@ class MigrationListScreenModel( val manualMigrations = MutableStateFlow(0) val hideNotFound = preferences.hideNotFoundMigration().get() + val showOnlyUpdates = preferences.showOnlyUpdatesMigration().get() val navigateOut = MutableSharedFlow() @@ -313,6 +314,12 @@ class MigrationListScreenModel( if (result == null && hideNotFound) { removeManga(manga) } + if (result != null && showOnlyUpdates && + (getChapterInfo(result.id).latestChapter ?: 0.0) <= (manga.chapterInfo.latestChapter ?: 0.0) + ) { + removeManga(manga) + } + sourceFinished() } } diff --git a/app/src/main/res/layout/migration_bottom_sheet.xml b/app/src/main/res/layout/migration_bottom_sheet.xml index ef210131f..48208974b 100644 --- a/app/src/main/res/layout/migration_bottom_sheet.xml +++ b/app/src/main/res/layout/migration_bottom_sheet.xml @@ -207,11 +207,19 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="8dp" - android:layout_marginBottom="82dp" android:paddingHorizontal="16.dp" android:paddingVertical="16dp" android:text="@string/hide_not_found_entries" /> + diff --git a/domain/src/main/java/tachiyomi/domain/UnsortedPreferences.kt b/domain/src/main/java/tachiyomi/domain/UnsortedPreferences.kt index 50e97eb75..b425ad090 100644 --- a/domain/src/main/java/tachiyomi/domain/UnsortedPreferences.kt +++ b/domain/src/main/java/tachiyomi/domain/UnsortedPreferences.kt @@ -23,6 +23,8 @@ class UnsortedPreferences( fun hideNotFoundMigration() = preferenceStore.getBoolean("hide_not_found_migration", false) + fun showOnlyUpdatesMigration() = preferenceStore.getBoolean("show_only_updates_migration", false) + fun isHentaiEnabled() = preferenceStore.getBoolean("eh_is_hentai_enabled", true) fun enableExhentai() = preferenceStore.getBoolean(Preference.privateKey("enable_exhentai"), false) diff --git a/i18n-sy/src/commonMain/moko-resources/base/strings.xml b/i18n-sy/src/commonMain/moko-resources/base/strings.xml index 82ec61648..48231a8b5 100644 --- a/i18n-sy/src/commonMain/moko-resources/base/strings.xml +++ b/i18n-sy/src/commonMain/moko-resources/base/strings.xml @@ -464,6 +464,7 @@ Use first source with alternative Skip this step next time Hide not found entries + Only show entries with new chapters Search parameter (e.g. language:english) Latest: %1$s migrating to