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) {