ui: slim the More menu and drop dead controls from the CW page
用户反馈三处 UI 问题, 一并处理。
1. 更多菜单风格不符 + 遮盖感重
- 去掉全屏 scrim 遮罩(0.35 alpha 压暗整页), 改为透明点击层, 点外部仍可关闭
- Card 限宽 232dp 靠右下角, 从"全宽卡片"变成竖长条
- 容器色 surfaceContainerHigh -> surfaceContainer, 与导航栏一致; 加 1dp 细边框
- 动画从全屏 expandVertically + spring 弹跳改为右下角原点 150ms scaleIn
- Card 加 clickable(enabled=false) 吞掉点击, 避免点卡片空白区误触关闭
2. CW 页左上角退出键点击无效 -> 删除
根因: CwDecodeScreen(navigateUp: () -> Unit = {}) 是默认空实现, 而
MainScreen 的 entry<Screen.CwDecode> 调用 CwDecodeScreen() 从未传入
navigateUp, 所以点击必然无反应。按 AGENTS.md 无死代码原则删除按钮 +
navigateUp 参数 + cw_back 字符串(五语)。
3. CW 页"正在监听"状态行在停止解码后仍显示 -> 删除
estimatedPitch 在暂停后保留上次值, 状态行不会消失, 属误导。删除该 Text
后 estimatedPitch / lastInferenceMs 两个 collector 成为死代码, 一并清理;
cw_status_listening / cw_status_tone 字符串(五语)同步删除。
signalStrength(瀑布图) 与 errorMessage(错误提示) 仍在用, 保留。
验证:
- :app:compileDebugKotlin + :feature:cw:compileDebugKotlin => BUILD SUCCESSFUL
- :core:domain:test => 31 个 CW 测试全绿 (7+13+3+8)