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 01fda02e1..ea9d3802a 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 @@ -38,6 +38,8 @@ class TrackPreferences( fun autoUpdateTrack() = preferenceStore.getBoolean("pref_auto_update_manga_sync_key", true) + fun trackOnAddingToLibrary() = preferenceStore.getBoolean("track_on_adding_to_library", true) + fun autoUpdateTrackOnMarkRead() = preferenceStore.getEnum( "pref_auto_update_manga_on_mark_read", AutoTrackState.ALWAYS, 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 3808c6116..d2eb5dc79 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 @@ -93,7 +93,6 @@ object SettingsTrackingScreen : SearchableSettings { val trackPreferences = remember { Injekt.get() } val trackerManager = remember { Injekt.get() } val sourceManager = remember { Injekt.get() } - val autoTrackStatePref = trackPreferences.autoUpdateTrackOnMarkRead() var dialog by remember { mutableStateOf(null) } dialog?.run { @@ -130,6 +129,10 @@ object SettingsTrackingScreen : SearchableSettings { } return listOf( + Preference.PreferenceItem.SwitchPreference( + preference = trackPreferences.trackOnAddingToLibrary(), + title = stringResource(KMR.strings.pref_track_on_add_library), + ), Preference.PreferenceItem.SwitchPreference( preference = trackPreferences.autoUpdateTrack(), title = stringResource(MR.strings.pref_auto_update_manga_sync), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt index ac24ce95e..85e57dc42 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt @@ -467,7 +467,13 @@ class MangaScreen( var showScanlatorsDialog by remember { mutableStateOf(false) } - val onDismissRequest = { screenModel.dismissDialog() } + val onDismissRequest = { + screenModel.dismissDialog() + if (screenModel.autoOpenTrack && screenModel.showTrackDialogAfterCategorySelection) { + screenModel.showTrackDialogAfterCategorySelection = false + screenModel.showTrackDialog() + } + } when (val dialog = successState.dialog) { null -> {} is MangaScreenModel.Dialog.ChangeCategory -> { 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 c4ca561dc..2bfd01510 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 @@ -269,6 +269,11 @@ class MangaScreenModel( private val selectedPositions: Array = arrayOf(-1, -1) // first and last selected index in list private val selectedChapterIds: HashSet = HashSet() + internal var showTrackDialogAfterCategorySelection: Boolean = false + + internal val autoOpenTrack: Boolean + get() = successState?.hasLoggedInTrackers == true && trackPreferences.trackOnAddingToLibrary().get() + // EXH --> private val updateHelper: EHentaiUpdateHelper by injectLazy() @@ -850,11 +855,17 @@ class MangaScreenModel( } // Choose a category - else -> showChangeCategoryDialog() + else -> { + showTrackDialogAfterCategorySelection = true + showChangeCategoryDialog() + } } // Finally match with enhanced tracking when available addTracks.bindEnhancedTrackers(manga, state.source) + if (autoOpenTrack && !showTrackDialogAfterCategorySelection) { + showTrackDialog() + } } } } diff --git a/i18n-kmk/src/commonMain/moko-resources/base/strings.xml b/i18n-kmk/src/commonMain/moko-resources/base/strings.xml index caebdb3c1..1c07a31db 100644 --- a/i18n-kmk/src/commonMain/moko-resources/base/strings.xml +++ b/i18n-kmk/src/commonMain/moko-resources/base/strings.xml @@ -94,6 +94,7 @@ Auto sync progress from Trackers Sync progress from Trackers up to chapter %d + Open track menu on adding to library Show restoring progress banner Show syncing progress banner