fix detekt
This commit is contained in:
parent
cd016ab29e
commit
55226e3016
18 changed files with 90 additions and 85 deletions
|
|
@ -47,14 +47,14 @@ fun GlobalSearchScreen(
|
||||||
Scaffold(
|
Scaffold(
|
||||||
topBar = { scrollBehavior ->
|
topBar = { scrollBehavior ->
|
||||||
// KMK -->
|
// KMK -->
|
||||||
if (bulkFavoriteState.selectionMode)
|
if (bulkFavoriteState.selectionMode) {
|
||||||
SelectionToolbar(
|
SelectionToolbar(
|
||||||
selectedCount = bulkFavoriteState.selection.size,
|
selectedCount = bulkFavoriteState.selection.size,
|
||||||
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
|
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
|
||||||
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
|
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
|
||||||
)
|
)
|
||||||
else
|
} else {
|
||||||
// KMK <--
|
// KMK <--
|
||||||
GlobalSearchToolbar(
|
GlobalSearchToolbar(
|
||||||
searchQuery = state.searchQuery,
|
searchQuery = state.searchQuery,
|
||||||
progress = state.progress,
|
progress = state.progress,
|
||||||
|
|
@ -71,6 +71,7 @@ fun GlobalSearchScreen(
|
||||||
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode,
|
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode,
|
||||||
// KMK <--
|
// KMK <--
|
||||||
)
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
) { paddingValues ->
|
) { paddingValues ->
|
||||||
GlobalSearchContent(
|
GlobalSearchContent(
|
||||||
|
|
|
||||||
|
|
@ -37,14 +37,14 @@ fun MigrateSearchScreen(
|
||||||
Scaffold(
|
Scaffold(
|
||||||
topBar = { scrollBehavior ->
|
topBar = { scrollBehavior ->
|
||||||
// KMK -->
|
// KMK -->
|
||||||
if (bulkFavoriteState.selectionMode)
|
if (bulkFavoriteState.selectionMode) {
|
||||||
SelectionToolbar(
|
SelectionToolbar(
|
||||||
selectedCount = bulkFavoriteState.selection.size,
|
selectedCount = bulkFavoriteState.selection.size,
|
||||||
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
|
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
|
||||||
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
|
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
|
||||||
)
|
)
|
||||||
else
|
} else {
|
||||||
// KMK <--
|
// KMK <--
|
||||||
GlobalSearchToolbar(
|
GlobalSearchToolbar(
|
||||||
searchQuery = state.searchQuery,
|
searchQuery = state.searchQuery,
|
||||||
progress = state.progress,
|
progress = state.progress,
|
||||||
|
|
@ -58,9 +58,10 @@ fun MigrateSearchScreen(
|
||||||
onToggleResults = onToggleResults,
|
onToggleResults = onToggleResults,
|
||||||
scrollBehavior = scrollBehavior,
|
scrollBehavior = scrollBehavior,
|
||||||
// KMK -->
|
// KMK -->
|
||||||
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode
|
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode,
|
||||||
// KMK <--
|
// KMK <--
|
||||||
)
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
) { paddingValues ->
|
) { paddingValues ->
|
||||||
GlobalSearchContent(
|
GlobalSearchContent(
|
||||||
|
|
|
||||||
|
|
@ -119,14 +119,14 @@ fun SourceFeedScreen(
|
||||||
Scaffold(
|
Scaffold(
|
||||||
topBar = { scrollBehavior ->
|
topBar = { scrollBehavior ->
|
||||||
// KMK -->
|
// KMK -->
|
||||||
if (bulkFavoriteState.selectionMode)
|
if (bulkFavoriteState.selectionMode) {
|
||||||
SelectionToolbar(
|
SelectionToolbar(
|
||||||
selectedCount = bulkFavoriteState.selection.size,
|
selectedCount = bulkFavoriteState.selection.size,
|
||||||
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
|
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
|
||||||
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
|
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
|
||||||
)
|
)
|
||||||
else
|
} else {
|
||||||
// KMK <--
|
// KMK <--
|
||||||
SourceFeedToolbar(
|
SourceFeedToolbar(
|
||||||
title = name,
|
title = name,
|
||||||
searchQuery = searchQuery,
|
searchQuery = searchQuery,
|
||||||
|
|
@ -138,6 +138,7 @@ fun SourceFeedScreen(
|
||||||
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode,
|
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode,
|
||||||
// KMK <--
|
// KMK <--
|
||||||
)
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
floatingActionButton = {
|
floatingActionButton = {
|
||||||
BrowseSourceFloatingActionButton(
|
BrowseSourceFloatingActionButton(
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,9 @@ fun SelectionToolbar(
|
||||||
title = stringResource(MR.strings.action_bookmark),
|
title = stringResource(MR.strings.action_bookmark),
|
||||||
icon = Icons.Filled.BookmarkAdd,
|
icon = Icons.Filled.BookmarkAdd,
|
||||||
onClick = {
|
onClick = {
|
||||||
if (selectedCount > 0)
|
if (selectedCount > 0) {
|
||||||
onChangeCategoryClicked()
|
onChangeCategoryClicked()
|
||||||
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -62,13 +62,13 @@ fun TabbedScreen(
|
||||||
val tab = tabs[state.currentPage]
|
val tab = tabs[state.currentPage]
|
||||||
val searchEnabled = tab.searchEnabled
|
val searchEnabled = tab.searchEnabled
|
||||||
// KMK -->
|
// KMK -->
|
||||||
if (bulkFavoriteState.selectionMode)
|
if (bulkFavoriteState.selectionMode) {
|
||||||
SelectionToolbar(
|
SelectionToolbar(
|
||||||
selectedCount = bulkFavoriteState.selection.size,
|
selectedCount = bulkFavoriteState.selection.size,
|
||||||
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
|
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
|
||||||
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
|
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
|
||||||
)
|
)
|
||||||
else
|
} else {
|
||||||
// KMK <--
|
// KMK <--
|
||||||
SearchToolbar(
|
SearchToolbar(
|
||||||
titleContent = { AppBarTitle(stringResource(titleRes)) },
|
titleContent = { AppBarTitle(stringResource(titleRes)) },
|
||||||
|
|
@ -77,6 +77,7 @@ fun TabbedScreen(
|
||||||
onChangeSearchQuery = onChangeSearchQuery,
|
onChangeSearchQuery = onChangeSearchQuery,
|
||||||
actions = { AppBarActions(tab.actions) },
|
actions = { AppBarActions(tab.actions) },
|
||||||
)
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
snackbarHost = { SnackbarHost(hostState = snackbarHostState) },
|
snackbarHost = { SnackbarHost(hostState = snackbarHostState) },
|
||||||
) { contentPadding ->
|
) { contentPadding ->
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ object CommonMangaItemDefaults {
|
||||||
val GridVerticalSpacer = 4.dp
|
val GridVerticalSpacer = 4.dp
|
||||||
|
|
||||||
const val BrowseFavoriteCoverAlpha = 0.34f
|
const val BrowseFavoriteCoverAlpha = 0.34f
|
||||||
|
|
||||||
// KMK -->
|
// KMK -->
|
||||||
const val BrowseSelectedCoverAlpha = 0.17f
|
const val BrowseSelectedCoverAlpha = 0.17f
|
||||||
// KMK <--
|
// KMK <--
|
||||||
|
|
|
||||||
|
|
@ -149,7 +149,6 @@ fun AllowDuplicateDialog(
|
||||||
Text(text = stringResource(MR.strings.action_cancel))
|
Text(text = stringResource(MR.strings.action_cancel))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ data class BrowseTab(
|
||||||
)
|
)
|
||||||
} else if (feedTabInFront) {
|
} else if (feedTabInFront) {
|
||||||
persistentListOf(
|
persistentListOf(
|
||||||
feedTab(/* KMK --> */bulkFavoriteScreenModel/* KMK <-- */),
|
feedTab(bulkFavoriteScreenModel),
|
||||||
sourcesTab(),
|
sourcesTab(),
|
||||||
extensionsTab(extensionsScreenModel),
|
extensionsTab(extensionsScreenModel),
|
||||||
migrateSourceTab(),
|
migrateSourceTab(),
|
||||||
|
|
@ -88,7 +88,7 @@ data class BrowseTab(
|
||||||
} else {
|
} else {
|
||||||
persistentListOf(
|
persistentListOf(
|
||||||
sourcesTab(),
|
sourcesTab(),
|
||||||
feedTab(/* KMK --> */bulkFavoriteScreenModel/* KMK <-- */),
|
feedTab(bulkFavoriteScreenModel),
|
||||||
extensionsTab(extensionsScreenModel),
|
extensionsTab(extensionsScreenModel),
|
||||||
migrateSourceTab(),
|
migrateSourceTab(),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,6 @@ import uy.kohesive.injekt.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
import java.time.Instant
|
import java.time.Instant
|
||||||
|
|
||||||
|
|
||||||
class BulkFavoriteScreenModel(
|
class BulkFavoriteScreenModel(
|
||||||
initialState: State = State(),
|
initialState: State = State(),
|
||||||
private val sourceManager: SourceManager = Injekt.get(),
|
private val sourceManager: SourceManager = Injekt.get(),
|
||||||
|
|
@ -54,8 +53,9 @@ class BulkFavoriteScreenModel(
|
||||||
}
|
}
|
||||||
|
|
||||||
fun toggleSelectionMode() {
|
fun toggleSelectionMode() {
|
||||||
if (state.value.selectionMode)
|
if (state.value.selectionMode) {
|
||||||
clearSelection()
|
clearSelection()
|
||||||
|
}
|
||||||
mutableState.update { it.copy(selectionMode = !it.selectionMode) }
|
mutableState.update { it.copy(selectionMode = !it.selectionMode) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -74,18 +74,20 @@ class BulkFavoriteScreenModel(
|
||||||
}
|
}
|
||||||
state.copy(selection = newSelection)
|
state.copy(selection = newSelection)
|
||||||
}.also {
|
}.also {
|
||||||
if (state.value.selection.isEmpty())
|
if (state.value.selection.isEmpty()) {
|
||||||
toggleSelectionMode()
|
toggleSelectionMode()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun addFavorite(startIdx: Int = 0) {
|
fun addFavorite(startIdx: Int = 0) {
|
||||||
screenModelScope.launch {
|
screenModelScope.launch {
|
||||||
val mangaWithDup = getDuplicateLibraryManga(startIdx)
|
val mangaWithDup = getDuplicateLibraryManga(startIdx)
|
||||||
if (mangaWithDup != null)
|
if (mangaWithDup != null) {
|
||||||
setDialog(Dialog.AllowDuplicate(mangaWithDup))
|
setDialog(Dialog.AllowDuplicate(mangaWithDup))
|
||||||
else
|
} else {
|
||||||
addFavoriteDuplicate()
|
addFavoriteDuplicate()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -286,14 +288,12 @@ class BulkFavoriteScreenModel(
|
||||||
// Default category set
|
// Default category set
|
||||||
defaultCategory != null -> {
|
defaultCategory != null -> {
|
||||||
moveMangaToCategories(manga, defaultCategory)
|
moveMangaToCategories(manga, defaultCategory)
|
||||||
|
|
||||||
changeMangaFavorite(manga)
|
changeMangaFavorite(manga)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Automatic 'Default' or no categories
|
// Automatic 'Default' or no categories
|
||||||
defaultCategoryId == 0 || categories.isEmpty() -> {
|
defaultCategoryId == 0 || categories.isEmpty() -> {
|
||||||
moveMangaToCategories(manga)
|
moveMangaToCategories(manga)
|
||||||
|
|
||||||
changeMangaFavorite(manga)
|
changeMangaFavorite(manga)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -332,7 +332,7 @@ class BulkFavoriteScreenModel(
|
||||||
}
|
}
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
data class State (
|
data class State(
|
||||||
val dialog: Dialog? = null,
|
val dialog: Dialog? = null,
|
||||||
val selection: PersistentList<Manga> = persistentListOf(),
|
val selection: PersistentList<Manga> = persistentListOf(),
|
||||||
val selectionMode: Boolean = false,
|
val selectionMode: Boolean = false,
|
||||||
|
|
|
||||||
|
|
@ -129,19 +129,22 @@ fun Screen.feedTab(
|
||||||
onClickDelete = screenModel::openDeleteDialog,
|
onClickDelete = screenModel::openDeleteDialog,
|
||||||
onClickManga = { manga ->
|
onClickManga = { manga ->
|
||||||
// KMK -->
|
// KMK -->
|
||||||
if (bulkFavoriteState.selectionMode)
|
if (bulkFavoriteState.selectionMode) {
|
||||||
bulkFavoriteScreenModel.toggleSelection(manga)
|
bulkFavoriteScreenModel.toggleSelection(manga)
|
||||||
else
|
} else {
|
||||||
// KMK <--
|
// KMK <--
|
||||||
navigator.push(MangaScreen(manga.id, true))
|
navigator.push(MangaScreen(manga.id, true))
|
||||||
|
}
|
||||||
},
|
},
|
||||||
// KMK -->
|
// KMK -->
|
||||||
onLongClickManga = { manga ->
|
onLongClickManga = { manga ->
|
||||||
if (!bulkFavoriteState.selectionMode)
|
if (!bulkFavoriteState.selectionMode) {
|
||||||
scope.launchIO {
|
scope.launchIO {
|
||||||
val duplicateManga = bulkFavoriteScreenModel.getDuplicateLibraryManga(manga)
|
val duplicateManga = bulkFavoriteScreenModel.getDuplicateLibraryManga(manga)
|
||||||
when {
|
when {
|
||||||
manga.favorite -> bulkFavoriteScreenModel.setDialog(BulkFavoriteScreenModel.Dialog.RemoveManga(manga))
|
manga.favorite -> bulkFavoriteScreenModel.setDialog(
|
||||||
|
BulkFavoriteScreenModel.Dialog.RemoveManga(manga)
|
||||||
|
)
|
||||||
duplicateManga != null -> bulkFavoriteScreenModel.setDialog(
|
duplicateManga != null -> bulkFavoriteScreenModel.setDialog(
|
||||||
BulkFavoriteScreenModel.Dialog.AddDuplicateManga(
|
BulkFavoriteScreenModel.Dialog.AddDuplicateManga(
|
||||||
manga,
|
manga,
|
||||||
|
|
@ -152,8 +155,9 @@ fun Screen.feedTab(
|
||||||
}
|
}
|
||||||
haptic.performHapticFeedback(HapticFeedbackType.LongPress)
|
haptic.performHapticFeedback(HapticFeedbackType.LongPress)
|
||||||
}
|
}
|
||||||
else
|
} else {
|
||||||
navigator.push(MangaScreen(manga.id, true))
|
navigator.push(MangaScreen(manga.id, true))
|
||||||
|
}
|
||||||
},
|
},
|
||||||
selection = bulkFavoriteState.selection,
|
selection = bulkFavoriteState.selection,
|
||||||
// KMK <--
|
// KMK <--
|
||||||
|
|
@ -242,9 +246,7 @@ fun Screen.feedTab(
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
||||||
AllowDuplicateDialog(
|
AllowDuplicateDialog(
|
||||||
onDismissRequest = onBulkDismissRequest,
|
onDismissRequest = onBulkDismissRequest,
|
||||||
onAllowAllDuplicate = {
|
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate()
|
|
||||||
},
|
|
||||||
onSkipAllDuplicate = {
|
onSkipAllDuplicate = {
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -89,9 +89,7 @@ class MigrateSearchScreen(private val mangaId: Long, private val validSources: L
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
||||||
AllowDuplicateDialog(
|
AllowDuplicateDialog(
|
||||||
onDismissRequest = onBulkDismissRequest,
|
onDismissRequest = onBulkDismissRequest,
|
||||||
onAllowAllDuplicate = {
|
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate()
|
|
||||||
},
|
|
||||||
onSkipAllDuplicate = {
|
onSkipAllDuplicate = {
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -195,9 +195,7 @@ data class SourceSearchScreen(
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
||||||
AllowDuplicateDialog(
|
AllowDuplicateDialog(
|
||||||
onDismissRequest = onBulkDismissRequest,
|
onDismissRequest = onBulkDismissRequest,
|
||||||
onAllowAllDuplicate = {
|
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate()
|
|
||||||
},
|
|
||||||
onSkipAllDuplicate = {
|
onSkipAllDuplicate = {
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -154,14 +154,14 @@ data class BrowseSourceScreen(
|
||||||
topBar = {
|
topBar = {
|
||||||
Column(modifier = Modifier.background(MaterialTheme.colorScheme.surface)) {
|
Column(modifier = Modifier.background(MaterialTheme.colorScheme.surface)) {
|
||||||
// KMK -->
|
// KMK -->
|
||||||
if (bulkFavoriteState.selectionMode)
|
if (bulkFavoriteState.selectionMode) {
|
||||||
SelectionToolbar(
|
SelectionToolbar(
|
||||||
selectedCount = bulkFavoriteState.selection.size,
|
selectedCount = bulkFavoriteState.selection.size,
|
||||||
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
|
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
|
||||||
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
|
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
|
||||||
)
|
)
|
||||||
else
|
} else {
|
||||||
// KMK <--
|
// KMK <--
|
||||||
BrowseSourceToolbar(
|
BrowseSourceToolbar(
|
||||||
searchQuery = state.toolbarQuery,
|
searchQuery = state.toolbarQuery,
|
||||||
onSearchQueryChange = screenModel::setToolbarQuery,
|
onSearchQueryChange = screenModel::setToolbarQuery,
|
||||||
|
|
@ -174,9 +174,10 @@ data class BrowseSourceScreen(
|
||||||
onSettingsClick = { navigator.push(SourcePreferencesScreen(sourceId)) },
|
onSettingsClick = { navigator.push(SourcePreferencesScreen(sourceId)) },
|
||||||
onSearch = screenModel::search,
|
onSearch = screenModel::search,
|
||||||
// KMK -->
|
// KMK -->
|
||||||
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode
|
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode,
|
||||||
// KMK <--
|
// KMK <--
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
|
|
@ -271,22 +272,25 @@ data class BrowseSourceScreen(
|
||||||
onLocalSourceHelpClick = onHelpClick,
|
onLocalSourceHelpClick = onHelpClick,
|
||||||
onMangaClick = {
|
onMangaClick = {
|
||||||
// KMK -->
|
// KMK -->
|
||||||
if (bulkFavoriteState.selectionMode)
|
if (bulkFavoriteState.selectionMode) {
|
||||||
bulkFavoriteScreenModel.toggleSelection(it)
|
bulkFavoriteScreenModel.toggleSelection(it)
|
||||||
else
|
} else {
|
||||||
// KMK <--
|
// KMK <--
|
||||||
navigator.push(MangaScreen(it.id, true, smartSearchConfig))
|
navigator.push(MangaScreen(it.id, true, smartSearchConfig))
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onMangaLongClick = { manga ->
|
onMangaLongClick = { manga ->
|
||||||
// KMK -->
|
// KMK -->
|
||||||
if (bulkFavoriteState.selectionMode)
|
if (bulkFavoriteState.selectionMode) {
|
||||||
navigator.push(MangaScreen(manga.id, true))
|
navigator.push(MangaScreen(manga.id, true))
|
||||||
else
|
} else {
|
||||||
// KMK <--
|
// KMK <--
|
||||||
scope.launchIO {
|
scope.launchIO {
|
||||||
val duplicateManga = screenModel.getDuplicateLibraryManga(manga)
|
val duplicateManga = screenModel.getDuplicateLibraryManga(manga)
|
||||||
when {
|
when {
|
||||||
manga.favorite -> screenModel.setDialog(BrowseSourceScreenModel.Dialog.RemoveManga(manga))
|
manga.favorite -> screenModel.setDialog(
|
||||||
|
BrowseSourceScreenModel.Dialog.RemoveManga(manga)
|
||||||
|
)
|
||||||
duplicateManga != null -> screenModel.setDialog(
|
duplicateManga != null -> screenModel.setDialog(
|
||||||
BrowseSourceScreenModel.Dialog.AddDuplicateManga(
|
BrowseSourceScreenModel.Dialog.AddDuplicateManga(
|
||||||
manga,
|
manga,
|
||||||
|
|
@ -297,6 +301,7 @@ data class BrowseSourceScreen(
|
||||||
}
|
}
|
||||||
haptic.performHapticFeedback(HapticFeedbackType.LongPress)
|
haptic.performHapticFeedback(HapticFeedbackType.LongPress)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
// KMK -->
|
// KMK -->
|
||||||
selection = bulkFavoriteState.selection,
|
selection = bulkFavoriteState.selection,
|
||||||
|
|
@ -405,9 +410,7 @@ data class BrowseSourceScreen(
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
||||||
AllowDuplicateDialog(
|
AllowDuplicateDialog(
|
||||||
onDismissRequest = onBulkDismissRequest,
|
onDismissRequest = onBulkDismissRequest,
|
||||||
onAllowAllDuplicate = {
|
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate()
|
|
||||||
},
|
|
||||||
onSkipAllDuplicate = {
|
onSkipAllDuplicate = {
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -63,11 +63,12 @@ class SourceFeedScreen(val sourceId: Long) : Screen() {
|
||||||
onClickDelete = screenModel::openDeleteFeed,
|
onClickDelete = screenModel::openDeleteFeed,
|
||||||
onClickManga = {
|
onClickManga = {
|
||||||
// KMK -->
|
// KMK -->
|
||||||
if (bulkFavoriteState.selectionMode)
|
if (bulkFavoriteState.selectionMode) {
|
||||||
bulkFavoriteScreenModel.toggleSelection(it)
|
bulkFavoriteScreenModel.toggleSelection(it)
|
||||||
else
|
} else {
|
||||||
// KMK <--
|
// KMK <--
|
||||||
onMangaClick(navigator, it)
|
onMangaClick(navigator, it)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onClickSearch = { onSearchClick(navigator, screenModel.source, it) },
|
onClickSearch = { onSearchClick(navigator, screenModel.source, it) },
|
||||||
searchQuery = state.searchQuery,
|
searchQuery = state.searchQuery,
|
||||||
|
|
@ -76,11 +77,13 @@ class SourceFeedScreen(val sourceId: Long) : Screen() {
|
||||||
// KMK -->
|
// KMK -->
|
||||||
sourceId = screenModel.source.id,
|
sourceId = screenModel.source.id,
|
||||||
onLongClickManga = { manga ->
|
onLongClickManga = { manga ->
|
||||||
if (!bulkFavoriteState.selectionMode)
|
if (!bulkFavoriteState.selectionMode) {
|
||||||
scope.launchIO {
|
scope.launchIO {
|
||||||
val duplicateManga = bulkFavoriteScreenModel.getDuplicateLibraryManga(manga)
|
val duplicateManga = bulkFavoriteScreenModel.getDuplicateLibraryManga(manga)
|
||||||
when {
|
when {
|
||||||
manga.favorite -> bulkFavoriteScreenModel.setDialog(BulkFavoriteScreenModel.Dialog.RemoveManga(manga))
|
manga.favorite -> bulkFavoriteScreenModel.setDialog(
|
||||||
|
BulkFavoriteScreenModel.Dialog.RemoveManga(manga)
|
||||||
|
)
|
||||||
duplicateManga != null -> bulkFavoriteScreenModel.setDialog(
|
duplicateManga != null -> bulkFavoriteScreenModel.setDialog(
|
||||||
BulkFavoriteScreenModel.Dialog.AddDuplicateManga(
|
BulkFavoriteScreenModel.Dialog.AddDuplicateManga(
|
||||||
manga,
|
manga,
|
||||||
|
|
@ -91,8 +94,9 @@ class SourceFeedScreen(val sourceId: Long) : Screen() {
|
||||||
}
|
}
|
||||||
haptic.performHapticFeedback(HapticFeedbackType.LongPress)
|
haptic.performHapticFeedback(HapticFeedbackType.LongPress)
|
||||||
}
|
}
|
||||||
else
|
} else {
|
||||||
navigator.push(MangaScreen(manga.id, true))
|
navigator.push(MangaScreen(manga.id, true))
|
||||||
|
}
|
||||||
},
|
},
|
||||||
bulkFavoriteScreenModel = bulkFavoriteScreenModel,
|
bulkFavoriteScreenModel = bulkFavoriteScreenModel,
|
||||||
// KMK <--
|
// KMK <--
|
||||||
|
|
@ -228,9 +232,7 @@ class SourceFeedScreen(val sourceId: Long) : Screen() {
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
||||||
AllowDuplicateDialog(
|
AllowDuplicateDialog(
|
||||||
onDismissRequest = onBulkDismissRequest,
|
onDismissRequest = onBulkDismissRequest,
|
||||||
onAllowAllDuplicate = {
|
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate()
|
|
||||||
},
|
|
||||||
onSkipAllDuplicate = {
|
onSkipAllDuplicate = {
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
||||||
},
|
},
|
||||||
|
|
@ -251,13 +253,14 @@ class SourceFeedScreen(val sourceId: Long) : Screen() {
|
||||||
}
|
}
|
||||||
// KMK <--
|
// KMK <--
|
||||||
|
|
||||||
BackHandler(state.searchQuery != null/* KMK --> */ || bulkFavoriteState.selectionMode /* KMK <-- */) {
|
BackHandler(state.searchQuery != null || bulkFavoriteState.selectionMode) {
|
||||||
// KMK -->
|
// KMK -->
|
||||||
if(bulkFavoriteState.selectionMode)
|
if (bulkFavoriteState.selectionMode) {
|
||||||
bulkFavoriteScreenModel.backHandler()
|
bulkFavoriteScreenModel.backHandler()
|
||||||
else
|
} else {
|
||||||
// KMK <--
|
// KMK <--
|
||||||
screenModel.search(null)
|
screenModel.search(null)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -91,19 +91,22 @@ class GlobalSearchScreen(
|
||||||
},
|
},
|
||||||
onClickItem = {
|
onClickItem = {
|
||||||
// KMK -->
|
// KMK -->
|
||||||
if (bulkFavoriteState.selectionMode)
|
if (bulkFavoriteState.selectionMode) {
|
||||||
bulkFavoriteScreenModel.toggleSelection(it)
|
bulkFavoriteScreenModel.toggleSelection(it)
|
||||||
else
|
} else {
|
||||||
// KMK <--
|
// KMK <--
|
||||||
navigator.push(MangaScreen(it.id, true))
|
navigator.push(MangaScreen(it.id, true))
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onLongClickItem = { manga ->
|
onLongClickItem = { manga ->
|
||||||
// KMK -->
|
// KMK -->
|
||||||
if (!bulkFavoriteState.selectionMode)
|
if (!bulkFavoriteState.selectionMode) {
|
||||||
scope.launchIO {
|
scope.launchIO {
|
||||||
val duplicateManga = bulkFavoriteScreenModel.getDuplicateLibraryManga(manga)
|
val duplicateManga = bulkFavoriteScreenModel.getDuplicateLibraryManga(manga)
|
||||||
when {
|
when {
|
||||||
manga.favorite -> bulkFavoriteScreenModel.setDialog(BulkFavoriteScreenModel.Dialog.RemoveManga(manga))
|
manga.favorite -> bulkFavoriteScreenModel.setDialog(
|
||||||
|
BulkFavoriteScreenModel.Dialog.RemoveManga(manga)
|
||||||
|
)
|
||||||
duplicateManga != null -> bulkFavoriteScreenModel.setDialog(
|
duplicateManga != null -> bulkFavoriteScreenModel.setDialog(
|
||||||
BulkFavoriteScreenModel.Dialog.AddDuplicateManga(
|
BulkFavoriteScreenModel.Dialog.AddDuplicateManga(
|
||||||
manga,
|
manga,
|
||||||
|
|
@ -114,9 +117,10 @@ class GlobalSearchScreen(
|
||||||
}
|
}
|
||||||
haptic.performHapticFeedback(HapticFeedbackType.LongPress)
|
haptic.performHapticFeedback(HapticFeedbackType.LongPress)
|
||||||
}
|
}
|
||||||
else
|
} else {
|
||||||
// KMK <--
|
// KMK <--
|
||||||
navigator.push(MangaScreen(manga.id, true))
|
navigator.push(MangaScreen(manga.id, true))
|
||||||
|
}
|
||||||
},
|
},
|
||||||
// KMK -->
|
// KMK -->
|
||||||
bulkFavoriteScreenModel = bulkFavoriteScreenModel,
|
bulkFavoriteScreenModel = bulkFavoriteScreenModel,
|
||||||
|
|
@ -167,9 +171,7 @@ class GlobalSearchScreen(
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
||||||
AllowDuplicateDialog(
|
AllowDuplicateDialog(
|
||||||
onDismissRequest = onBulkDismissRequest,
|
onDismissRequest = onBulkDismissRequest,
|
||||||
onAllowAllDuplicate = {
|
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate()
|
|
||||||
},
|
|
||||||
onSkipAllDuplicate = {
|
onSkipAllDuplicate = {
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -185,9 +185,7 @@ class MangaDexFollowsScreen(private val sourceId: Long) : Screen() {
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
||||||
AllowDuplicateDialog(
|
AllowDuplicateDialog(
|
||||||
onDismissRequest = onBulkDismissRequest,
|
onDismissRequest = onBulkDismissRequest,
|
||||||
onAllowAllDuplicate = {
|
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate()
|
|
||||||
},
|
|
||||||
onSkipAllDuplicate = {
|
onSkipAllDuplicate = {
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -180,9 +180,7 @@ class MangaDexSimilarScreen(val mangaId: Long, val sourceId: Long) : Screen() {
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
||||||
AllowDuplicateDialog(
|
AllowDuplicateDialog(
|
||||||
onDismissRequest = onBulkDismissRequest,
|
onDismissRequest = onBulkDismissRequest,
|
||||||
onAllowAllDuplicate = {
|
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate()
|
|
||||||
},
|
|
||||||
onSkipAllDuplicate = {
|
onSkipAllDuplicate = {
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -180,9 +180,7 @@ class RecommendsScreen(val mangaId: Long, val sourceId: Long) : Screen() {
|
||||||
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
|
||||||
AllowDuplicateDialog(
|
AllowDuplicateDialog(
|
||||||
onDismissRequest = onBulkDismissRequest,
|
onDismissRequest = onBulkDismissRequest,
|
||||||
onAllowAllDuplicate = {
|
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate()
|
|
||||||
},
|
|
||||||
onSkipAllDuplicate = {
|
onSkipAllDuplicate = {
|
||||||
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue