右上角之前只有一个未读数徽标,没有铃铛也不响应点击。改成常驻铃铛(未读时加深、红点计数),点击切到通知 tab,触控区 40dp。版本 0.5.1(versionCode 6)。
This commit is contained in:
@@ -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() }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user