LongClick to add/remove related mangas to library
Can support bulkSelection but let’s not complicated the screen
This commit is contained in:
parent
d764ac3b63
commit
4d3eeefb2c
2 changed files with 29 additions and 2 deletions
|
|
@ -252,7 +252,7 @@ class BulkFavoriteScreenModel(
|
||||||
.orEmpty()
|
.orEmpty()
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun getDuplicateLibraryManga(manga: Manga): Manga? {
|
private suspend fun getDuplicateLibraryManga(manga: Manga): Manga? {
|
||||||
return getDuplicateLibraryManga.await(manga).getOrNull(0)
|
return getDuplicateLibraryManga.await(manga).getOrNull(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,12 @@ import eu.kanade.tachiyomi.source.CatalogueSource
|
||||||
import eu.kanade.tachiyomi.source.Source
|
import eu.kanade.tachiyomi.source.Source
|
||||||
import eu.kanade.tachiyomi.source.isLocalOrStub
|
import eu.kanade.tachiyomi.source.isLocalOrStub
|
||||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||||
|
import eu.kanade.tachiyomi.ui.browse.AddDuplicateMangaDialog
|
||||||
|
import eu.kanade.tachiyomi.ui.browse.AllowDuplicateDialog
|
||||||
|
import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
|
||||||
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
|
||||||
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
||||||
|
import eu.kanade.tachiyomi.ui.browse.RemoveMangaDialog
|
||||||
import eu.kanade.tachiyomi.ui.browse.migration.advanced.design.PreMigrationScreen
|
import eu.kanade.tachiyomi.ui.browse.migration.advanced.design.PreMigrationScreen
|
||||||
import eu.kanade.tachiyomi.ui.browse.source.SourcesScreen
|
import eu.kanade.tachiyomi.ui.browse.source.SourcesScreen
|
||||||
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreen
|
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreen
|
||||||
|
|
@ -121,6 +127,11 @@ class MangaScreen(
|
||||||
val successState = state as MangaScreenModel.State.Success
|
val successState = state as MangaScreenModel.State.Success
|
||||||
val isHttpSource = remember { successState.source is HttpSource }
|
val isHttpSource = remember { successState.source is HttpSource }
|
||||||
|
|
||||||
|
// KMK -->
|
||||||
|
val bulkFavoriteScreenModel = rememberScreenModel { BulkFavoriteScreenModel() }
|
||||||
|
val bulkFavoriteState by bulkFavoriteScreenModel.state.collectAsState()
|
||||||
|
// KMK <--
|
||||||
|
|
||||||
LaunchedEffect(successState.manga, screenModel.source) {
|
LaunchedEffect(successState.manga, screenModel.source) {
|
||||||
if (isHttpSource) {
|
if (isHttpSource) {
|
||||||
try {
|
try {
|
||||||
|
|
@ -228,7 +239,7 @@ class MangaScreen(
|
||||||
// KMK -->
|
// KMK -->
|
||||||
getMangaState = { screenModel.getManga(initialManga = it) },
|
getMangaState = { screenModel.getManga(initialManga = it) },
|
||||||
onRelatedMangaClick = { navigator.push(MangaScreen(it.id, true)) },
|
onRelatedMangaClick = { navigator.push(MangaScreen(it.id, true)) },
|
||||||
onRelatedMangaLongClick = { },
|
onRelatedMangaLongClick = { bulkFavoriteScreenModel.addRemoveManga(it, haptic) },
|
||||||
// KMK <--
|
// KMK <--
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -347,6 +358,22 @@ class MangaScreen(
|
||||||
onConfirm = screenModel::setExcludedScanlators,
|
onConfirm = screenModel::setExcludedScanlators,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// KMK -->
|
||||||
|
when (bulkFavoriteState.dialog) {
|
||||||
|
is BulkFavoriteScreenModel.Dialog.AddDuplicateManga ->
|
||||||
|
AddDuplicateMangaDialog(bulkFavoriteScreenModel)
|
||||||
|
is BulkFavoriteScreenModel.Dialog.RemoveManga ->
|
||||||
|
RemoveMangaDialog(bulkFavoriteScreenModel)
|
||||||
|
is BulkFavoriteScreenModel.Dialog.ChangeMangaCategory ->
|
||||||
|
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
|
||||||
|
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
||||||
|
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
||||||
|
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
|
||||||
|
AllowDuplicateDialog(bulkFavoriteScreenModel)
|
||||||
|
else -> {}
|
||||||
|
}
|
||||||
|
// KMK <--
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun continueReading(context: Context, unreadChapter: Chapter?) {
|
private fun continueReading(context: Context, unreadChapter: Chapter?) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue