From 9de2c1eb0e9f9160e24089371008aaba81db985f Mon Sep 17 00:00:00 2001 From: Riztard <16263232+Riztard@users.noreply.github.com> Date: Wed, 7 Feb 2024 17:19:02 +0700 Subject: [PATCH 1/5] Feature: mark read dupes --- .../more/settings/screen/SettingsReaderScreen.kt | 4 ++++ .../java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt | 7 +++++++ .../tachiyomi/ui/reader/setting/ReaderPreferences.kt | 2 ++ i18n/src/commonMain/resources/MR/base/strings.xml | 1 + 4 files changed, 14 insertions(+) diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt index 04af7edc77ed..f37a79e62d22 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt @@ -178,6 +178,10 @@ object SettingsReaderScreen : SearchableSettings { pref = readerPreferences.skipDupe(), title = stringResource(MR.strings.pref_skip_dupe_chapters), ), + Preference.PreferenceItem.SwitchPreference( + pref = readerPreferences.markReadDupe(), + title = stringResource(MR.strings.pref_mark_read_dupe_chapters), + ), Preference.PreferenceItem.SwitchPreference( pref = readerPreferences.alwaysShowChapterTransition(), title = stringResource(MR.strings.pref_always_show_chapter_transition), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt index f5a3367b8799..7886b2ea7696 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt @@ -9,6 +9,7 @@ import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import eu.kanade.domain.base.BasePreferences +import eu.kanade.domain.chapter.interactor.SetReadStatus import eu.kanade.domain.chapter.model.toDbChapter import eu.kanade.domain.manga.interactor.SetMangaViewerFlags import eu.kanade.domain.manga.model.readerOrientation @@ -129,6 +130,7 @@ class ReaderViewModel @JvmOverloads constructor( private val getMergedMangaById: GetMergedMangaById = Injekt.get(), private val getMergedReferencesById: GetMergedReferencesById = Injekt.get(), private val getMergedChaptersByMangaId: GetMergedChaptersByMangaId = Injekt.get(), + private val setReadStatus: SetReadStatus = Injekt.get() // SY <-- ) : ViewModel() { @@ -691,6 +693,11 @@ class ReaderViewModel @JvmOverloads constructor( // SY <-- readerChapter.chapter.read = true // SY --> + if (readerPreferences.markReadDupe().get()) { + getChaptersByMangaId.await(manga!!.id).sortedByDescending { it.sourceOrder } + .filter { it.chapterNumber >= 0 && !it.read && it.chapterNumber.toFloat() == readerChapter.chapter.chapter_number } + .also { setReadStatus.await(true, *it.toTypedArray()) } + } if (manga?.isEhBasedManga() == true) { viewModelScope.launchNonCancellable { val chapterUpdates = chapterList diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt index 093b13172f74..5b459972b508 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt @@ -78,6 +78,8 @@ class ReaderPreferences( fun skipDupe() = preferenceStore.getBoolean("skip_dupe", false) + fun markReadDupe() = preferenceStore.getBoolean("mark_read_dupe", false) + // endregion // region Split two page spread diff --git a/i18n/src/commonMain/resources/MR/base/strings.xml b/i18n/src/commonMain/resources/MR/base/strings.xml index 92075a425781..eeec480a6fda 100755 --- a/i18n/src/commonMain/resources/MR/base/strings.xml +++ b/i18n/src/commonMain/resources/MR/base/strings.xml @@ -381,6 +381,7 @@ Skip chapters marked read Skip filtered chapters Skip duplicate chapters + Mark as read duplicate chapters after reading Navigation Volume keys Invert volume keys From 2be526ca6d7ff854761e9c893ac993787cc631dd Mon Sep 17 00:00:00 2001 From: Riztard <16263232+Riztard@users.noreply.github.com> Date: Sun, 18 Feb 2024 07:33:45 +0700 Subject: [PATCH 2/5] dupe chapter reading add summary --- .../presentation/more/settings/screen/SettingsReaderScreen.kt | 1 + i18n/src/commonMain/resources/MR/base/strings.xml | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt index f37a79e62d22..7422c3f50799 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt @@ -181,6 +181,7 @@ object SettingsReaderScreen : SearchableSettings { Preference.PreferenceItem.SwitchPreference( pref = readerPreferences.markReadDupe(), title = stringResource(MR.strings.pref_mark_read_dupe_chapters), + subtitle = stringResource(MR.strings.pref_mark_read_dupe_chapters_summary), ), Preference.PreferenceItem.SwitchPreference( pref = readerPreferences.alwaysShowChapterTransition(), diff --git a/i18n/src/commonMain/resources/MR/base/strings.xml b/i18n/src/commonMain/resources/MR/base/strings.xml index eeec480a6fda..f26e4b84c68c 100755 --- a/i18n/src/commonMain/resources/MR/base/strings.xml +++ b/i18n/src/commonMain/resources/MR/base/strings.xml @@ -381,7 +381,8 @@ Skip chapters marked read Skip filtered chapters Skip duplicate chapters - Mark as read duplicate chapters after reading + Mark as read duplicate chapters + Also mark as read duplicate chapters after reading Navigation Volume keys Invert volume keys From 1f3897d6e1328b2a960d6b17a9172fc881b9b9b4 Mon Sep 17 00:00:00 2001 From: Riztard <16263232+Riztard@users.noreply.github.com> Date: Sun, 18 Feb 2024 07:40:19 +0700 Subject: [PATCH 3/5] Update ReaderViewModel.kt --- .../main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt index 7886b2ea7696..d6d1cbde8587 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt @@ -695,7 +695,7 @@ class ReaderViewModel @JvmOverloads constructor( // SY --> if (readerPreferences.markReadDupe().get()) { getChaptersByMangaId.await(manga!!.id).sortedByDescending { it.sourceOrder } - .filter { it.chapterNumber >= 0 && !it.read && it.chapterNumber.toFloat() == readerChapter.chapter.chapter_number } + .filter { it.read.not() && it.chapterNumber.toFloat() == readerChapter.chapter.chapter_number } .also { setReadStatus.await(true, *it.toTypedArray()) } } if (manga?.isEhBasedManga() == true) { From e244c6562afe6d0c1ac20bcbb2a755cb8b580bf6 Mon Sep 17 00:00:00 2001 From: jobobby04 Date: Sat, 2 Mar 2024 11:54:49 -0500 Subject: [PATCH 4/5] Update i18n/src/commonMain/resources/MR/base/strings.xml --- i18n/src/commonMain/resources/MR/base/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/src/commonMain/resources/MR/base/strings.xml b/i18n/src/commonMain/resources/MR/base/strings.xml index f26e4b84c68c..6ea8bd19dc8a 100755 --- a/i18n/src/commonMain/resources/MR/base/strings.xml +++ b/i18n/src/commonMain/resources/MR/base/strings.xml @@ -381,8 +381,8 @@ Skip chapters marked read Skip filtered chapters Skip duplicate chapters - Mark as read duplicate chapters - Also mark as read duplicate chapters after reading + Mark duplicate chapters as read + Mark duplicate chapters as read after reading Navigation Volume keys Invert volume keys From 806922504ca7f131edbe6b5174ab7413638b72e0 Mon Sep 17 00:00:00 2001 From: jobobby04 Date: Sat, 2 Mar 2024 11:54:56 -0500 Subject: [PATCH 5/5] Update app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt --- .../java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt index d6d1cbde8587..a58c6f61e2a2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt @@ -695,7 +695,9 @@ class ReaderViewModel @JvmOverloads constructor( // SY --> if (readerPreferences.markReadDupe().get()) { getChaptersByMangaId.await(manga!!.id).sortedByDescending { it.sourceOrder } - .filter { it.read.not() && it.chapterNumber.toFloat() == readerChapter.chapter.chapter_number } + .filter { + !it.read && it.chapterNumber > 0.0 && it.chapterNumber.toFloat() == readerChapter.chapter.chapter_number + } .also { setReadStatus.await(true, *it.toTypedArray()) } } if (manga?.isEhBasedManga() == true) {