cuiluzheng fba26fc372 feat: 睡眠详情页支持按分期染色(演示仅昨晚带分期序列)
- 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 接入真机后逐步补全其他夜晚
2026-09-10 17:25:48 +08:00

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)。

S
Description
No description provided
Readme
424 KiB
Languages
Kotlin 100%