Refactor AppBarActions and clean up code (#1635)

* remove parentheses

* Refactor AppBarActions to improve readability and maintainability

* Refactor callback parameters in AppBar actions for clarity
This commit is contained in:
Cuong-Tran 2026-05-13 13:56:39 +07:00 committed by GitHub
parent dc3d034109
commit 21cb1921a3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 108 additions and 112 deletions

View file

@ -336,47 +336,46 @@ fun SourceFeedToolbar(
// KMK -->
actions = {
AppBarActions(
actions = persistentListOf<AppBar.AppBarAction>().builder()
.apply {
add(bulkSelectionButton(isRunning, toggleSelectionMode))
actions = persistentListOf<AppBar.AppBarAction>().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(),
)
},

View file

@ -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,

View file

@ -39,27 +39,26 @@ fun BrowseSourceSimpleToolbar(
var selectingDisplayMode by remember { mutableStateOf(false) }
// KMK -->
AppBarActions(
actions = persistentListOf<AppBar.AppBarAction>().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<AppBar.AppBarAction>().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 <--

View file

@ -30,53 +30,51 @@ fun BulkSelectionToolbar(
titleContent = { Text(text = "$selectedCount") },
actions = {
AppBarActions(
actions = persistentListOf<AppBar.AppBarAction>()
.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<AppBar.AppBarAction>().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,

View file

@ -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 <--

View file

@ -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,
)