From b16c2c2a8504060f6acf3881ff48852daa668746 Mon Sep 17 00:00:00 2001 From: Super12138 <70494801+Super12138@users.noreply.github.com> Date: Wed, 12 Feb 2025 17:19:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(accessibility):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=97=A0=E9=9A=9C=E7=A2=8D=E8=A1=A8=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../super12138/todo/ui/pages/main/MainPage.kt | 7 ++-- .../todo/ui/pages/main/components/TodoFAB.kt | 34 ------------------- .../components/darkmode/DarkModeItem.kt | 14 +++++--- .../components/licence/LicenceList.kt | 10 +++--- .../components/palette/PaletteItem.kt | 12 ++++--- 5 files changed, 28 insertions(+), 49 deletions(-) delete mode 100644 app/src/main/kotlin/cn/super12138/todo/ui/pages/main/components/TodoFAB.kt diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/MainPage.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/MainPage.kt index 340ff41..00edc52 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/MainPage.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/MainPage.kt @@ -19,6 +19,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.safeContent import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Add import androidx.compose.material.icons.outlined.Delete import androidx.compose.material3.Scaffold import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo @@ -36,8 +37,8 @@ import androidx.window.core.layout.WindowWidthSizeClass import cn.super12138.todo.R import cn.super12138.todo.constants.Constants import cn.super12138.todo.logic.database.TodoEntity +import cn.super12138.todo.ui.components.AnimatedExtendedFloatingActionButton import cn.super12138.todo.ui.components.WarningDialog -import cn.super12138.todo.ui.pages.main.components.TodoFAB import cn.super12138.todo.ui.pages.main.components.TodoTopAppBar import cn.super12138.todo.ui.viewmodels.MainViewModel @@ -103,7 +104,9 @@ fun MainPage( exit = shrinkOut() + fadeOut() ) { // TODO: 修复在滑动列表时FAB位移导致的动画不连贯(临时方案为底部加padding) - TodoFAB( + AnimatedExtendedFloatingActionButton( + icon = Icons.Outlined.Add, + text = stringResource(R.string.action_add_task), expanded = true, onClick = { viewModel.setEditTodoItem(null) // 每次添加待办前清除上一次已选待办 diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/components/TodoFAB.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/components/TodoFAB.kt deleted file mode 100644 index ad8e5e7..0000000 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/components/TodoFAB.kt +++ /dev/null @@ -1,34 +0,0 @@ -package cn.super12138.todo.ui.pages.main.components - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.Add -import androidx.compose.material3.FloatingActionButtonDefaults -import androidx.compose.material3.FloatingActionButtonElevation -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import cn.super12138.todo.R -import cn.super12138.todo.ui.components.AnimatedExtendedFloatingActionButton - -/** - * 待办页面底部 FAB - * - * @param expanded 是否为展开状态(展开状态显示内容和图标,收起状态只显示图标) - * @param onClick 当点击 FAB 时的回调 - */ -@Composable -fun TodoFAB( - expanded: Boolean, - onClick: () -> Unit, - elevation: FloatingActionButtonElevation = FloatingActionButtonDefaults.elevation(), - modifier: Modifier = Modifier -) { - AnimatedExtendedFloatingActionButton( - icon = Icons.Outlined.Add, - text = stringResource(R.string.action_add_task), - expanded = expanded, - elevation = elevation, - onClick = onClick, - modifier = modifier - ) -} \ No newline at end of file diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/darkmode/DarkModeItem.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/darkmode/DarkModeItem.kt index fa76169..ed0c766 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/darkmode/DarkModeItem.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/darkmode/DarkModeItem.kt @@ -20,6 +20,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.semantics.Role import androidx.compose.ui.unit.dp import cn.super12138.todo.utils.VibrationUtils @@ -38,10 +39,13 @@ fun DarkModeItem( Column( modifier = modifier .clip(MaterialTheme.shapes.large) - .clickable { - VibrationUtils.performHapticFeedback(view) - onSelect() - } + .clickable( + role = Role.Button, + onClick = { + VibrationUtils.performHapticFeedback(view) + onSelect() + } + ) .padding(8.dp), horizontalAlignment = Alignment.CenterHorizontally ) { @@ -58,7 +62,7 @@ fun DarkModeItem( ) { Icon( imageVector = icon, - contentDescription = contentDescription, + contentDescription = null, tint = contentColor, modifier = Modifier .size(30.dp) diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/licence/LicenceList.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/licence/LicenceList.kt index fc1f346..78cdc4c 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/licence/LicenceList.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/licence/LicenceList.kt @@ -67,10 +67,12 @@ fun LicenceList( } }, confirmButton = { - FilledTonalButton(onClick = { - openDialog = false - VibrationUtils.performHapticFeedback(view) - }) { Text(stringResource(R.string.action_confirm)) } + FilledTonalButton( + onClick = { + openDialog = false + VibrationUtils.performHapticFeedback(view) + } + ) { Text(stringResource(R.string.action_confirm)) } }, onDismissRequest = { openDialog = false } ) diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/palette/PaletteItem.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/palette/PaletteItem.kt index 9e4bea9..5be24dd 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/palette/PaletteItem.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/palette/PaletteItem.kt @@ -25,6 +25,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalView import androidx.compose.ui.res.colorResource +import androidx.compose.ui.semantics.Role import androidx.compose.ui.unit.dp import androidx.compose.ui.util.fastForEach import cn.super12138.todo.constants.GlobalValues @@ -48,10 +49,13 @@ fun PaletteItem( modifier = Modifier .width(90.dp) .clip(MaterialTheme.shapes.large) - .clickable { - VibrationUtils.performHapticFeedback(view) - onSelect() - } + .clickable( + role = Role.Button, + onClick = { + VibrationUtils.performHapticFeedback(view) + onSelect() + } + ) .padding(8.dp), horizontalAlignment = Alignment.CenterHorizontally, ) {