fba26fc372e7e499090ecfe4d4b1584bf704d5e5
- SleepSession 增加可选 stages: List<SleepSegment>?;为 null 走原行为 - SleepSegment(stage, startOffsetMinute, endOffsetMinute) —— 相对 sleepStart 的分钟偏移 - MockDataProvider.demoLastNight() 填入真实分期序列,深睡/浅睡/清醒各期时长与累计值严格对齐 - SleepWindowChart 新增 StageTints(deep, light, awake, track);stages 非空时画轨道 + 子矩形 - AWAKE 跳出 MetricBlue 色族用暖粉 Color(0xFFE8B4A8),中途醒显眼;track 用极浅蓝作 rail - 头图分期条 / 图例自动跟着 AWAKE_TINT 走,两处口径一致 - 仅昨晚一条带 stages,其他 6 晚单色原样保留 —— 这是为了演示视觉效果,不是生产数据形态;M2 接入真机后逐步补全其他夜晚
ring-health-app
智能戒指健康 App(原生 Android / Kotlin + Jetpack Compose)。
- 设计文档:见
ring-health-docs仓库superpowers/specs/ - 当前阶段:M1 静态页面(数据来自 Mock,未接入蓝牙 SDK)
页面清单(M1)
| 页面 | 路由 |
|---|---|
| 健康首页 | home |
| 运动 | workout |
| 运动历史 | workout/history |
| 设备 | device |
| 设备设置 | device/settings |
| 我的 | profile |
| 指标详情(步数/心率/睡眠/血氧/压力/体温/血压) | detail/{metric} |
页面路由的唯一定义处是
core/navigation/Routes.kt,上表与其保持一致。 M1 的验收状态见docs/verification-m1.md。
构建
./gradlew assembleDebug # 产物在 app/build/outputs/apk/debug/
./gradlew installDebug # 安装到已连接设备(需接好设备或已启动模拟器)
./gradlew test # 单元测试
installDebug需要一台已连接的设备或正在运行的模拟器。M1 使用的机器两者都没有, 因此本机实际可执行的是./gradlew assembleDebug与./gradlew :app:testDebugUnitTest。
要求:JDK 17、Android SDK(platform 36 / build-tools 36.1.0)。
Languages
Kotlin
100%