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 minSdk = 26
targetSdk = 35 targetSdk = 35
// 版本号是 OTA 的唯一判据:后端只比对 version_code,改这里才算"有新版本" // 版本号是 OTA 的唯一判据:后端只比对 version_code,改这里才算"有新版本"
versionCode = 5 versionCode = 6
versionName = "0.5.0" versionName = "0.5.1"
buildConfigField("String", "API_BASE", "\"$apiBase\"") 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.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.offset
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
@@ -30,11 +31,13 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.dadao.task.data.Workspace import com.dadao.task.data.Workspace
/** 手机端的去处。看板不是独立入口,而是任务页顶部的一个切换(屏幕太窄,塞不下更多 tab)。 */ /** 手机端的去处。看板不是独立入口,而是任务页顶部的一个切换(屏幕太窄,塞不下更多 tab)。 */
@@ -93,21 +96,40 @@ fun WorkspaceScaffold(
modifier = Modifier.clickable { onBackHome() }, modifier = Modifier.clickable { onBackHome() },
) )
} }
// 未读入口:铃铛常驻,红点只表达"有事没看"。
// 之前这里只有一个光秃秃的数字,既没有图标也点不动,等于把入口做成了装饰。
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) { if (unread > 0) {
Box( Box(
Modifier Modifier
.align(Alignment.TopEnd)
.offset(x = 2.dp, y = 4.dp)
.background(Clay, CircleShape) .background(Clay, CircleShape)
.padding(horizontal = 7.dp, vertical = 2.dp), .padding(horizontal = 5.dp, vertical = 1.dp),
) { ) {
Text( Text(
if (unread > 99) "99+" else unread.toString(), if (unread > 99) "99+" else unread.toString(),
style = MaterialTheme.typography.labelSmall, style = MaterialTheme.typography.labelSmall,
fontSize = 10.sp,
color = Color.White, color = Color.White,
fontWeight = FontWeight.SemiBold, fontWeight = FontWeight.SemiBold,
) )
} }
} }
} }
}
Box(Modifier.weight(1f).fillMaxWidth()) { content() } Box(Modifier.weight(1f).fillMaxWidth()) { content() }