通知中心 ⑧⑨: 一键清除(保留活动通知) + 面板跟手下拉半程可回(agent-133)

- ⑧ 一键清除: mnp_clearable(ongoing/media/progress) 红线保留活动通知; 先 meow_notif 转储(notifications.log+10MB滚动) 再清空显示; 勿扰左半+清除右半(NCP_DND_SPLIT_X=fb_xres/2)对称, 命中互斥
- ⑨ 面板跟手下拉/半程可回: reveal 连续映射 1:1 跟手(mnp_drag_progress/reveal), 松手 mnp_drag_anchor(fix,40%)=1→补到1024/0→回0收回; 与⑦行左滑/列表滚动/meow_edge_back 互斥; 复用快照+局部刷(panel帧/新露出条)
- meow_ui.a 零改动(d249c6e6); launcher=b140e9e5; 宿主189项ok; 新增0warn
- NOTIFICATION_SYSTEM §9 增 ⑧⑨; MEOW_APP_SDK §5.7 收合动画落点标注
This commit is contained in:
MeowOS committed 2026-08-30 17:45:15 +08:00
1 parent 82b77d64b4
commit dafe31784d
6 files changed
+406 -22

No files matched your search

+2
View File
@@ -73,6 +73,8 @@ target_activity(可选, 来自 hints) / progress(可选 int) / urgency(0-3, 缺
- **交互**:**状态栏下滑展开**(用户已定);**上滑 / 点面板外关**;**左缘返回关**(与全局左缘返回/顶部滑条按起始位置分流,见 spec-ref §5.1)。列表显示通知(app 图标 + summary + body + target Activity),点击按路由表解析跳转(M3 导航栈),下拉关闭/清除。
- **⑥ 快捷 chip + 面板内开关(launcher 侧,用户拍板 2026-08-30)**:快捷行为 **5 个**(WiFi/蓝牙/亮度/主题/**电源菜单**——第 5 个 chip 点击**唤起既有系统电源菜单** `show_power_menu`,真弹对话框);**勿扰不做 chip**,改**通知中心面板内开关**(列表上方小 toggle),开=只显示 `urgency>=2`(HIGH/CRITICAL),状态存 `notify.dnd`(SYSTEM_SETTINGS §1),面板内读写 `meow_settings_*` 零旁路。
- **⑦ 单条通知左滑删除(launcher 侧,用户拍板 2026-08-30)**:通知行**从右往左横向滑动删除**,跟手 + 半程可回(未过阈值/反向滑回 → 回弹复原);行内左滑=删该条、竖向=列表滚动、`meow_edge_back`(左缘起点)优先不变,滑动只在该行生效;松手过阈值 → `meow_notif_dismiss` + 行移除/重排。
- **⑧ 一键清除通知(launcher 侧,用户拍板 2026-08-30)**:勿扰开关带**对称处(右半段)**加「一键清除」按钮(垃圾桶字形 + 清除),点击把**可清除的非活动通知先转储留档**(走既有 dump 链 `meow_notif_dismiss → dump_cb → meow_notif_dump_tf`,一行 CSV 追加到 `MeowOS/notifications/notifications.log` + 10MB 滚动),再**清空显示**(对可清除项 dismiss,活动项保留)。**红线:绝不清「活动状态」通知**——① ongoing 常驻、② 媒体通知(媒体会话单例)、③ 带进度条进行中的通知(`progress>=0`;终态 100% 已由 `meow_notif_update_progress` 里程碑落盘释放,不再活跃)一律保留;只清「非 ongoing / 非 media / 无进行中进度(`progress<0`)」的普通通知。= 转储留档先、清空显示后,活动项照常显示。
- **⑨ 面板「跟手下拉、半程可回」(launcher 侧,用户拍板 2026-08-30)**:面板打开/关闭由「触发式 180ms 时间轴过渡」升级为**手指拖动实时跟手**——手指在顶部热区下拉时 `progress = 手指下移量映射`(复用 `mnp_anim_off`,progress∈[0,1024],跟手 1:1),松手 `progress ≥ 40%×1024≈410` → 走时间轴补到 1024(完成展开);`< 阈值 或 反向拖回` → 回弹到 0 收回(半程取消)。关闭同理可跟手:上滑拖动时 progress 1→0 跟手,松手 `< 阈值(回到接近 1)` → 回弹重新展开;`≥ 阈值` → 时间轴归 0 收回。与行左滑(⑦ 横向主导)/列表滚动(§11 列表溢出区)/`meow_edge_back`(左缘)互斥分流,竖向滑动仍是列表滚动/关闭语义。
- **协议/约束**:遵守 freedesktop 字段(summary/body/app_icon/actions/hints/expire_timeout/replaces_id)、配额(每 App 4 类型×每类型 4、媒体单例)、TTL、转储(10s + `MeowOS/notifications/` 10MB ring)、`urgency`/`icon`/`progress`(见 §5-§8)。
- **依赖**:M2 存储 + M3 导航栈(点击跳转)+ SDK 控件基座。**阶段 B 进行中。**(叠加/与播放器帧备份的互斥边界见 DEV_NOTES #16。)
- **App 前台变体(跨进程,[源:2026-08-30])**:全屏 App 前台时,App 进程内顶部下滑也能唤起通知中心——**App