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, + ) + } } } }