diff --git a/superpowers/plans/2026-09-10-ring-health-app-m0-m1.md b/superpowers/plans/2026-09-10-ring-health-app-m0-m1.md index b36cdcb..418cc88 100644 --- a/superpowers/plans/2026-09-10-ring-health-app-m0-m1.md +++ b/superpowers/plans/2026-09-10-ring-health-app-m0-m1.md @@ -3661,6 +3661,11 @@ git add -A && git commit -m "feat: 实现设备页与设备设置子页(可交 常见问题与意见反馈 ``` +> 这 12 条**每一条都有调用点**(已 grep 全计划核对),不是 `R25`/`R27` 那种「清单里混着死资源」的情况。 +> 唯一要留意的是 `profile_check_update_desc` 里的 `0.1.0`:它是 `app/build.gradle.kts` 里 `versionName` +> 的一份**手抄副本**,改版本号时两处要一起改。这里不改成 `BuildConfig.VERSION_NAME` 是因为 +> AGP 8.x 默认关闭 `buildConfig` 生成,为了一个展示串去开它不划算。Task 14 更新 README 版本时一并核对。 + - [ ] **Step 2: 实现 `ProfileScreen.kt`** ```kotlin @@ -3689,14 +3694,21 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.placeholder.ringhealth.R import com.placeholder.ringhealth.core.designsystem.MetricGreen +import com.placeholder.ringhealth.core.designsystem.RingHealthTheme import com.placeholder.ringhealth.core.designsystem.TextSecondary import com.placeholder.ringhealth.core.designsystem.component.HealthCard import com.placeholder.ringhealth.core.designsystem.component.SectionHeader -/** “我的”页。 */ +/** + * “我的”页。全部为静态入口,无状态、无 ViewModel。 + * + * 本页**不需要**再拆「有状态外壳 + 无状态内容」(ledger Ruling R26 的常规形状): + * 它本身就是无状态的,直接对它挂 `@Preview` 即可。 + */ @Composable fun ProfileScreen(modifier: Modifier = Modifier) { LazyColumn( @@ -3786,15 +3798,30 @@ private fun ProfileEntry( } } } + +@Preview(showBackground = true) +@Composable +private fun ProfileScreenPreview() { + RingHealthTheme { + ProfileScreen() + } +} ``` -- [ ] **Step 3: 构建 + 验证** +- [ ] **Step 3: 构建 + 单测** ```bash -cd /d/cherry/repos/ring-health-app && ./gradlew assembleDebug +cd /d/cherry/repos/ring-health-app && ./gradlew :app:testDebugUnitTest && ./gradlew assembleDebug ``` -Expected: “我的”Tab 显示头像卡与两组设置入口。 +Expected: 两条命令均 `BUILD SUCCESSFUL`;全量测试仍为 15 项通过(本任务不新增测试, +只换掉一个页面的实现,纯 UI 且无 ViewModel 可测)。 + +界面上「“我的”Tab 显示头像卡与两组设置入口」**不在本步验证**(ledger Ruling R21:本机无模拟器与真机), +顺延到 Task 14 Step 3 的人工验收清单;本步能确认的是 `ProfileScreenPreview` 能在 Android Studio 中渲染 +(R26 —— 这是本机唯一能看见界面的手段)。 + +> **不要用 `FROM-CACHE` 的绿当作证据。** 缓存命中时任务会标 `FROM-CACHE` 而不真正执行,看到就加 `--rerun`。 - [ ] **Step 4: Commit**