Don't prompt to add to library multiple times
Fixes #8842 (cherry picked from commit 82ea643c7d2ee75acc7fc17e2b9d492b57fb7a42) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
This commit is contained in:
parent
acf51f4d34
commit
a55e27c657
@ -173,7 +173,7 @@ class MangaInfoScreenModel(
|
||||
val source: Source?
|
||||
get() = successState?.source
|
||||
|
||||
private val isFavoritedManga: Boolean
|
||||
private val isFavorited: Boolean
|
||||
get() = manga?.favorite ?: false
|
||||
|
||||
private val processedChapters: Sequence<ChapterItem>?
|
||||
@ -688,7 +688,7 @@ class MangaInfoScreenModel(
|
||||
coroutineScope.launchIO {
|
||||
val manga = state.manga
|
||||
|
||||
if (isFavoritedManga) {
|
||||
if (isFavorited) {
|
||||
// Remove from library
|
||||
if (updateManga.awaitUpdateFavorite(manga.id, false)) {
|
||||
// Remove covers and update last modified in db
|
||||
@ -1068,22 +1068,28 @@ class MangaInfoScreenModel(
|
||||
chapters: List<Chapter>,
|
||||
startNow: Boolean,
|
||||
) {
|
||||
val successState = successState ?: return
|
||||
|
||||
if (startNow) {
|
||||
val chapterId = chapters.singleOrNull()?.id ?: return
|
||||
downloadManager.startDownloadNow(chapterId)
|
||||
} else {
|
||||
downloadChapters(chapters)
|
||||
}
|
||||
if (!isFavoritedManga) {
|
||||
|
||||
if (!isFavorited && !successState.hasPromptedToAddBefore) {
|
||||
coroutineScope.launch {
|
||||
val result = snackbarHostState.showSnackbar(
|
||||
message = context.getString(R.string.snack_add_to_library),
|
||||
actionLabel = context.getString(R.string.action_add),
|
||||
withDismissAction = true,
|
||||
)
|
||||
if (result == SnackbarResult.ActionPerformed && !isFavoritedManga) {
|
||||
if (result == SnackbarResult.ActionPerformed && !isFavorited) {
|
||||
toggleFavorite()
|
||||
}
|
||||
updateSuccessState { successState ->
|
||||
successState.copy(hasPromptedToAddBefore = true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1585,6 +1591,7 @@ sealed class MangaScreenState {
|
||||
val trackItems: List<TrackItem> = emptyList(),
|
||||
val isRefreshingData: Boolean = false,
|
||||
val dialog: MangaInfoScreenModel.Dialog? = null,
|
||||
val hasPromptedToAddBefore: Boolean = false,
|
||||
// SY -->
|
||||
val meta: RaisedSearchMetadata?,
|
||||
val mergedData: MergedMangaData?,
|
||||
|
Loading…
x
Reference in New Issue
Block a user