From 21cb1921a314af3c5937b69c780d34cf9a022b76 Mon Sep 17 00:00:00 2001 From: Cuong-Tran <16017808+cuong-tran@users.noreply.github.com> Date: Wed, 13 May 2026 13:56:39 +0700 Subject: [PATCH] Refactor AppBarActions and clean up code (#1635) * remove parentheses * Refactor AppBarActions to improve readability and maintainability * Refactor callback parameters in AppBar actions for clarity --- .../presentation/browse/SourceFeedScreen.kt | 71 ++++++++------- .../components/BrowseSourceEHentaiList.kt | 4 +- .../components/BrowseSourceSimpleToolbar.kt | 39 ++++---- .../components/BulkSelectionToolbar.kt | 90 +++++++++---------- .../library/components/CommonMangaItem.kt | 14 +-- .../presentation/updates/UpdatesUiItem.kt | 2 +- 6 files changed, 108 insertions(+), 112 deletions(-) diff --git a/app/src/main/java/eu/kanade/presentation/browse/SourceFeedScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/SourceFeedScreen.kt index 5a5dd79ae..50ab99dbe 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/SourceFeedScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/SourceFeedScreen.kt @@ -336,47 +336,46 @@ fun SourceFeedToolbar( // KMK --> actions = { AppBarActions( - actions = persistentListOf().builder() - .apply { - add(bulkSelectionButton(isRunning, toggleSelectionMode)) + actions = persistentListOf().builder().apply { + add(bulkSelectionButton(isRunning, toggleSelectionMode)) - onWebViewClick?.let { - add( - AppBar.Action( - title = stringResource(MR.strings.action_web_view), - onClick = { onWebViewClick() }, - icon = Icons.Outlined.Public, - ), - ) - } - - // KMK --> + onWebViewClick?.let { func -> add( - AppBar.OverflowAction( - title = stringResource(MR.strings.pref_incognito_mode), - onClick = onToggleIncognito, + AppBar.Action( + title = stringResource(MR.strings.action_web_view), + onClick = { func() }, + icon = Icons.Outlined.Public, ), ) - // KMK <-- - - onSortFeedClick?.let { - add( - AppBar.OverflowAction( - title = stringResource(KMR.strings.action_sort_feed), - onClick = { onSortFeedClick() }, - ), - ) - } - - onSourceSettingClick?.let { - add( - AppBar.OverflowAction( - title = stringResource(MR.strings.label_settings), - onClick = { onSourceSettingClick() }, - ), - ) - } } + + // KMK --> + add( + AppBar.OverflowAction( + title = stringResource(MR.strings.pref_incognito_mode), + onClick = onToggleIncognito, + ), + ) + // KMK <-- + + onSortFeedClick?.let { func -> + add( + AppBar.OverflowAction( + title = stringResource(KMR.strings.action_sort_feed), + onClick = { func() }, + ), + ) + } + + onSourceSettingClick?.let { func -> + add( + AppBar.OverflowAction( + title = stringResource(MR.strings.label_settings), + onClick = { func() }, + ), + ) + } + } .build(), ) }, diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceEHentaiList.kt b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceEHentaiList.kt index 2eb0a609d..cc2db3449 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceEHentaiList.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceEHentaiList.kt @@ -209,7 +209,7 @@ fun BrowseSourceEHentaiListItem( MangaCoverHide.Book( modifier = Modifier .fillMaxHeight(), - bgColor = bgColor ?: (MaterialTheme.colorScheme.surface.takeIf { isSelected }), + bgColor = bgColor ?: MaterialTheme.colorScheme.surface.takeIf { isSelected }, tint = onBgColor, ) } else { @@ -219,7 +219,7 @@ fun BrowseSourceEHentaiListItem( .fillMaxHeight(), // KMK --> alpha = if (isSelected) GRID_SELECTED_COVER_ALPHA else coverAlpha, - bgColor = bgColor ?: (MaterialTheme.colorScheme.surface.takeIf { isSelected }), + bgColor = bgColor ?: MaterialTheme.colorScheme.surface.takeIf { isSelected }, tint = onBgColor, // KMK <-- data = coverData, diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceSimpleToolbar.kt b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceSimpleToolbar.kt index 0d6cbf5c2..6a562b74a 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceSimpleToolbar.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceSimpleToolbar.kt @@ -39,27 +39,26 @@ fun BrowseSourceSimpleToolbar( var selectingDisplayMode by remember { mutableStateOf(false) } // KMK --> AppBarActions( - actions = persistentListOf().builder() - .apply { - displayMode?.let { - add( - AppBar.Action( - title = stringResource(MR.strings.action_display_mode), - icon = if (displayMode == LibraryDisplayMode.List) { - Icons.AutoMirrored.Filled.ViewList - } else { - Icons.Filled.ViewModule - }, - onClick = { selectingDisplayMode = true }, - ), - ) - } - toggleSelectionMode?.let { - add( - bulkSelectionButton(isRunning, toggleSelectionMode), - ) - } + actions = persistentListOf().builder().apply { + displayMode?.let { mode -> + add( + AppBar.Action( + title = stringResource(MR.strings.action_display_mode), + icon = if (mode == LibraryDisplayMode.List) { + Icons.AutoMirrored.Filled.ViewList + } else { + Icons.Filled.ViewModule + }, + onClick = { selectingDisplayMode = true }, + ), + ) } + toggleSelectionMode?.let { mode -> + add( + bulkSelectionButton(isRunning, mode), + ) + } + } .build(), ) // KMK <-- diff --git a/app/src/main/java/eu/kanade/presentation/components/BulkSelectionToolbar.kt b/app/src/main/java/eu/kanade/presentation/components/BulkSelectionToolbar.kt index c6689ebda..653b0f2a1 100644 --- a/app/src/main/java/eu/kanade/presentation/components/BulkSelectionToolbar.kt +++ b/app/src/main/java/eu/kanade/presentation/components/BulkSelectionToolbar.kt @@ -30,53 +30,51 @@ fun BulkSelectionToolbar( titleContent = { Text(text = "$selectedCount") }, actions = { AppBarActions( - actions = persistentListOf() - .builder() - .apply { - if (onSelectAll != null) { - add( - AppBar.Action( - title = stringResource(MR.strings.action_select_all), - icon = Icons.Filled.SelectAll, - onClick = onSelectAll, - ), - ) - } - if (onReverseSelection != null) { - add( - AppBar.Action( - title = stringResource(MR.strings.action_select_inverse), - icon = Icons.Outlined.FlipToBack, - onClick = onReverseSelection, - ), - ) - } - if (isRunning) { - add( - AppBar.ActionCompose( - title = stringResource(KMR.strings.action_bulk_select), - ) { - CircularProgressIndicator( - modifier = Modifier - .size(24.dp), - strokeWidth = 2.dp, - ) + actions = persistentListOf().builder().apply { + if (onSelectAll != null) { + add( + AppBar.Action( + title = stringResource(MR.strings.action_select_all), + icon = Icons.Filled.SelectAll, + onClick = onSelectAll, + ), + ) + } + if (onReverseSelection != null) { + add( + AppBar.Action( + title = stringResource(MR.strings.action_select_inverse), + icon = Icons.Outlined.FlipToBack, + onClick = onReverseSelection, + ), + ) + } + if (isRunning) { + add( + AppBar.ActionCompose( + title = stringResource(KMR.strings.action_bulk_select), + ) { + CircularProgressIndicator( + modifier = Modifier + .size(24.dp), + strokeWidth = 2.dp, + ) + }, + ) + } else { + add( + AppBar.Action( + title = stringResource(MR.strings.add_to_library), + icon = Icons.Filled.Favorite, + onClick = { + if (selectedCount > 0) { + onChangeCategoryClick() + } }, - ) - } else { - add( - AppBar.Action( - title = stringResource(MR.strings.add_to_library), - icon = Icons.Filled.Favorite, - onClick = { - if (selectedCount > 0) { - onChangeCategoryClick() - } - }, - ), - ) - } - }.build(), + ), + ) + } + }.build(), ) }, isActionMode = true, diff --git a/app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt b/app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt index 309fa2d1a..5485474ec 100644 --- a/app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt +++ b/app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt @@ -105,7 +105,7 @@ fun MangaCompactGridItem( MangaCoverHide.Book( modifier = Modifier .fillMaxWidth(), - bgColor = bgColor ?: (MaterialTheme.colorScheme.surface.takeIf { isSelected }), + bgColor = bgColor ?: MaterialTheme.colorScheme.surface.takeIf { isSelected }, tint = onBgColor, ) } else { @@ -119,7 +119,7 @@ fun MangaCompactGridItem( data = coverData, // KMK --> alpha = if (isSelected) GRID_SELECTED_COVER_ALPHA else coverAlpha, - bgColor = bgColor ?: (MaterialTheme.colorScheme.surface.takeIf { isSelected }), + bgColor = bgColor ?: MaterialTheme.colorScheme.surface.takeIf { isSelected }, tint = onBgColor, // KMK <-- ) @@ -241,7 +241,7 @@ fun MangaComfortableGridItem( MangaCoverHide.Book( modifier = Modifier .fillMaxWidth(), - bgColor = bgColor ?: (MaterialTheme.colorScheme.surface.takeIf { isSelected }), + bgColor = bgColor ?: MaterialTheme.colorScheme.surface.takeIf { isSelected }, tint = onBgColor, ) } else { @@ -255,7 +255,7 @@ fun MangaComfortableGridItem( data = coverData, // KMK --> alpha = if (isSelected) GRID_SELECTED_COVER_ALPHA else coverAlpha, - bgColor = bgColor ?: (MaterialTheme.colorScheme.surface.takeIf { isSelected }), + bgColor = bgColor ?: MaterialTheme.colorScheme.surface.takeIf { isSelected }, tint = onBgColor, onCoverLoaded = { _, result -> val image = result.result.image @@ -274,7 +274,7 @@ fun MangaComfortableGridItem( data = coverData, // KMK --> alpha = if (isSelected) GRID_SELECTED_COVER_ALPHA else coverAlpha, - bgColor = bgColor ?: (MaterialTheme.colorScheme.surface.takeIf { isSelected }), + bgColor = bgColor ?: MaterialTheme.colorScheme.surface.takeIf { isSelected }, tint = onBgColor, onCoverLoaded = { _, result -> val image = result.result.image @@ -461,7 +461,7 @@ fun MangaListItem( MangaCoverHide.Square( modifier = Modifier .fillMaxHeight(), - bgColor = bgColor ?: (MaterialTheme.colorScheme.surface.takeIf { isSelected }), + bgColor = bgColor ?: MaterialTheme.colorScheme.surface.takeIf { isSelected }, tint = onBgColor, ) } else { @@ -475,7 +475,7 @@ fun MangaListItem( data = coverData, // KMK --> alpha = coverAlpha, - bgColor = bgColor ?: (MaterialTheme.colorScheme.surface.takeIf { isSelected }), + bgColor = bgColor ?: MaterialTheme.colorScheme.surface.takeIf { isSelected }, tint = onBgColor, size = MangaCover.Size.Big, // KMK <-- diff --git a/app/src/main/java/eu/kanade/presentation/updates/UpdatesUiItem.kt b/app/src/main/java/eu/kanade/presentation/updates/UpdatesUiItem.kt index 8a67b478e..98ff2d78b 100644 --- a/app/src/main/java/eu/kanade/presentation/updates/UpdatesUiItem.kt +++ b/app/src/main/java/eu/kanade/presentation/updates/UpdatesUiItem.kt @@ -309,7 +309,7 @@ private fun UpdatesUiItem( MangaCoverHide.Book( modifier = Modifier .width(UpdateItemWidth), - bgColor = bgColor ?: (MaterialTheme.colorScheme.surface.takeIf { selected }), + bgColor = bgColor ?: MaterialTheme.colorScheme.surface.takeIf { selected }, tint = onBgColor, size = MangaCover.Size.Medium, )