fix(android): 顶部未读入口补图标并可点进通知页
CI / backend (push) Waiting to run

右上角之前只有一个未读数徽标,没有铃铛也不响应点击。改成常驻铃铛(未读时加深、红点计数),点击切到通知 tab,触控区 40dp。版本 0.5.1(versionCode 6)。
This commit is contained in:
Steven
2026-11-10 16:54:46 +08:00
parent 4cb054d32f
commit 45d3222db6
2 changed files with 36 additions and 14 deletions
+2 -2
View File
@@ -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\"")
}
@@ -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,
)
}
}
}
}