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(),
|
||||
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(
|
||||
pref = readerPreferences.alwaysShowChapterTransition(),
|
||||
title = stringResource(MR.strings.pref_always_show_chapter_transition),
|
||||
|
@ -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,13 @@ class ReaderViewModel @JvmOverloads constructor(
|
||||
// SY <--
|
||||
readerChapter.chapter.read = true
|
||||
// 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) {
|
||||
viewModelScope.launchNonCancellable {
|
||||
val chapterUpdates = chapterList
|
||||
|
@ -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
|
||||
|
@ -384,6 +384,8 @@
|
||||
<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_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_read_with_volume_keys">Volume keys</string>
|
||||
<string name="pref_read_with_volume_keys_inverted">Invert volume keys</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user