add mark read dupes on reading (#1079)
* Feature: mark read dupes * dupe chapter reading add summary * Update ReaderViewModel.kt * Update i18n/src/commonMain/resources/MR/base/strings.xml * Update app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt --------- Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
This commit is contained in:
parent
d8082de1db
commit
6f3f109723
@ -178,6 +178,11 @@ object SettingsReaderScreen : SearchableSettings {
|
|||||||
pref = readerPreferences.skipDupe(),
|
pref = readerPreferences.skipDupe(),
|
||||||
title = stringResource(MR.strings.pref_skip_dupe_chapters),
|
title = stringResource(MR.strings.pref_skip_dupe_chapters),
|
||||||
),
|
),
|
||||||
|
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(
|
Preference.PreferenceItem.SwitchPreference(
|
||||||
pref = readerPreferences.alwaysShowChapterTransition(),
|
pref = readerPreferences.alwaysShowChapterTransition(),
|
||||||
title = stringResource(MR.strings.pref_always_show_chapter_transition),
|
title = stringResource(MR.strings.pref_always_show_chapter_transition),
|
||||||
|
@ -9,6 +9,7 @@ import androidx.lifecycle.SavedStateHandle
|
|||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import eu.kanade.domain.base.BasePreferences
|
import eu.kanade.domain.base.BasePreferences
|
||||||
|
import eu.kanade.domain.chapter.interactor.SetReadStatus
|
||||||
import eu.kanade.domain.chapter.model.toDbChapter
|
import eu.kanade.domain.chapter.model.toDbChapter
|
||||||
import eu.kanade.domain.manga.interactor.SetMangaViewerFlags
|
import eu.kanade.domain.manga.interactor.SetMangaViewerFlags
|
||||||
import eu.kanade.domain.manga.model.readerOrientation
|
import eu.kanade.domain.manga.model.readerOrientation
|
||||||
@ -129,6 +130,7 @@ class ReaderViewModel @JvmOverloads constructor(
|
|||||||
private val getMergedMangaById: GetMergedMangaById = Injekt.get(),
|
private val getMergedMangaById: GetMergedMangaById = Injekt.get(),
|
||||||
private val getMergedReferencesById: GetMergedReferencesById = Injekt.get(),
|
private val getMergedReferencesById: GetMergedReferencesById = Injekt.get(),
|
||||||
private val getMergedChaptersByMangaId: GetMergedChaptersByMangaId = Injekt.get(),
|
private val getMergedChaptersByMangaId: GetMergedChaptersByMangaId = Injekt.get(),
|
||||||
|
private val setReadStatus: SetReadStatus = Injekt.get()
|
||||||
// SY <--
|
// SY <--
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
@ -691,6 +693,13 @@ class ReaderViewModel @JvmOverloads constructor(
|
|||||||
// SY <--
|
// SY <--
|
||||||
readerChapter.chapter.read = true
|
readerChapter.chapter.read = true
|
||||||
// SY -->
|
// SY -->
|
||||||
|
if (readerPreferences.markReadDupe().get()) {
|
||||||
|
getChaptersByMangaId.await(manga!!.id).sortedByDescending { it.sourceOrder }
|
||||||
|
.filter {
|
||||||
|
!it.read && it.chapterNumber > 0.0 && it.chapterNumber.toFloat() == readerChapter.chapter.chapter_number
|
||||||
|
}
|
||||||
|
.also { setReadStatus.await(true, *it.toTypedArray()) }
|
||||||
|
}
|
||||||
if (manga?.isEhBasedManga() == true) {
|
if (manga?.isEhBasedManga() == true) {
|
||||||
viewModelScope.launchNonCancellable {
|
viewModelScope.launchNonCancellable {
|
||||||
val chapterUpdates = chapterList
|
val chapterUpdates = chapterList
|
||||||
|
@ -78,6 +78,8 @@ class ReaderPreferences(
|
|||||||
|
|
||||||
fun skipDupe() = preferenceStore.getBoolean("skip_dupe", false)
|
fun skipDupe() = preferenceStore.getBoolean("skip_dupe", false)
|
||||||
|
|
||||||
|
fun markReadDupe() = preferenceStore.getBoolean("mark_read_dupe", false)
|
||||||
|
|
||||||
// endregion
|
// endregion
|
||||||
|
|
||||||
// region Split two page spread
|
// region Split two page spread
|
||||||
|
@ -384,6 +384,8 @@
|
|||||||
<string name="pref_skip_read_chapters">Skip chapters marked read</string>
|
<string name="pref_skip_read_chapters">Skip chapters marked read</string>
|
||||||
<string name="pref_skip_filtered_chapters">Skip filtered chapters</string>
|
<string name="pref_skip_filtered_chapters">Skip filtered chapters</string>
|
||||||
<string name="pref_skip_dupe_chapters">Skip duplicate chapters</string>
|
<string name="pref_skip_dupe_chapters">Skip duplicate chapters</string>
|
||||||
|
<string name="pref_mark_read_dupe_chapters">Mark duplicate chapters as read</string>
|
||||||
|
<string name="pref_mark_read_dupe_chapters_summary">Mark duplicate chapters as read after reading</string>
|
||||||
<string name="pref_reader_navigation">Navigation</string>
|
<string name="pref_reader_navigation">Navigation</string>
|
||||||
<string name="pref_read_with_volume_keys">Volume keys</string>
|
<string name="pref_read_with_volume_keys">Volume keys</string>
|
||||||
<string name="pref_read_with_volume_keys_inverted">Invert volume keys</string>
|
<string name="pref_read_with_volume_keys_inverted">Invert volume keys</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user