mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-22 02:41:52 +01:00
parent
741c10e0b9
commit
82ea643c7d
@ -109,7 +109,7 @@ class MangaInfoScreenModel(
|
|||||||
val source: Source?
|
val source: Source?
|
||||||
get() = successState?.source
|
get() = successState?.source
|
||||||
|
|
||||||
private val isFavoritedManga: Boolean
|
private val isFavorited: Boolean
|
||||||
get() = manga?.favorite ?: false
|
get() = manga?.favorite ?: false
|
||||||
|
|
||||||
private val processedChapters: Sequence<ChapterItem>?
|
private val processedChapters: Sequence<ChapterItem>?
|
||||||
@ -258,7 +258,7 @@ class MangaInfoScreenModel(
|
|||||||
coroutineScope.launchIO {
|
coroutineScope.launchIO {
|
||||||
val manga = state.manga
|
val manga = state.manga
|
||||||
|
|
||||||
if (isFavoritedManga) {
|
if (isFavorited) {
|
||||||
// Remove from library
|
// Remove from library
|
||||||
if (updateManga.awaitUpdateFavorite(manga.id, false)) {
|
if (updateManga.awaitUpdateFavorite(manga.id, false)) {
|
||||||
// Remove covers and update last modified in db
|
// Remove covers and update last modified in db
|
||||||
@ -577,22 +577,28 @@ class MangaInfoScreenModel(
|
|||||||
chapters: List<Chapter>,
|
chapters: List<Chapter>,
|
||||||
startNow: Boolean,
|
startNow: Boolean,
|
||||||
) {
|
) {
|
||||||
|
val successState = successState ?: return
|
||||||
|
|
||||||
if (startNow) {
|
if (startNow) {
|
||||||
val chapterId = chapters.singleOrNull()?.id ?: return
|
val chapterId = chapters.singleOrNull()?.id ?: return
|
||||||
downloadManager.startDownloadNow(chapterId)
|
downloadManager.startDownloadNow(chapterId)
|
||||||
} else {
|
} else {
|
||||||
downloadChapters(chapters)
|
downloadChapters(chapters)
|
||||||
}
|
}
|
||||||
if (!isFavoritedManga) {
|
|
||||||
|
if (!isFavorited && !successState.hasPromptedToAddBefore) {
|
||||||
coroutineScope.launch {
|
coroutineScope.launch {
|
||||||
val result = snackbarHostState.showSnackbar(
|
val result = snackbarHostState.showSnackbar(
|
||||||
message = context.getString(R.string.snack_add_to_library),
|
message = context.getString(R.string.snack_add_to_library),
|
||||||
actionLabel = context.getString(R.string.action_add),
|
actionLabel = context.getString(R.string.action_add),
|
||||||
withDismissAction = true,
|
withDismissAction = true,
|
||||||
)
|
)
|
||||||
if (result == SnackbarResult.ActionPerformed && !isFavoritedManga) {
|
if (result == SnackbarResult.ActionPerformed && !isFavorited) {
|
||||||
toggleFavorite()
|
toggleFavorite()
|
||||||
}
|
}
|
||||||
|
updateSuccessState { successState ->
|
||||||
|
successState.copy(hasPromptedToAddBefore = true)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1008,6 +1014,7 @@ sealed class MangaScreenState {
|
|||||||
val trackItems: List<TrackItem> = emptyList(),
|
val trackItems: List<TrackItem> = emptyList(),
|
||||||
val isRefreshingData: Boolean = false,
|
val isRefreshingData: Boolean = false,
|
||||||
val dialog: MangaInfoScreenModel.Dialog? = null,
|
val dialog: MangaInfoScreenModel.Dialog? = null,
|
||||||
|
val hasPromptedToAddBefore: Boolean = false,
|
||||||
) : MangaScreenState() {
|
) : MangaScreenState() {
|
||||||
|
|
||||||
val processedChapters: Sequence<ChapterItem>
|
val processedChapters: Sequence<ChapterItem>
|
||||||
|
Loading…
Reference in New Issue
Block a user