From 45d3222db6da18cc1bc259e88d744826643a6ab2 Mon Sep 17 00:00:00 2001 From: Steven Date: Tue, 10 Nov 2026 16:54:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(android):=20=E9=A1=B6=E9=83=A8=E6=9C=AA?= =?UTF-8?q?=E8=AF=BB=E5=85=A5=E5=8F=A3=E8=A1=A5=E5=9B=BE=E6=A0=87=E5=B9=B6?= =?UTF-8?q?=E5=8F=AF=E7=82=B9=E8=BF=9B=E9=80=9A=E7=9F=A5=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 右上角之前只有一个未读数徽标,没有铃铛也不响应点击。改成常驻铃铛(未读时加深、红点计数),点击切到通知 tab,触控区 40dp。版本 0.5.1(versionCode 6)。 --- android/app/build.gradle.kts | 4 +- .../main/java/com/dadao/task/ui/AppFrame.kt | 46 ++++++++++++++----- 2 files changed, 36 insertions(+), 14 deletions(-) diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index b7ff936..5d3f286 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -27,8 +27,8 @@ android { minSdk = 26 targetSdk = 35 // 版本号是 OTA 的唯一判据:后端只比对 version_code,改这里才算"有新版本" - versionCode = 5 - versionName = "0.5.0" + versionCode = 6 + versionName = "0.5.1" buildConfigField("String", "API_BASE", "\"$apiBase\"") } diff --git a/android/app/src/main/java/com/dadao/task/ui/AppFrame.kt b/android/app/src/main/java/com/dadao/task/ui/AppFrame.kt index a46f197..6b5b18d 100644 --- a/android/app/src/main/java/com/dadao/task/ui/AppFrame.kt +++ b/android/app/src/main/java/com/dadao/task/ui/AppFrame.kt @@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width @@ -30,11 +31,13 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp import com.dadao.task.data.Workspace /** 手机端的去处。看板不是独立入口,而是任务页顶部的一个切换(屏幕太窄,塞不下更多 tab)。 */ @@ -93,18 +96,37 @@ fun WorkspaceScaffold( modifier = Modifier.clickable { onBackHome() }, ) } - if (unread > 0) { - Box( - Modifier - .background(Clay, CircleShape) - .padding(horizontal = 7.dp, vertical = 2.dp), - ) { - Text( - if (unread > 99) "99+" else unread.toString(), - style = MaterialTheme.typography.labelSmall, - color = Color.White, - fontWeight = FontWeight.SemiBold, - ) + // 未读入口:铃铛常驻,红点只表达"有事没看"。 + // 之前这里只有一个光秃秃的数字,既没有图标也点不动,等于把入口做成了装饰。 + Box( + Modifier + .size(40.dp) + .clip(RoundedCornerShape(10.dp)) + .clickable { onTab(WorkspaceTab.Notifications) }, + contentAlignment = Alignment.Center, + ) { + Icon( + Icons.Filled.Notifications, + contentDescription = if (unread > 0) "通知,$unread 条未读" else "通知", + tint = if (unread > 0) Ink else InkMuted, + modifier = Modifier.size(23.dp), + ) + if (unread > 0) { + Box( + Modifier + .align(Alignment.TopEnd) + .offset(x = 2.dp, y = 4.dp) + .background(Clay, CircleShape) + .padding(horizontal = 5.dp, vertical = 1.dp), + ) { + Text( + if (unread > 99) "99+" else unread.toString(), + style = MaterialTheme.typography.labelSmall, + fontSize = 10.sp, + color = Color.White, + fontWeight = FontWeight.SemiBold, + ) + } } } }