mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Rework Auto Track on Mark as Read (#1365)
This commit is contained in:
		@@ -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)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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(
 | 
			
		||||
 
 | 
			
		||||
@@ -25,6 +25,7 @@ import eu.kanade.domain.manga.model.downloadedFilter
 | 
			
		||||
import eu.kanade.domain.manga.model.toSManga
 | 
			
		||||
import eu.kanade.domain.track.interactor.AddTracks
 | 
			
		||||
import eu.kanade.domain.track.interactor.TrackChapter
 | 
			
		||||
import eu.kanade.domain.track.service.TrackPreferences
 | 
			
		||||
import eu.kanade.presentation.manga.DownloadAction
 | 
			
		||||
import eu.kanade.presentation.manga.components.ChapterDownloadAction
 | 
			
		||||
import eu.kanade.presentation.util.formattedMessage
 | 
			
		||||
@@ -38,6 +39,7 @@ import eu.kanade.tachiyomi.source.Source
 | 
			
		||||
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 kotlinx.collections.immutable.ImmutableList
 | 
			
		||||
import kotlinx.collections.immutable.toImmutableList
 | 
			
		||||
import kotlinx.coroutines.async
 | 
			
		||||
@@ -92,6 +94,7 @@ class MangaScreenModel(
 | 
			
		||||
    private val mangaId: Long,
 | 
			
		||||
    private val isFromSource: Boolean,
 | 
			
		||||
    private val libraryPreferences: LibraryPreferences = Injekt.get(),
 | 
			
		||||
    private val trackPreferences: TrackPreferences = Injekt.get(),
 | 
			
		||||
    readerPreferences: ReaderPreferences = Injekt.get(),
 | 
			
		||||
    private val trackerManager: TrackerManager = Injekt.get(),
 | 
			
		||||
    private val trackChapter: TrackChapter = Injekt.get(),
 | 
			
		||||
@@ -739,6 +742,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),
 | 
			
		||||
 
 | 
			
		||||
@@ -509,6 +509,7 @@
 | 
			
		||||
    <!-- Tracking section -->
 | 
			
		||||
    <string name="tracking_guide">Tracking guide</string>
 | 
			
		||||
    <string name="pref_auto_update_manga_sync">Update progress after reading</string>
 | 
			
		||||
    <string name="pref_auto_update_manga_on_mark_read">Update progress when marked as read</string>
 | 
			
		||||
    <string name="services">Trackers</string>
 | 
			
		||||
    <string name="tracking_info">One-way sync to update the chapter progress in external tracker services. Set up tracking for individual entries from their tracking button.</string>
 | 
			
		||||
    <string name="enhanced_services">Enhanced trackers</string>
 | 
			
		||||
@@ -739,6 +740,7 @@
 | 
			
		||||
    <string name="exclude_scanlators">Exclude scanlators</string>
 | 
			
		||||
    <string name="no_scanlators_found">No scanlators found</string>
 | 
			
		||||
    <string name="confirm_tracker_update">Update trackers to chapter %d?</string>
 | 
			
		||||
    <string name="trackers_updated_summary">Trackers updated to chapter %d</string>
 | 
			
		||||
 | 
			
		||||
    <!-- Tracking Screen -->
 | 
			
		||||
    <string name="manga_tracking_tab">Tracking</string>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user