Bulk-favorite fully uses new multi-Duplicate dialog

This commit is contained in:
Cuong-Tran 2025-04-06 21:44:05 +07:00
parent ea418b9517
commit 28fae3657a
No known key found for this signature in database
GPG key ID: 733AA7624B9315C2
12 changed files with 176 additions and 224 deletions

View file

@ -16,7 +16,6 @@ import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.widthIn
import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.foundation.rememberScrollState
@ -34,7 +33,6 @@ import androidx.compose.material.icons.outlined.Done
import androidx.compose.material.icons.outlined.DoneAll
import androidx.compose.material.icons.outlined.Pause
import androidx.compose.material.icons.outlined.Schedule
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
@ -89,6 +87,13 @@ fun DuplicateMangaDialog(
onOpenManga: (manga: Manga) -> Unit,
onMigrate: (manga: Manga) -> Unit,
modifier: Modifier = Modifier,
// KMK -->
bulkFavoriteManga: Manga? = null,
onAllowAllDuplicate: () -> Unit = {},
onSkipAllDuplicate: () -> Unit = {},
onSkipDuplicate: () -> Unit = {},
stopRunning: () -> Unit = {},
// KMK <--
) {
val sourceManager = remember { Injekt.get<SourceManager>() }
val minHeight = LocalPreferenceMinHeight.current
@ -97,7 +102,12 @@ fun DuplicateMangaDialog(
AdaptiveSheet(
modifier = modifier,
onDismissRequest = onDismissRequest,
onDismissRequest = {
// KMK -->
stopRunning()
// KMK <--
onDismissRequest()
},
) {
Column(
modifier = Modifier
@ -137,8 +147,12 @@ fun DuplicateMangaDialog(
DuplicateMangaListItem(
manga = it,
getSource = { sourceManager.getOrStub(it.source) },
onMigrate = { onMigrate(it) },
onDismissRequest = onDismissRequest,
onMigrate = {
// KMK -->
if (bulkFavoriteManga == null) onDismissRequest()
// KMK <--
onMigrate(it)
},
onOpenManga = { onOpenManga(it) },
)
@ -150,34 +164,115 @@ fun DuplicateMangaDialog(
}
}
Column(modifier = horizontalPaddingModifier) {
HorizontalDivider()
// KMK -->
if (bulkFavoriteManga != null) {
Column(
modifier = horizontalPaddingModifier
.padding(bottom = MaterialTheme.padding.medium),
) {
HorizontalDivider()
TextPreferenceWidget(
title = stringResource(MR.strings.action_add_anyway),
icon = Icons.Outlined.Add,
onPreferenceClick = {
onDismissRequest()
onConfirm()
},
modifier = Modifier.clip(CircleShape),
)
}
FlowRow(
Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceAround,
) {
FlowColumn {
TextButton(
onClick = {
onDismissRequest()
onConfirm()
},
Modifier.align(Alignment.CenterHorizontally),
) {
Text(text = stringResource(KMR.strings.action_allow_duplicate_manga))
}
OutlinedButton(
onClick = onDismissRequest,
modifier = Modifier
.then(horizontalPaddingModifier)
.padding(bottom = MaterialTheme.padding.medium)
.heightIn(min = minHeight)
.fillMaxWidth(),
) {
Text(
modifier = Modifier.padding(vertical = MaterialTheme.padding.extraSmall),
text = stringResource(MR.strings.action_cancel),
color = MaterialTheme.colorScheme.primary,
style = MaterialTheme.typography.bodyLarge,
)
TextButton(
onClick = {
onDismissRequest()
onAllowAllDuplicate()
},
Modifier.align(Alignment.CenterHorizontally),
) {
Text(text = stringResource(KMR.strings.action_allow_all_duplicate_manga))
}
}
FlowColumn {
TextButton(
onClick = {
onDismissRequest()
onSkipDuplicate()
},
Modifier.align(Alignment.CenterHorizontally),
) {
Text(text = stringResource(KMR.strings.action_skip_duplicate_manga))
}
TextButton(
onClick = {
onDismissRequest()
onSkipAllDuplicate()
},
Modifier.align(Alignment.CenterHorizontally),
) {
Text(text = stringResource(KMR.strings.action_skip_all_duplicate_manga))
}
}
FlowColumn {
TextButton(
onClick = {
onOpenManga(bulkFavoriteManga)
},
Modifier.align(Alignment.CenterHorizontally),
) {
Text(text = stringResource(MR.strings.action_show_manga))
}
TextButton(
onClick = {
stopRunning()
onDismissRequest()
},
Modifier.align(Alignment.CenterHorizontally),
) {
Text(text = stringResource(MR.strings.action_cancel))
}
}
}
}
} else {
// KMK <--
Column(modifier = horizontalPaddingModifier) {
HorizontalDivider()
TextPreferenceWidget(
title = stringResource(MR.strings.action_add_anyway),
icon = Icons.Outlined.Add,
onPreferenceClick = {
onDismissRequest()
onConfirm()
},
modifier = Modifier.clip(CircleShape),
)
}
OutlinedButton(
onClick = onDismissRequest,
modifier = Modifier
.then(horizontalPaddingModifier)
.padding(bottom = MaterialTheme.padding.medium)
.heightIn(min = minHeight)
.fillMaxWidth(),
) {
Text(
modifier = Modifier.padding(vertical = MaterialTheme.padding.extraSmall),
text = stringResource(MR.strings.action_cancel),
color = MaterialTheme.colorScheme.primary,
style = MaterialTheme.typography.bodyLarge,
)
}
}
}
}
@ -187,7 +282,6 @@ fun DuplicateMangaDialog(
private fun DuplicateMangaListItem(
manga: Manga,
getSource: () -> Source,
onDismissRequest: () -> Unit,
onOpenManga: () -> Unit,
onMigrate: () -> Unit,
) {
@ -213,10 +307,7 @@ private fun DuplicateMangaListItem(
.background(MaterialTheme.colorScheme.surface)
.combinedClickable(
onLongClick = { onOpenManga() },
onClick = {
onDismissRequest()
onMigrate()
},
onClick = { onMigrate() },
)
.padding(MaterialTheme.padding.small),
) {
@ -439,140 +530,4 @@ private val MangaDetailsIconWidth = 16.dp
// KMK -->
private val MangaCardPanoramaWidth = 322.dp
@Composable
fun DuplicateMangasDialog(
onDismissRequest: () -> Unit,
onAllowAllDuplicate: () -> Unit,
onSkipAllDuplicate: () -> Unit,
onOpenManga: () -> Unit,
onAllowDuplicate: () -> Unit,
onSkipDuplicate: () -> Unit,
stopRunning: () -> Unit,
mangaName: String,
duplicate: Manga,
) {
val usePanoramaCover by Injekt.get<UiPreferences>().usePanoramaCoverAlways().collectAsState()
val coverRatio = remember { mutableFloatStateOf(1f) }
val coverIsWide = coverRatio.floatValue <= RatioSwitchToPanorama
AlertDialog(
onDismissRequest = {
stopRunning()
onDismissRequest()
},
title = {
Text(text = mangaName)
},
text = {
Column {
Text(text = stringResource(MR.strings.possible_duplicates_title))
Spacer(Modifier.height(MaterialTheme.padding.medium))
Box(
modifier = Modifier
.fillMaxWidth(),
) {
if (usePanoramaCover && coverIsWide) {
MangaCover.Panorama(
modifier = Modifier
.align(Alignment.Center)
.heightIn(max = 150.dp),
data = duplicate,
onCoverLoaded = { _, result ->
val image = result.result.image
coverRatio.floatValue = image.height.toFloat() / image.width
},
)
} else {
MangaCover.Book(
modifier = Modifier
.align(Alignment.Center)
.widthIn(max = 150.dp),
data = duplicate,
onCoverLoaded = { _, result ->
val image = result.result.image
coverRatio.floatValue = image.height.toFloat() / image.width
},
)
}
}
}
},
confirmButton = {
FlowRow(
Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceAround,
) {
FlowColumn {
TextButton(
onClick = {
onDismissRequest()
onAllowDuplicate()
},
Modifier.align(Alignment.CenterHorizontally),
) {
Text(text = stringResource(KMR.strings.action_allow_duplicate_manga))
}
TextButton(
onClick = {
onDismissRequest()
onAllowAllDuplicate()
},
Modifier.align(Alignment.CenterHorizontally),
) {
Text(text = stringResource(KMR.strings.action_allow_all_duplicate_manga))
}
}
FlowColumn {
TextButton(
onClick = {
onDismissRequest()
onSkipDuplicate()
},
Modifier.align(Alignment.CenterHorizontally),
) {
Text(text = stringResource(KMR.strings.action_skip_duplicate_manga))
}
TextButton(
onClick = {
onDismissRequest()
onSkipAllDuplicate()
},
Modifier.align(Alignment.CenterHorizontally),
) {
Text(text = stringResource(KMR.strings.action_skip_all_duplicate_manga))
}
}
FlowColumn {
TextButton(
onClick = {
stopRunning()
onDismissRequest()
onOpenManga()
},
Modifier.align(Alignment.CenterHorizontally),
) {
Text(text = stringResource(MR.strings.action_show_manga))
}
TextButton(
onClick = {
stopRunning()
onDismissRequest()
},
Modifier.align(Alignment.CenterHorizontally),
) {
Text(text = stringResource(MR.strings.action_cancel))
}
}
}
},
)
}
// KMK <--

View file

@ -24,7 +24,6 @@ import eu.kanade.presentation.category.components.ChangeCategoryDialog
import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.BulkSelectionToolbar
import eu.kanade.presentation.manga.DuplicateMangaDialog
import eu.kanade.presentation.manga.DuplicateMangasDialog
import eu.kanade.tachiyomi.data.cache.CoverCache
import eu.kanade.tachiyomi.ui.browse.migration.advanced.design.PreMigrationScreen
import eu.kanade.tachiyomi.ui.category.CategoryScreen
@ -127,7 +126,7 @@ class BulkFavoriteScreenModel(
/**
* Called when user click on [BulkSelectionToolbar]'s `Favorite` button.
* It will then look for any duplicated mangas.
* - If there is any, it will show the [DuplicateMangasDialog].
* - If there is any, it will show the [DuplicateMangaDialog].
* - If not then it will call the [addFavoriteDuplicate].
*/
fun addFavorite(startIdx: Int = 0) {
@ -135,13 +134,12 @@ class BulkFavoriteScreenModel(
startRunning()
val entryWithDuplicates = getDuplicateLibraryManga(startIdx)
if (entryWithDuplicates != null) {
val (index, duplicates) = entryWithDuplicates
val (index, manga, duplicates) = entryWithDuplicates
if (state.value.selection.size == 1) {
val manga = state.value.selection.first()
// If only one manga is selected, show the multiple duplicates dialog.
setDialog(Dialog.AddDuplicateManga(manga, duplicates))
} else {
setDialog(Dialog.AllowDuplicate(index to duplicates.first()))
setDialog(Dialog.BulkAllowDuplicate(manga, duplicates, index))
}
} else {
addFavoriteDuplicate()
@ -206,13 +204,13 @@ class BulkFavoriteScreenModel(
}
}
private suspend fun getDuplicateLibraryManga(startIdx: Int = 0): Pair<Int, List<Manga>>? {
private suspend fun getDuplicateLibraryManga(startIdx: Int = 0): Triple<Int, Manga, List<Manga>>? {
val mangas = state.value.selection
mangas.fastForEachIndexed { index, manga ->
if (index < startIdx) return@fastForEachIndexed
val duplicates = getDuplicateLibraryManga(manga)
if (duplicates.isEmpty()) return@fastForEachIndexed
return Pair(index, duplicates)
return Triple(index, manga, duplicates)
}
return null
}
@ -414,8 +412,9 @@ class BulkFavoriteScreenModel(
}
interface Dialog {
data class RemoveManga(val manga: Manga) : Dialog
data class AddDuplicateManga(val manga: Manga, val duplicates: List<Manga>) : Dialog
data class BulkAllowDuplicate(val manga: Manga, val duplicates: List<Manga>, val currentIdx: Int) : Dialog
data class RemoveManga(val manga: Manga) : Dialog
data class ChangeMangaCategory(
val manga: Manga,
val initialSelection: ImmutableList<CheckboxState.State<Category>>,
@ -424,7 +423,6 @@ class BulkFavoriteScreenModel(
val mangas: List<Manga>,
val initialSelection: ImmutableList<CheckboxState<Category>>,
) : Dialog
data class AllowDuplicate(val duplicatedManga: Pair<Int, Manga>) : Dialog
}
@Immutable
@ -511,30 +509,29 @@ fun ChangeMangasCategoryDialog(bulkFavoriteScreenModel: BulkFavoriteScreenModel)
}
@Composable
fun AllowDuplicateDialog(bulkFavoriteScreenModel: BulkFavoriteScreenModel) {
fun BulkAllowDuplicateDialog(bulkFavoriteScreenModel: BulkFavoriteScreenModel) {
val navigator = LocalNavigator.currentOrThrow
val bulkFavoriteState by bulkFavoriteScreenModel.state.collectAsState()
val dialog = bulkFavoriteState.dialog as BulkFavoriteScreenModel.Dialog.AllowDuplicate
val dialog = bulkFavoriteState.dialog as BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate
DuplicateMangasDialog(
DuplicateMangaDialog(
duplicates = dialog.duplicates,
onDismissRequest = bulkFavoriteScreenModel::dismissDialog,
onConfirm = {
bulkFavoriteScreenModel.addFavorite(startIdx = dialog.currentIdx + 1)
},
onOpenManga = { navigator.push(MangaScreen(it.id)) },
onMigrate = { navigator.push(MangaScreen(it.id)) },
bulkFavoriteManga = dialog.manga,
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
onSkipAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
},
onOpenManga = {
navigator.push(MangaScreen(dialog.duplicatedManga.second.id))
},
onAllowDuplicate = {
bulkFavoriteScreenModel.addFavorite(startIdx = dialog.duplicatedManga.first + 1)
},
onSkipDuplicate = {
bulkFavoriteScreenModel.removeDuplicateSelectedManga(index = dialog.duplicatedManga.first)
bulkFavoriteScreenModel.addFavorite(startIdx = dialog.duplicatedManga.first)
bulkFavoriteScreenModel.removeDuplicateSelectedManga(index = dialog.currentIdx)
bulkFavoriteScreenModel.addFavorite(startIdx = dialog.currentIdx)
},
mangaName = dialog.duplicatedManga.second.title,
stopRunning = bulkFavoriteScreenModel::stopRunning,
duplicate = dialog.duplicatedManga.second,
)
}

View file

@ -27,7 +27,7 @@ import eu.kanade.presentation.browse.components.SourceFeedDeleteDialog
import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.TabContent
import eu.kanade.tachiyomi.ui.browse.AddDuplicateMangaDialog
import eu.kanade.tachiyomi.ui.browse.AllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkAllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
@ -251,8 +251,8 @@ fun feedTab(
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
AllowDuplicateDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
else -> {}
}
// KMK <--

View file

@ -9,7 +9,7 @@ import cafe.adriel.voyager.navigator.LocalNavigator
import cafe.adriel.voyager.navigator.currentOrThrow
import eu.kanade.presentation.browse.MigrateSearchScreen
import eu.kanade.presentation.util.Screen
import eu.kanade.tachiyomi.ui.browse.AllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkAllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
import eu.kanade.tachiyomi.ui.browse.migration.advanced.process.MigrationListScreen
@ -77,8 +77,8 @@ class MigrateSearchScreen(private val mangaId: Long, private val validSources: L
when (bulkFavoriteState.dialog) {
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
AllowDuplicateDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
else -> {}
}
// KMK <--

View file

@ -21,7 +21,7 @@ import eu.kanade.presentation.components.BulkSelectionToolbar
import eu.kanade.presentation.components.SearchToolbar
import eu.kanade.presentation.util.Screen
import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.ui.browse.AllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkAllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
import eu.kanade.tachiyomi.ui.browse.bulkSelectionButton
@ -216,8 +216,8 @@ data class SourceSearchScreen(
when (bulkFavoriteState.dialog) {
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
AllowDuplicateDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
else -> {}
}
// KMK <--

View file

@ -52,7 +52,7 @@ import eu.kanade.presentation.util.Screen
import eu.kanade.tachiyomi.source.CatalogueSource
import eu.kanade.tachiyomi.source.ConfigurableSource
import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.ui.browse.AllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkAllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
import eu.kanade.tachiyomi.ui.browse.extension.details.SourcePreferencesScreen
@ -500,8 +500,8 @@ data class BrowseSourceScreen(
when (bulkFavoriteState.dialog) {
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
AllowDuplicateDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
else -> {}
}
// KMK <--

View file

@ -28,7 +28,7 @@ import eu.kanade.tachiyomi.source.ConfigurableSource
import eu.kanade.tachiyomi.source.Source
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.BulkAllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
@ -299,8 +299,8 @@ class SourceFeedScreen(val sourceId: Long) : Screen() {
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
AllowDuplicateDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
else -> {}
}
// KMK <--

View file

@ -16,7 +16,7 @@ import eu.kanade.core.util.ifSourcesLoaded
import eu.kanade.presentation.browse.GlobalSearchScreen
import eu.kanade.presentation.util.Screen
import eu.kanade.tachiyomi.ui.browse.AddDuplicateMangaDialog
import eu.kanade.tachiyomi.ui.browse.AllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkAllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
@ -126,8 +126,8 @@ class GlobalSearchScreen(
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
AllowDuplicateDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
else -> {}
}
// KMK <--

View file

@ -64,7 +64,7 @@ import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.isLocalOrStub
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.BulkAllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
@ -226,8 +226,8 @@ class MangaScreen(
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
AllowDuplicateDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
else -> {}
}

View file

@ -22,7 +22,7 @@ import eu.kanade.presentation.category.components.ChangeCategoryDialog
import eu.kanade.presentation.components.BulkSelectionToolbar
import eu.kanade.presentation.manga.DuplicateMangaDialog
import eu.kanade.presentation.util.Screen
import eu.kanade.tachiyomi.ui.browse.AllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkAllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
import eu.kanade.tachiyomi.ui.browse.migration.advanced.design.PreMigrationScreen
@ -205,8 +205,8 @@ class MangaDexFollowsScreen(private val sourceId: Long) : Screen() {
when (bulkFavoriteState.dialog) {
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
AllowDuplicateDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
else -> {}
}
// KMK <--

View file

@ -19,7 +19,7 @@ import eu.kanade.presentation.browse.components.BrowseSourceSimpleToolbar
import eu.kanade.presentation.components.BulkSelectionToolbar
import eu.kanade.presentation.util.Screen
import eu.kanade.tachiyomi.ui.browse.AddDuplicateMangaDialog
import eu.kanade.tachiyomi.ui.browse.AllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkAllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
@ -178,8 +178,8 @@ class BrowseRecommendsScreen(
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
AllowDuplicateDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
else -> {}
}
// KMK <--

View file

@ -12,7 +12,7 @@ import cafe.adriel.voyager.navigator.currentOrThrow
import eu.kanade.core.util.ifSourcesLoaded
import eu.kanade.presentation.util.Screen
import eu.kanade.tachiyomi.ui.browse.AddDuplicateMangaDialog
import eu.kanade.tachiyomi.ui.browse.AllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkAllowDuplicateDialog
import eu.kanade.tachiyomi.ui.browse.BulkFavoriteScreenModel
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
@ -106,8 +106,8 @@ class RecommendsScreen(val mangaId: Long, val sourceId: Long) : Screen() {
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
AllowDuplicateDialog(bulkFavoriteScreenModel)
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
else -> {}
}
// KMK <--