Bulk-favorite fully uses new multi-Duplicate dialog
This commit is contained in:
parent
ea418b9517
commit
28fae3657a
12 changed files with 176 additions and 224 deletions
|
|
@ -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 <--
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 <--
|
||||
|
|
|
|||
|
|
@ -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 <--
|
||||
|
|
|
|||
|
|
@ -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 <--
|
||||
|
|
|
|||
|
|
@ -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 <--
|
||||
|
|
|
|||
|
|
@ -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 <--
|
||||
|
|
|
|||
|
|
@ -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 <--
|
||||
|
|
|
|||
|
|
@ -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 -> {}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 <--
|
||||
|
|
|
|||
|
|
@ -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 <--
|
||||
|
|
|
|||
|
|
@ -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 <--
|
||||
|
|
|
|||
Loading…
Reference in a new issue