From eb7723adcd7d7f1f056651c1c7a61ad6acdef911 Mon Sep 17 00:00:00 2001 From: HapeLee <63206378+HapeLee@users.noreply.github.com> Date: Sun, 21 Jun 2026 00:32:37 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20TextSelectMenuFilterSheet=20?= =?UTF-8?q?=E9=81=B5=E5=BE=AA=E9=A1=B9=E7=9B=AE=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - MaterialTheme.typography → LegadoTheme.typography - 原生 Switch → AdaptiveSwitch(适配 Miuix/Material3 主题引擎) - 去掉底部全选/取消全选按钮和 ConfirmDismissButtonsRow - 保存按钮改为 Check 图标放在 AppModalBottomSheet 的 endAction 中 - 通配符导入改为显式导入 --- .../readConfig/TextSelectMenuFilterSheet.kt | 78 ++++++++----------- 1 file changed, 31 insertions(+), 47 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/config/readConfig/TextSelectMenuFilterSheet.kt b/app/src/main/java/io/legado/app/ui/config/readConfig/TextSelectMenuFilterSheet.kt index 1b079e5e5..789c4ccd5 100644 --- a/app/src/main/java/io/legado/app/ui/config/readConfig/TextSelectMenuFilterSheet.kt +++ b/app/src/main/java/io/legado/app/ui/config/readConfig/TextSelectMenuFilterSheet.kt @@ -1,14 +1,26 @@ package io.legado.app.ui.config.readConfig import android.content.Intent -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.SelectAll -import androidx.compose.material.icons.filled.Deselect -import androidx.compose.material3.* -import androidx.compose.runtime.* +import androidx.compose.material.icons.filled.Check +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext @@ -17,11 +29,11 @@ import androidx.compose.ui.unit.dp import coil.compose.AsyncImage import io.legado.app.R import io.legado.app.ui.theme.LegadoTheme +import io.legado.app.ui.widget.components.AdaptiveSwitch +import io.legado.app.ui.widget.components.button.series.SmallPlainButton +import io.legado.app.ui.widget.components.card.NormalCard import io.legado.app.ui.widget.components.modalBottomSheet.AppModalBottomSheet import io.legado.app.ui.widget.components.text.AppText -import io.legado.app.ui.widget.components.card.NormalCard -import io.legado.app.ui.widget.components.button.ConfirmDismissButtonsRow -import io.legado.app.ui.widget.components.button.series.SmallTonalButton @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -64,6 +76,15 @@ fun TextSelectMenuFilterSheet( show = show, onDismissRequest = onDismissRequest, title = stringResource(R.string.text_select_menu_filter), + endAction = { + SmallPlainButton( + icon = Icons.Default.Check, + onClick = { + onFilterChanged(pendingFilterString) + onDismissRequest() + } + ) + }, ) { Column( modifier = Modifier @@ -71,8 +92,6 @@ fun TextSelectMenuFilterSheet( .fillMaxHeight(0.8f) .padding(horizontal = 16.dp, vertical = 8.dp) ) { - - if (apps.isEmpty()) { Box( modifier = Modifier @@ -126,10 +145,10 @@ fun TextSelectMenuFilterSheet( ) { AppText( text = app.title, - style = MaterialTheme.typography.titleMedium + style = LegadoTheme.typography.titleMedium ) } - Switch( + AdaptiveSwitch( checked = isEnabled, onCheckedChange = { checked -> val nextSet = if (checked) { @@ -145,41 +164,6 @@ fun TextSelectMenuFilterSheet( } } } - Row( - modifier = Modifier.fillMaxWidth().padding(top = 16.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically - ) { - Row(horizontalArrangement = Arrangement.spacedBy(4.dp)) { - IconButton(onClick = { pendingFilterString = "" }) { - Icon( - imageVector = Icons.Default.SelectAll, - contentDescription = stringResource(R.string.show_all), - tint = LegadoTheme.colorScheme.primary - ) - } - IconButton(onClick = { - val allNames = apps.joinToString(",") { it.componentName } - pendingFilterString = allNames - }) { - Icon( - imageVector = Icons.Default.Deselect, - contentDescription = stringResource(R.string.hide_all), - tint = LegadoTheme.colorScheme.error - ) - } - } - ConfirmDismissButtonsRow( - modifier = Modifier.weight(1f), - onDismiss = onDismissRequest, - onConfirm = { - onFilterChanged(pendingFilterString) - onDismissRequest() - }, - dismissText = stringResource(R.string.cancel), - confirmText = stringResource(R.string.action_save) - ) - } } } }