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.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.layout.width
|
import androidx.compose.foundation.layout.width
|
||||||
import androidx.compose.foundation.layout.widthIn
|
|
||||||
import androidx.compose.foundation.lazy.LazyRow
|
import androidx.compose.foundation.lazy.LazyRow
|
||||||
import androidx.compose.foundation.lazy.itemsIndexed
|
import androidx.compose.foundation.lazy.itemsIndexed
|
||||||
import androidx.compose.foundation.rememberScrollState
|
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.DoneAll
|
||||||
import androidx.compose.material.icons.outlined.Pause
|
import androidx.compose.material.icons.outlined.Pause
|
||||||
import androidx.compose.material.icons.outlined.Schedule
|
import androidx.compose.material.icons.outlined.Schedule
|
||||||
import androidx.compose.material3.AlertDialog
|
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
|
|
@ -89,6 +87,13 @@ fun DuplicateMangaDialog(
|
||||||
onOpenManga: (manga: Manga) -> Unit,
|
onOpenManga: (manga: Manga) -> Unit,
|
||||||
onMigrate: (manga: Manga) -> Unit,
|
onMigrate: (manga: Manga) -> Unit,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
|
// KMK -->
|
||||||
|
bulkFavoriteManga: Manga? = null,
|
||||||
|
onAllowAllDuplicate: () -> Unit = {},
|
||||||
|
onSkipAllDuplicate: () -> Unit = {},
|
||||||
|
onSkipDuplicate: () -> Unit = {},
|
||||||
|
stopRunning: () -> Unit = {},
|
||||||
|
// KMK <--
|
||||||
) {
|
) {
|
||||||
val sourceManager = remember { Injekt.get<SourceManager>() }
|
val sourceManager = remember { Injekt.get<SourceManager>() }
|
||||||
val minHeight = LocalPreferenceMinHeight.current
|
val minHeight = LocalPreferenceMinHeight.current
|
||||||
|
|
@ -97,7 +102,12 @@ fun DuplicateMangaDialog(
|
||||||
|
|
||||||
AdaptiveSheet(
|
AdaptiveSheet(
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
onDismissRequest = onDismissRequest,
|
onDismissRequest = {
|
||||||
|
// KMK -->
|
||||||
|
stopRunning()
|
||||||
|
// KMK <--
|
||||||
|
onDismissRequest()
|
||||||
|
},
|
||||||
) {
|
) {
|
||||||
Column(
|
Column(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
|
|
@ -137,8 +147,12 @@ fun DuplicateMangaDialog(
|
||||||
DuplicateMangaListItem(
|
DuplicateMangaListItem(
|
||||||
manga = it,
|
manga = it,
|
||||||
getSource = { sourceManager.getOrStub(it.source) },
|
getSource = { sourceManager.getOrStub(it.source) },
|
||||||
onMigrate = { onMigrate(it) },
|
onMigrate = {
|
||||||
onDismissRequest = onDismissRequest,
|
// KMK -->
|
||||||
|
if (bulkFavoriteManga == null) onDismissRequest()
|
||||||
|
// KMK <--
|
||||||
|
onMigrate(it)
|
||||||
|
},
|
||||||
onOpenManga = { onOpenManga(it) },
|
onOpenManga = { onOpenManga(it) },
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -150,34 +164,115 @@ fun DuplicateMangaDialog(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Column(modifier = horizontalPaddingModifier) {
|
// KMK -->
|
||||||
HorizontalDivider()
|
if (bulkFavoriteManga != null) {
|
||||||
|
Column(
|
||||||
|
modifier = horizontalPaddingModifier
|
||||||
|
.padding(bottom = MaterialTheme.padding.medium),
|
||||||
|
) {
|
||||||
|
HorizontalDivider()
|
||||||
|
|
||||||
TextPreferenceWidget(
|
FlowRow(
|
||||||
title = stringResource(MR.strings.action_add_anyway),
|
Modifier.fillMaxWidth(),
|
||||||
icon = Icons.Outlined.Add,
|
horizontalArrangement = Arrangement.SpaceAround,
|
||||||
onPreferenceClick = {
|
) {
|
||||||
onDismissRequest()
|
FlowColumn {
|
||||||
onConfirm()
|
TextButton(
|
||||||
},
|
onClick = {
|
||||||
modifier = Modifier.clip(CircleShape),
|
onDismissRequest()
|
||||||
)
|
onConfirm()
|
||||||
}
|
},
|
||||||
|
Modifier.align(Alignment.CenterHorizontally),
|
||||||
|
) {
|
||||||
|
Text(text = stringResource(KMR.strings.action_allow_duplicate_manga))
|
||||||
|
}
|
||||||
|
|
||||||
OutlinedButton(
|
TextButton(
|
||||||
onClick = onDismissRequest,
|
onClick = {
|
||||||
modifier = Modifier
|
onDismissRequest()
|
||||||
.then(horizontalPaddingModifier)
|
onAllowAllDuplicate()
|
||||||
.padding(bottom = MaterialTheme.padding.medium)
|
},
|
||||||
.heightIn(min = minHeight)
|
Modifier.align(Alignment.CenterHorizontally),
|
||||||
.fillMaxWidth(),
|
) {
|
||||||
) {
|
Text(text = stringResource(KMR.strings.action_allow_all_duplicate_manga))
|
||||||
Text(
|
}
|
||||||
modifier = Modifier.padding(vertical = MaterialTheme.padding.extraSmall),
|
}
|
||||||
text = stringResource(MR.strings.action_cancel),
|
|
||||||
color = MaterialTheme.colorScheme.primary,
|
FlowColumn {
|
||||||
style = MaterialTheme.typography.bodyLarge,
|
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(
|
private fun DuplicateMangaListItem(
|
||||||
manga: Manga,
|
manga: Manga,
|
||||||
getSource: () -> Source,
|
getSource: () -> Source,
|
||||||
onDismissRequest: () -> Unit,
|
|
||||||
onOpenManga: () -> Unit,
|
onOpenManga: () -> Unit,
|
||||||
onMigrate: () -> Unit,
|
onMigrate: () -> Unit,
|
||||||
) {
|
) {
|
||||||
|
|
@ -213,10 +307,7 @@ private fun DuplicateMangaListItem(
|
||||||
.background(MaterialTheme.colorScheme.surface)
|
.background(MaterialTheme.colorScheme.surface)
|
||||||
.combinedClickable(
|
.combinedClickable(
|
||||||
onLongClick = { onOpenManga() },
|
onLongClick = { onOpenManga() },
|
||||||
onClick = {
|
onClick = { onMigrate() },
|
||||||
onDismissRequest()
|
|
||||||
onMigrate()
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
.padding(MaterialTheme.padding.small),
|
.padding(MaterialTheme.padding.small),
|
||||||
) {
|
) {
|
||||||
|
|
@ -439,140 +530,4 @@ private val MangaDetailsIconWidth = 16.dp
|
||||||
|
|
||||||
// KMK -->
|
// KMK -->
|
||||||
private val MangaCardPanoramaWidth = 322.dp
|
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 <--
|
// KMK <--
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@ import eu.kanade.presentation.category.components.ChangeCategoryDialog
|
||||||
import eu.kanade.presentation.components.AppBar
|
import eu.kanade.presentation.components.AppBar
|
||||||
import eu.kanade.presentation.components.BulkSelectionToolbar
|
import eu.kanade.presentation.components.BulkSelectionToolbar
|
||||||
import eu.kanade.presentation.manga.DuplicateMangaDialog
|
import eu.kanade.presentation.manga.DuplicateMangaDialog
|
||||||
import eu.kanade.presentation.manga.DuplicateMangasDialog
|
|
||||||
import eu.kanade.tachiyomi.data.cache.CoverCache
|
import eu.kanade.tachiyomi.data.cache.CoverCache
|
||||||
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.category.CategoryScreen
|
import eu.kanade.tachiyomi.ui.category.CategoryScreen
|
||||||
|
|
@ -127,7 +126,7 @@ class BulkFavoriteScreenModel(
|
||||||
/**
|
/**
|
||||||
* Called when user click on [BulkSelectionToolbar]'s `Favorite` button.
|
* Called when user click on [BulkSelectionToolbar]'s `Favorite` button.
|
||||||
* It will then look for any duplicated mangas.
|
* 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].
|
* - If not then it will call the [addFavoriteDuplicate].
|
||||||
*/
|
*/
|
||||||
fun addFavorite(startIdx: Int = 0) {
|
fun addFavorite(startIdx: Int = 0) {
|
||||||
|
|
@ -135,13 +134,12 @@ class BulkFavoriteScreenModel(
|
||||||
startRunning()
|
startRunning()
|
||||||
val entryWithDuplicates = getDuplicateLibraryManga(startIdx)
|
val entryWithDuplicates = getDuplicateLibraryManga(startIdx)
|
||||||
if (entryWithDuplicates != null) {
|
if (entryWithDuplicates != null) {
|
||||||
val (index, duplicates) = entryWithDuplicates
|
val (index, manga, duplicates) = entryWithDuplicates
|
||||||
if (state.value.selection.size == 1) {
|
if (state.value.selection.size == 1) {
|
||||||
val manga = state.value.selection.first()
|
|
||||||
// If only one manga is selected, show the multiple duplicates dialog.
|
// If only one manga is selected, show the multiple duplicates dialog.
|
||||||
setDialog(Dialog.AddDuplicateManga(manga, duplicates))
|
setDialog(Dialog.AddDuplicateManga(manga, duplicates))
|
||||||
} else {
|
} else {
|
||||||
setDialog(Dialog.AllowDuplicate(index to duplicates.first()))
|
setDialog(Dialog.BulkAllowDuplicate(manga, duplicates, index))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
addFavoriteDuplicate()
|
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
|
val mangas = state.value.selection
|
||||||
mangas.fastForEachIndexed { index, manga ->
|
mangas.fastForEachIndexed { index, manga ->
|
||||||
if (index < startIdx) return@fastForEachIndexed
|
if (index < startIdx) return@fastForEachIndexed
|
||||||
val duplicates = getDuplicateLibraryManga(manga)
|
val duplicates = getDuplicateLibraryManga(manga)
|
||||||
if (duplicates.isEmpty()) return@fastForEachIndexed
|
if (duplicates.isEmpty()) return@fastForEachIndexed
|
||||||
return Pair(index, duplicates)
|
return Triple(index, manga, duplicates)
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
@ -414,8 +412,9 @@ class BulkFavoriteScreenModel(
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Dialog {
|
interface Dialog {
|
||||||
data class RemoveManga(val manga: Manga) : Dialog
|
|
||||||
data class AddDuplicateManga(val manga: Manga, val duplicates: List<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(
|
data class ChangeMangaCategory(
|
||||||
val manga: Manga,
|
val manga: Manga,
|
||||||
val initialSelection: ImmutableList<CheckboxState.State<Category>>,
|
val initialSelection: ImmutableList<CheckboxState.State<Category>>,
|
||||||
|
|
@ -424,7 +423,6 @@ class BulkFavoriteScreenModel(
|
||||||
val mangas: List<Manga>,
|
val mangas: List<Manga>,
|
||||||
val initialSelection: ImmutableList<CheckboxState<Category>>,
|
val initialSelection: ImmutableList<CheckboxState<Category>>,
|
||||||
) : Dialog
|
) : Dialog
|
||||||
data class AllowDuplicate(val duplicatedManga: Pair<Int, Manga>) : Dialog
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
|
|
@ -511,30 +509,29 @@ fun ChangeMangasCategoryDialog(bulkFavoriteScreenModel: BulkFavoriteScreenModel)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun AllowDuplicateDialog(bulkFavoriteScreenModel: BulkFavoriteScreenModel) {
|
fun BulkAllowDuplicateDialog(bulkFavoriteScreenModel: BulkFavoriteScreenModel) {
|
||||||
val navigator = LocalNavigator.currentOrThrow
|
val navigator = LocalNavigator.currentOrThrow
|
||||||
val bulkFavoriteState by bulkFavoriteScreenModel.state.collectAsState()
|
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,
|
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,
|
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
|
||||||
onSkipAllDuplicate = {
|
onSkipAllDuplicate = {
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
||||||
},
|
},
|
||||||
onOpenManga = {
|
|
||||||
navigator.push(MangaScreen(dialog.duplicatedManga.second.id))
|
|
||||||
},
|
|
||||||
onAllowDuplicate = {
|
|
||||||
bulkFavoriteScreenModel.addFavorite(startIdx = dialog.duplicatedManga.first + 1)
|
|
||||||
},
|
|
||||||
onSkipDuplicate = {
|
onSkipDuplicate = {
|
||||||
bulkFavoriteScreenModel.removeDuplicateSelectedManga(index = dialog.duplicatedManga.first)
|
bulkFavoriteScreenModel.removeDuplicateSelectedManga(index = dialog.currentIdx)
|
||||||
bulkFavoriteScreenModel.addFavorite(startIdx = dialog.duplicatedManga.first)
|
bulkFavoriteScreenModel.addFavorite(startIdx = dialog.currentIdx)
|
||||||
},
|
},
|
||||||
mangaName = dialog.duplicatedManga.second.title,
|
|
||||||
stopRunning = bulkFavoriteScreenModel::stopRunning,
|
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.AppBar
|
||||||
import eu.kanade.presentation.components.TabContent
|
import eu.kanade.presentation.components.TabContent
|
||||||
import eu.kanade.tachiyomi.ui.browse.AddDuplicateMangaDialog
|
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.BulkFavoriteScreenModel
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
||||||
|
|
@ -251,8 +251,8 @@ fun feedTab(
|
||||||
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
|
||||||
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
||||||
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
|
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
|
||||||
AllowDuplicateDialog(bulkFavoriteScreenModel)
|
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
|
||||||
else -> {}
|
else -> {}
|
||||||
}
|
}
|
||||||
// KMK <--
|
// KMK <--
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import cafe.adriel.voyager.navigator.LocalNavigator
|
||||||
import cafe.adriel.voyager.navigator.currentOrThrow
|
import cafe.adriel.voyager.navigator.currentOrThrow
|
||||||
import eu.kanade.presentation.browse.MigrateSearchScreen
|
import eu.kanade.presentation.browse.MigrateSearchScreen
|
||||||
import eu.kanade.presentation.util.Screen
|
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.BulkFavoriteScreenModel
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
||||||
import eu.kanade.tachiyomi.ui.browse.migration.advanced.process.MigrationListScreen
|
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) {
|
when (bulkFavoriteState.dialog) {
|
||||||
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
||||||
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
|
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
|
||||||
AllowDuplicateDialog(bulkFavoriteScreenModel)
|
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
|
||||||
else -> {}
|
else -> {}
|
||||||
}
|
}
|
||||||
// KMK <--
|
// KMK <--
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ import eu.kanade.presentation.components.BulkSelectionToolbar
|
||||||
import eu.kanade.presentation.components.SearchToolbar
|
import eu.kanade.presentation.components.SearchToolbar
|
||||||
import eu.kanade.presentation.util.Screen
|
import eu.kanade.presentation.util.Screen
|
||||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
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.BulkFavoriteScreenModel
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
||||||
import eu.kanade.tachiyomi.ui.browse.bulkSelectionButton
|
import eu.kanade.tachiyomi.ui.browse.bulkSelectionButton
|
||||||
|
|
@ -216,8 +216,8 @@ data class SourceSearchScreen(
|
||||||
when (bulkFavoriteState.dialog) {
|
when (bulkFavoriteState.dialog) {
|
||||||
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
||||||
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
|
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
|
||||||
AllowDuplicateDialog(bulkFavoriteScreenModel)
|
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
|
||||||
else -> {}
|
else -> {}
|
||||||
}
|
}
|
||||||
// KMK <--
|
// KMK <--
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ import eu.kanade.presentation.util.Screen
|
||||||
import eu.kanade.tachiyomi.source.CatalogueSource
|
import eu.kanade.tachiyomi.source.CatalogueSource
|
||||||
import eu.kanade.tachiyomi.source.ConfigurableSource
|
import eu.kanade.tachiyomi.source.ConfigurableSource
|
||||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
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.BulkFavoriteScreenModel
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
||||||
import eu.kanade.tachiyomi.ui.browse.extension.details.SourcePreferencesScreen
|
import eu.kanade.tachiyomi.ui.browse.extension.details.SourcePreferencesScreen
|
||||||
|
|
@ -500,8 +500,8 @@ data class BrowseSourceScreen(
|
||||||
when (bulkFavoriteState.dialog) {
|
when (bulkFavoriteState.dialog) {
|
||||||
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
||||||
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
|
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
|
||||||
AllowDuplicateDialog(bulkFavoriteScreenModel)
|
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
|
||||||
else -> {}
|
else -> {}
|
||||||
}
|
}
|
||||||
// KMK <--
|
// KMK <--
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ import eu.kanade.tachiyomi.source.ConfigurableSource
|
||||||
import eu.kanade.tachiyomi.source.Source
|
import eu.kanade.tachiyomi.source.Source
|
||||||
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.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.BulkFavoriteScreenModel
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
||||||
|
|
@ -299,8 +299,8 @@ class SourceFeedScreen(val sourceId: Long) : Screen() {
|
||||||
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
|
||||||
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
||||||
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
|
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
|
||||||
AllowDuplicateDialog(bulkFavoriteScreenModel)
|
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
|
||||||
else -> {}
|
else -> {}
|
||||||
}
|
}
|
||||||
// KMK <--
|
// KMK <--
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import eu.kanade.core.util.ifSourcesLoaded
|
||||||
import eu.kanade.presentation.browse.GlobalSearchScreen
|
import eu.kanade.presentation.browse.GlobalSearchScreen
|
||||||
import eu.kanade.presentation.util.Screen
|
import eu.kanade.presentation.util.Screen
|
||||||
import eu.kanade.tachiyomi.ui.browse.AddDuplicateMangaDialog
|
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.BulkFavoriteScreenModel
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
||||||
|
|
@ -126,8 +126,8 @@ class GlobalSearchScreen(
|
||||||
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
|
||||||
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
||||||
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
|
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
|
||||||
AllowDuplicateDialog(bulkFavoriteScreenModel)
|
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
|
||||||
else -> {}
|
else -> {}
|
||||||
}
|
}
|
||||||
// KMK <--
|
// KMK <--
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ 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.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.BulkFavoriteScreenModel
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
||||||
|
|
@ -226,8 +226,8 @@ class MangaScreen(
|
||||||
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
||||||
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
||||||
|
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
|
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
|
||||||
AllowDuplicateDialog(bulkFavoriteScreenModel)
|
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
|
||||||
|
|
||||||
else -> {}
|
else -> {}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import eu.kanade.presentation.category.components.ChangeCategoryDialog
|
||||||
import eu.kanade.presentation.components.BulkSelectionToolbar
|
import eu.kanade.presentation.components.BulkSelectionToolbar
|
||||||
import eu.kanade.presentation.manga.DuplicateMangaDialog
|
import eu.kanade.presentation.manga.DuplicateMangaDialog
|
||||||
import eu.kanade.presentation.util.Screen
|
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.BulkFavoriteScreenModel
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
||||||
import eu.kanade.tachiyomi.ui.browse.migration.advanced.design.PreMigrationScreen
|
import eu.kanade.tachiyomi.ui.browse.migration.advanced.design.PreMigrationScreen
|
||||||
|
|
@ -205,8 +205,8 @@ class MangaDexFollowsScreen(private val sourceId: Long) : Screen() {
|
||||||
when (bulkFavoriteState.dialog) {
|
when (bulkFavoriteState.dialog) {
|
||||||
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
||||||
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
|
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
|
||||||
AllowDuplicateDialog(bulkFavoriteScreenModel)
|
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
|
||||||
else -> {}
|
else -> {}
|
||||||
}
|
}
|
||||||
// KMK <--
|
// KMK <--
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import eu.kanade.presentation.browse.components.BrowseSourceSimpleToolbar
|
||||||
import eu.kanade.presentation.components.BulkSelectionToolbar
|
import eu.kanade.presentation.components.BulkSelectionToolbar
|
||||||
import eu.kanade.presentation.util.Screen
|
import eu.kanade.presentation.util.Screen
|
||||||
import eu.kanade.tachiyomi.ui.browse.AddDuplicateMangaDialog
|
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.BulkFavoriteScreenModel
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
||||||
|
|
@ -178,8 +178,8 @@ class BrowseRecommendsScreen(
|
||||||
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
|
||||||
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
||||||
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
|
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
|
||||||
AllowDuplicateDialog(bulkFavoriteScreenModel)
|
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
|
||||||
else -> {}
|
else -> {}
|
||||||
}
|
}
|
||||||
// KMK <--
|
// KMK <--
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import cafe.adriel.voyager.navigator.currentOrThrow
|
||||||
import eu.kanade.core.util.ifSourcesLoaded
|
import eu.kanade.core.util.ifSourcesLoaded
|
||||||
import eu.kanade.presentation.util.Screen
|
import eu.kanade.presentation.util.Screen
|
||||||
import eu.kanade.tachiyomi.ui.browse.AddDuplicateMangaDialog
|
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.BulkFavoriteScreenModel
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangaCategoryDialog
|
||||||
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
import eu.kanade.tachiyomi.ui.browse.ChangeMangasCategoryDialog
|
||||||
|
|
@ -106,8 +106,8 @@ class RecommendsScreen(val mangaId: Long, val sourceId: Long) : Screen() {
|
||||||
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangaCategoryDialog(bulkFavoriteScreenModel)
|
||||||
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
is BulkFavoriteScreenModel.Dialog.ChangeMangasCategory ->
|
||||||
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
ChangeMangasCategoryDialog(bulkFavoriteScreenModel)
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate ->
|
is BulkFavoriteScreenModel.Dialog.BulkAllowDuplicate ->
|
||||||
AllowDuplicateDialog(bulkFavoriteScreenModel)
|
BulkAllowDuplicateDialog(bulkFavoriteScreenModel)
|
||||||
else -> {}
|
else -> {}
|
||||||
}
|
}
|
||||||
// KMK <--
|
// KMK <--
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue