fix(statusbar): 全屏状态栏收合 — 上移出屏+停渲染+热区28保留+左缘指示条屏顶(agent-146)
- 根因: launcher/App 双进程各持SDK态, hello运行时全屏(set_fullscreen+set_collapsed)只改App进程, launcher仍expanded→画28px+时序闪 - SDK render_off(yoff): 顶条内容整体上移+裁顶, 收合 statusbar_collapsed_render 只画4px提示线(无时钟/图标/值) - 热区保留: meow_ui_statusbar_hotzone() 收合时返回28(渲染与热区事件分离)→收合仍可下滑 - 左缘指示条: meow_ui_swipe_hint y=statusbar_height()=4 平移屏顶 - 模式感知: /tmp/meowapp_sbar(App进程SDK写0展开/1收合/2隐藏, launcher读); launch_app循环新变立即叠(消半秒闪)+过渡期~20ms高频刷(动画平滑) - meow_ui.a=ed0267a9 launcher=7ea80408 hello=1a3ff13e 0warning; 宿主 test_sb_collapse/test_sb_statusbar ALL PASS - 遗留: 全屏上收观感/收合下App前台打开通知中心归④M3(meow_ui_sys_notif_pull桩)
This commit is contained in:
1 parent
03962fffac
commit
1481ae00c4
8 files changed
+183
-33
No files matched your search
+10
-2
@@ -223,10 +223,18 @@ int meow_ui_statusbar_height(void);
|
||||
void meow_ui_statusbar_set_collapsed(int on); /* on=1 上收(内容上移出屏、只留提示线);on=0 恢复 */
|
||||
int meow_ui_statusbar_collapsed(void); /* 当前是否处于「上收」目标(1=是) */
|
||||
void meow_ui_statusbar_animate(int ms); /* TBD:上收/恢复过渡时长(ms);占位,后续代理实现插值 */
|
||||
/* 当前上收进度(0..MUI_SBAR_H:0=完全展开,28=内容全部上移出屏、仅留提示线)。
|
||||
* 供系统进程(launcher)在 App 前台叠加顶条时读取,按「当前可见条高 = 28-offset」
|
||||
* 标脏/切齐,实现收合时只 blit 可见条高、其余行保留 App 内容(平滑上收、无残留)。 */
|
||||
int meow_ui_statusbar_collapse_offset(void);
|
||||
/* 上收/恢复过渡是否仍在进行(current offset != target,逐帧推进中)。
|
||||
* 供 launcher 在过渡期高频刷新顶条(launch_app 循环据此缩短 sleep),驱动平滑动画;稳定后回 1s 慢刷。 */
|
||||
int meow_ui_statusbar_animating(void);
|
||||
|
||||
/* 顶部下滑热区(下拉展开状态栏/通知)高度(px)。
|
||||
* 非全屏=整条状态栏可视高度;全屏时缩小到 MEOW_SBAR_HOTZONE_FS(保留一处下拉入口)。
|
||||
* 返回「可用于起始下拉」的热区高度;由输入层/后续代理据此判定下拉起点。 */
|
||||
* 状态栏「激活」(含**收合**)时恒=整条状态栏高 MUI_SBAR_H(28)——收合只上收渲染、**不禁用顶部热区**
|
||||
* (渲染与热区事件分离,全屏下顶部下滑仍开通知中心);仅「全屏隐藏」(immersive inset0)时缩小到
|
||||
* MEOW_SBAR_HOTZONE_FS(保留一处下拉入口)。返回「可用于起始下拉」的热区高度。 */
|
||||
int meow_ui_statusbar_hotzone(void);
|
||||
#define MEOW_SBAR_HOTZONE_FS 4 /* 全屏时缩小后的顶部热区高度(px,草案值) */
|
||||
|
||||
|
||||
Reference in new issue
Block a user