feat(manga-tracking): Allow auto open tracking dialog when adding to library (komikku-app/anikku#59)
* feat(manga-tracking): Allow auto open tracking dialog when adding to library * Prevent tracking dialog shows up overwrite change-category dialog * Refactoring (cherry picked from commit e82af25e198931d04fc2f75f663017fabced904c)
This commit is contained in:
parent
d0823ef3f6
commit
737bec70f0
5 changed files with 26 additions and 3 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -93,7 +93,6 @@ object SettingsTrackingScreen : SearchableSettings {
|
|||
val trackPreferences = remember { Injekt.get<TrackPreferences>() }
|
||||
val trackerManager = remember { Injekt.get<TrackerManager>() }
|
||||
val sourceManager = remember { Injekt.get<SourceManager>() }
|
||||
val autoTrackStatePref = trackPreferences.autoUpdateTrackOnMarkRead()
|
||||
|
||||
var dialog by remember { mutableStateOf<Any?>(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),
|
||||
|
|
|
|||
|
|
@ -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 -> {
|
||||
|
|
|
|||
|
|
@ -269,6 +269,11 @@ class MangaScreenModel(
|
|||
private val selectedPositions: Array<Int> = arrayOf(-1, -1) // first and last selected index in list
|
||||
private val selectedChapterIds: HashSet<Long> = 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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@
|
|||
<!-- Tracking section -->
|
||||
<string name="pref_auto_sync_progress_from_trackers">Auto sync progress from Trackers</string>
|
||||
<string name="sync_progress_from_trackers_up_to_chapter">Sync progress from Trackers up to chapter %d</string>
|
||||
<string name="pref_track_on_add_library">Open track menu on adding to library</string>
|
||||
<!-- Sync section -->
|
||||
<string name="pref_show_restoring_progress_banner">Show restoring progress banner</string>
|
||||
<string name="pref_show_syncing_progress_banner">Show syncing progress banner</string>
|
||||
|
|
|
|||
Loading…
Reference in a new issue