diff --git a/app/src/main/java/eu/kanade/domain/track/service/TrackPreferences.kt b/app/src/main/java/eu/kanade/domain/track/service/TrackPreferences.kt index ab000a9ea..e82d3da11 100644 --- a/app/src/main/java/eu/kanade/domain/track/service/TrackPreferences.kt +++ b/app/src/main/java/eu/kanade/domain/track/service/TrackPreferences.kt @@ -35,4 +35,6 @@ class TrackPreferences( fun anilistScoreType() = preferenceStore.getString("anilist_score_type", Anilist.POINT_10) fun autoUpdateTrack() = preferenceStore.getBoolean("pref_auto_update_manga_sync_key", true) + + fun autoUpdateTrackOnMarkRead() = preferenceStore.getBoolean("pref_auto_update_manga_on_mark_read", true) } diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt index 021f0ceb2..cec87196a 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt @@ -125,6 +125,10 @@ object SettingsTrackingScreen : SearchableSettings { pref = trackPreferences.autoUpdateTrack(), title = stringResource(MR.strings.pref_auto_update_manga_sync), ), + Preference.PreferenceItem.SwitchPreference( + pref = trackPreferences.autoUpdateTrackOnMarkRead(), + title = stringResource(MR.strings.pref_auto_update_manga_on_mark_read), + ), Preference.PreferenceGroup( title = stringResource(MR.strings.services), preferenceItems = persistentListOf( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt index e8693334a..5dde13f86 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt @@ -30,6 +30,7 @@ import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.domain.track.interactor.AddTracks import eu.kanade.domain.track.interactor.TrackChapter import eu.kanade.domain.track.model.toDomainTrack +import eu.kanade.domain.track.service.TrackPreferences import eu.kanade.domain.ui.UiPreferences import eu.kanade.presentation.manga.DownloadAction import eu.kanade.presentation.manga.components.ChapterDownloadAction @@ -48,6 +49,7 @@ import eu.kanade.tachiyomi.source.online.all.MergedSource import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences import eu.kanade.tachiyomi.util.chapter.getNextUnread import eu.kanade.tachiyomi.util.removeCovers +import eu.kanade.tachiyomi.util.system.toast import exh.debug.DebugToggles import exh.eh.EHentaiUpdateHelper import exh.log.xLogD @@ -145,6 +147,7 @@ class MangaScreenModel( private val isFromSource: Boolean, val smartSearched: Boolean, private val libraryPreferences: LibraryPreferences = Injekt.get(), + private val trackPreferences: TrackPreferences = Injekt.get(), readerPreferences: ReaderPreferences = Injekt.get(), uiPreferences: UiPreferences = Injekt.get(), private val trackerManager: TrackerManager = Injekt.get(), @@ -1272,6 +1275,14 @@ class MangaScreenModel( if (!shouldPromptTrackingUpdate) return@launchIO + if (trackPreferences.autoUpdateTrackOnMarkRead().get()) { + trackChapter.await(context, mangaId, maxChapterNumber) + withUIContext { + context.toast(context.stringResource(MR.strings.trackers_updated_summary, maxChapterNumber.toInt())) + } + return@launchIO + } + val result = snackbarHostState.showSnackbar( message = context.stringResource(MR.strings.confirm_tracker_update, maxChapterNumber.toInt()), actionLabel = context.stringResource(MR.strings.action_ok), diff --git a/i18n/src/commonMain/moko-resources/base/strings.xml b/i18n/src/commonMain/moko-resources/base/strings.xml index b73500812..7d985bab9 100755 --- a/i18n/src/commonMain/moko-resources/base/strings.xml +++ b/i18n/src/commonMain/moko-resources/base/strings.xml @@ -509,6 +509,7 @@ Tracking guide Update progress after reading + Update progress when marked as read Trackers One-way sync to update the chapter progress in external tracker services. Set up tracking for individual entries from their tracking button. Enhanced trackers @@ -739,6 +740,7 @@ Exclude scanlators No scanlators found Update trackers to chapter %d? + Trackers updated to chapter %d Tracking