fix detekt

This commit is contained in:
Cuong Tran 2024-03-10 07:20:58 +07:00
parent cd016ab29e
commit 55226e3016
No known key found for this signature in database
GPG key ID: 733AA7624B9315C2
18 changed files with 90 additions and 85 deletions

View file

@ -47,14 +47,14 @@ fun GlobalSearchScreen(
Scaffold(
topBar = { scrollBehavior ->
// KMK -->
if (bulkFavoriteState.selectionMode)
if (bulkFavoriteState.selectionMode) {
SelectionToolbar(
selectedCount = bulkFavoriteState.selection.size,
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
)
else
// KMK <--
} else {
// KMK <--
GlobalSearchToolbar(
searchQuery = state.searchQuery,
progress = state.progress,
@ -71,6 +71,7 @@ fun GlobalSearchScreen(
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode,
// KMK <--
)
}
},
) { paddingValues ->
GlobalSearchContent(

View file

@ -37,14 +37,14 @@ fun MigrateSearchScreen(
Scaffold(
topBar = { scrollBehavior ->
// KMK -->
if (bulkFavoriteState.selectionMode)
if (bulkFavoriteState.selectionMode) {
SelectionToolbar(
selectedCount = bulkFavoriteState.selection.size,
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
)
else
// KMK <--
} else {
// KMK <--
GlobalSearchToolbar(
searchQuery = state.searchQuery,
progress = state.progress,
@ -58,9 +58,10 @@ fun MigrateSearchScreen(
onToggleResults = onToggleResults,
scrollBehavior = scrollBehavior,
// KMK -->
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode,
// KMK <--
)
}
},
) { paddingValues ->
GlobalSearchContent(

View file

@ -119,14 +119,14 @@ fun SourceFeedScreen(
Scaffold(
topBar = { scrollBehavior ->
// KMK -->
if (bulkFavoriteState.selectionMode)
if (bulkFavoriteState.selectionMode) {
SelectionToolbar(
selectedCount = bulkFavoriteState.selection.size,
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
)
else
// KMK <--
} else {
// KMK <--
SourceFeedToolbar(
title = name,
searchQuery = searchQuery,
@ -138,6 +138,7 @@ fun SourceFeedScreen(
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode,
// KMK <--
)
}
},
floatingActionButton = {
BrowseSourceFloatingActionButton(

View file

@ -24,8 +24,9 @@ fun SelectionToolbar(
title = stringResource(MR.strings.action_bookmark),
icon = Icons.Filled.BookmarkAdd,
onClick = {
if (selectedCount > 0)
if (selectedCount > 0) {
onChangeCategoryClicked()
}
},
),
),

View file

@ -62,13 +62,13 @@ fun TabbedScreen(
val tab = tabs[state.currentPage]
val searchEnabled = tab.searchEnabled
// KMK -->
if (bulkFavoriteState.selectionMode)
if (bulkFavoriteState.selectionMode) {
SelectionToolbar(
selectedCount = bulkFavoriteState.selection.size,
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
)
else
} else {
// KMK <--
SearchToolbar(
titleContent = { AppBarTitle(stringResource(titleRes)) },
@ -77,6 +77,7 @@ fun TabbedScreen(
onChangeSearchQuery = onChangeSearchQuery,
actions = { AppBarActions(tab.actions) },
)
}
},
snackbarHost = { SnackbarHost(hostState = snackbarHostState) },
) { contentPadding ->

View file

@ -48,6 +48,7 @@ object CommonMangaItemDefaults {
val GridVerticalSpacer = 4.dp
const val BrowseFavoriteCoverAlpha = 0.34f
// KMK -->
const val BrowseSelectedCoverAlpha = 0.17f
// KMK <--

View file

@ -149,7 +149,6 @@ fun AllowDuplicateDialog(
Text(text = stringResource(MR.strings.action_cancel))
}
}
}
},
)

View file

@ -80,7 +80,7 @@ data class BrowseTab(
)
} else if (feedTabInFront) {
persistentListOf(
feedTab(/* KMK --> */bulkFavoriteScreenModel/* KMK <-- */),
feedTab(bulkFavoriteScreenModel),
sourcesTab(),
extensionsTab(extensionsScreenModel),
migrateSourceTab(),
@ -88,7 +88,7 @@ data class BrowseTab(
} else {
persistentListOf(
sourcesTab(),
feedTab(/* KMK --> */bulkFavoriteScreenModel/* KMK <-- */),
feedTab(bulkFavoriteScreenModel),
extensionsTab(extensionsScreenModel),
migrateSourceTab(),
)

View file

@ -35,7 +35,6 @@ import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.time.Instant
class BulkFavoriteScreenModel(
initialState: State = State(),
private val sourceManager: SourceManager = Injekt.get(),
@ -54,8 +53,9 @@ class BulkFavoriteScreenModel(
}
fun toggleSelectionMode() {
if (state.value.selectionMode)
if (state.value.selectionMode) {
clearSelection()
}
mutableState.update { it.copy(selectionMode = !it.selectionMode) }
}
@ -74,18 +74,20 @@ class BulkFavoriteScreenModel(
}
state.copy(selection = newSelection)
}.also {
if (state.value.selection.isEmpty())
if (state.value.selection.isEmpty()) {
toggleSelectionMode()
}
}
}
fun addFavorite(startIdx: Int = 0) {
screenModelScope.launch {
val mangaWithDup = getDuplicateLibraryManga(startIdx)
if (mangaWithDup != null)
if (mangaWithDup != null) {
setDialog(Dialog.AllowDuplicate(mangaWithDup))
else
} else {
addFavoriteDuplicate()
}
}
}
@ -286,14 +288,12 @@ class BulkFavoriteScreenModel(
// Default category set
defaultCategory != null -> {
moveMangaToCategories(manga, defaultCategory)
changeMangaFavorite(manga)
}
// Automatic 'Default' or no categories
defaultCategoryId == 0 || categories.isEmpty() -> {
moveMangaToCategories(manga)
changeMangaFavorite(manga)
}
@ -332,7 +332,7 @@ class BulkFavoriteScreenModel(
}
@Immutable
data class State (
data class State(
val dialog: Dialog? = null,
val selection: PersistentList<Manga> = persistentListOf(),
val selectionMode: Boolean = false,

View file

@ -129,19 +129,22 @@ fun Screen.feedTab(
onClickDelete = screenModel::openDeleteDialog,
onClickManga = { manga ->
// KMK -->
if (bulkFavoriteState.selectionMode)
if (bulkFavoriteState.selectionMode) {
bulkFavoriteScreenModel.toggleSelection(manga)
else
// KMK <--
} else {
// KMK <--
navigator.push(MangaScreen(manga.id, true))
}
},
// KMK -->
onLongClickManga = { manga ->
if (!bulkFavoriteState.selectionMode)
if (!bulkFavoriteState.selectionMode) {
scope.launchIO {
val duplicateManga = bulkFavoriteScreenModel.getDuplicateLibraryManga(manga)
when {
manga.favorite -> bulkFavoriteScreenModel.setDialog(BulkFavoriteScreenModel.Dialog.RemoveManga(manga))
manga.favorite -> bulkFavoriteScreenModel.setDialog(
BulkFavoriteScreenModel.Dialog.RemoveManga(manga)
)
duplicateManga != null -> bulkFavoriteScreenModel.setDialog(
BulkFavoriteScreenModel.Dialog.AddDuplicateManga(
manga,
@ -152,8 +155,9 @@ fun Screen.feedTab(
}
haptic.performHapticFeedback(HapticFeedbackType.LongPress)
}
else
} else {
navigator.push(MangaScreen(manga.id, true))
}
},
selection = bulkFavoriteState.selection,
// KMK <--
@ -242,9 +246,7 @@ fun Screen.feedTab(
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
AllowDuplicateDialog(
onDismissRequest = onBulkDismissRequest,
onAllowAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate()
},
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
onSkipAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
},

View file

@ -89,9 +89,7 @@ class MigrateSearchScreen(private val mangaId: Long, private val validSources: L
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
AllowDuplicateDialog(
onDismissRequest = onBulkDismissRequest,
onAllowAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate()
},
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
onSkipAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
},

View file

@ -195,9 +195,7 @@ data class SourceSearchScreen(
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
AllowDuplicateDialog(
onDismissRequest = onBulkDismissRequest,
onAllowAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate()
},
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
onSkipAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
},

View file

@ -154,14 +154,14 @@ data class BrowseSourceScreen(
topBar = {
Column(modifier = Modifier.background(MaterialTheme.colorScheme.surface)) {
// KMK -->
if (bulkFavoriteState.selectionMode)
if (bulkFavoriteState.selectionMode) {
SelectionToolbar(
selectedCount = bulkFavoriteState.selection.size,
onClickClearSelection = bulkFavoriteScreenModel::toggleSelectionMode,
onChangeCategoryClicked = bulkFavoriteScreenModel::addFavorite,
)
else
// KMK <--
} else {
// KMK <--
BrowseSourceToolbar(
searchQuery = state.toolbarQuery,
onSearchQueryChange = screenModel::setToolbarQuery,
@ -174,9 +174,10 @@ data class BrowseSourceScreen(
onSettingsClick = { navigator.push(SourcePreferencesScreen(sourceId)) },
onSearch = screenModel::search,
// KMK -->
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode
toggleSelectionMode = bulkFavoriteScreenModel::toggleSelectionMode,
// KMK <--
)
}
Row(
modifier = Modifier
@ -271,22 +272,25 @@ data class BrowseSourceScreen(
onLocalSourceHelpClick = onHelpClick,
onMangaClick = {
// KMK -->
if (bulkFavoriteState.selectionMode)
if (bulkFavoriteState.selectionMode) {
bulkFavoriteScreenModel.toggleSelection(it)
else
// KMK <--
} else {
// KMK <--
navigator.push(MangaScreen(it.id, true, smartSearchConfig))
}
},
onMangaLongClick = { manga ->
// KMK -->
if (bulkFavoriteState.selectionMode)
if (bulkFavoriteState.selectionMode) {
navigator.push(MangaScreen(manga.id, true))
else
// KMK <--
} else {
// KMK <--
scope.launchIO {
val duplicateManga = screenModel.getDuplicateLibraryManga(manga)
when {
manga.favorite -> screenModel.setDialog(BrowseSourceScreenModel.Dialog.RemoveManga(manga))
manga.favorite -> screenModel.setDialog(
BrowseSourceScreenModel.Dialog.RemoveManga(manga)
)
duplicateManga != null -> screenModel.setDialog(
BrowseSourceScreenModel.Dialog.AddDuplicateManga(
manga,
@ -296,7 +300,8 @@ data class BrowseSourceScreen(
else -> screenModel.addFavorite(manga)
}
haptic.performHapticFeedback(HapticFeedbackType.LongPress)
}
}
}
},
// KMK -->
selection = bulkFavoriteState.selection,
@ -405,9 +410,7 @@ data class BrowseSourceScreen(
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
AllowDuplicateDialog(
onDismissRequest = onBulkDismissRequest,
onAllowAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate()
},
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
onSkipAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
},

View file

@ -63,11 +63,12 @@ class SourceFeedScreen(val sourceId: Long) : Screen() {
onClickDelete = screenModel::openDeleteFeed,
onClickManga = {
// KMK -->
if (bulkFavoriteState.selectionMode)
if (bulkFavoriteState.selectionMode) {
bulkFavoriteScreenModel.toggleSelection(it)
else
// KMK <--
} else {
// KMK <--
onMangaClick(navigator, it)
}
},
onClickSearch = { onSearchClick(navigator, screenModel.source, it) },
searchQuery = state.searchQuery,
@ -76,11 +77,13 @@ class SourceFeedScreen(val sourceId: Long) : Screen() {
// KMK -->
sourceId = screenModel.source.id,
onLongClickManga = { manga ->
if (!bulkFavoriteState.selectionMode)
if (!bulkFavoriteState.selectionMode) {
scope.launchIO {
val duplicateManga = bulkFavoriteScreenModel.getDuplicateLibraryManga(manga)
when {
manga.favorite -> bulkFavoriteScreenModel.setDialog(BulkFavoriteScreenModel.Dialog.RemoveManga(manga))
manga.favorite -> bulkFavoriteScreenModel.setDialog(
BulkFavoriteScreenModel.Dialog.RemoveManga(manga)
)
duplicateManga != null -> bulkFavoriteScreenModel.setDialog(
BulkFavoriteScreenModel.Dialog.AddDuplicateManga(
manga,
@ -91,8 +94,9 @@ class SourceFeedScreen(val sourceId: Long) : Screen() {
}
haptic.performHapticFeedback(HapticFeedbackType.LongPress)
}
else
} else {
navigator.push(MangaScreen(manga.id, true))
}
},
bulkFavoriteScreenModel = bulkFavoriteScreenModel,
// KMK <--
@ -228,9 +232,7 @@ class SourceFeedScreen(val sourceId: Long) : Screen() {
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
AllowDuplicateDialog(
onDismissRequest = onBulkDismissRequest,
onAllowAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate()
},
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
onSkipAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
},
@ -251,13 +253,14 @@ class SourceFeedScreen(val sourceId: Long) : Screen() {
}
// KMK <--
BackHandler(state.searchQuery != null/* KMK --> */ || bulkFavoriteState.selectionMode /* KMK <-- */) {
BackHandler(state.searchQuery != null || bulkFavoriteState.selectionMode) {
// KMK -->
if(bulkFavoriteState.selectionMode)
if (bulkFavoriteState.selectionMode) {
bulkFavoriteScreenModel.backHandler()
else
} else {
// KMK <--
screenModel.search(null)
}
}
}

View file

@ -91,19 +91,22 @@ class GlobalSearchScreen(
},
onClickItem = {
// KMK -->
if (bulkFavoriteState.selectionMode)
if (bulkFavoriteState.selectionMode) {
bulkFavoriteScreenModel.toggleSelection(it)
else
// KMK <--
} else {
// KMK <--
navigator.push(MangaScreen(it.id, true))
}
},
onLongClickItem = { manga ->
// KMK -->
if (!bulkFavoriteState.selectionMode)
if (!bulkFavoriteState.selectionMode) {
scope.launchIO {
val duplicateManga = bulkFavoriteScreenModel.getDuplicateLibraryManga(manga)
when {
manga.favorite -> bulkFavoriteScreenModel.setDialog(BulkFavoriteScreenModel.Dialog.RemoveManga(manga))
manga.favorite -> bulkFavoriteScreenModel.setDialog(
BulkFavoriteScreenModel.Dialog.RemoveManga(manga)
)
duplicateManga != null -> bulkFavoriteScreenModel.setDialog(
BulkFavoriteScreenModel.Dialog.AddDuplicateManga(
manga,
@ -114,9 +117,10 @@ class GlobalSearchScreen(
}
haptic.performHapticFeedback(HapticFeedbackType.LongPress)
}
else
// KMK <--
} else {
// KMK <--
navigator.push(MangaScreen(manga.id, true))
}
},
// KMK -->
bulkFavoriteScreenModel = bulkFavoriteScreenModel,
@ -167,9 +171,7 @@ class GlobalSearchScreen(
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
AllowDuplicateDialog(
onDismissRequest = onBulkDismissRequest,
onAllowAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate()
},
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
onSkipAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
},

View file

@ -185,9 +185,7 @@ class MangaDexFollowsScreen(private val sourceId: Long) : Screen() {
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
AllowDuplicateDialog(
onDismissRequest = onBulkDismissRequest,
onAllowAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate()
},
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
onSkipAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
},

View file

@ -180,9 +180,7 @@ class MangaDexSimilarScreen(val mangaId: Long, val sourceId: Long) : Screen() {
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
AllowDuplicateDialog(
onDismissRequest = onBulkDismissRequest,
onAllowAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate()
},
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
onSkipAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
},

View file

@ -180,9 +180,7 @@ class RecommendsScreen(val mangaId: Long, val sourceId: Long) : Screen() {
is BulkFavoriteScreenModel.Dialog.AllowDuplicate -> {
AllowDuplicateDialog(
onDismissRequest = onBulkDismissRequest,
onAllowAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate()
},
onAllowAllDuplicate = bulkFavoriteScreenModel::addFavoriteDuplicate,
onSkipAllDuplicate = {
bulkFavoriteScreenModel.addFavoriteDuplicate(skipAllDuplicates = true)
},