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