fix(launcher): M6.20 播放页右滑返回+顶部下滑通知中心+时钟1s刷新 — 推卡验收

This commit is contained in:
AskaEth committed 2026-09-03 13:42:32 +08:00
1 parent 3d70a3dd2c
commit cd9d9da3bd
4 files changed
+31 -6

No files matched your search

+1 -1
View File
@@ -1792,7 +1792,7 @@ static void run_menu(struct app apps[MAX_APPS], int napps, int state,
tx >= MEOW_EDGE_W && ty >= SB_BAR_H) {
logmsg("menu: left-swipe -> Now Playing (dx=%d,dy=%d)", dx, dy);
menu_arm_touch(TAP_ARM_DELAY_MS);
run_now_playing();
run_now_playing(apps, napps);
/* 重播按键防抖基线,防播放页内电源/音量边沿被 run_menu 误判 */
memset(&kd_pwr, 0, sizeof kd_pwr);
memset(&kd_vold, 0, sizeof kd_vold);
@@ -780,7 +780,7 @@ uint16_t rgb565(uint32_t c);
void run_notif_center(struct app *apps, int napps, notif_click_t *click,
int live_open, int lox, int loy);
/* 阶段D附录B:Now Playing 大页(主界面横划进入;左缘右滑返回;阻塞到返回)。 */
void run_now_playing(void);
void run_now_playing(struct app *apps, int napps);
void run_settings_page(void);
void s_about_open(void);
int s_dd_modal(const char *title, const char *item[S_NET_MAX], int n, int cur);
+28 -3
View File
@@ -269,7 +269,7 @@ static int64_t np_progress_seek(int tx, int ty)
return 0;
}
void run_now_playing(void)
void run_now_playing(struct app *apps, int napps)
{
int tfd = open(DEV_TOUCH, O_RDONLY | O_NONBLOCK);
if (tfd >= 0) { unsigned char ev[16]; while (read(tfd, ev, sizeof ev) == 16) {} }
@@ -291,6 +291,7 @@ void run_now_playing(void)
int td = 0, td_ok = 0, tdx = -1, tdy = -1, tlx = -1, tly = -1;
unsigned long long last_prog = now_ms();
unsigned long long np_last_status_tick = now_ms(); /* M6.20:播放页状态栏时钟 1s 刷新(主界面同语义) */
int need_redraw = 1;
char last_title[128] = "";
uint32_t last_state = 0xFFFFFFFFu;
@@ -327,8 +328,26 @@ void run_now_playing(void)
if (td_ok) {
int dx = tlx - tdx, dy = tly - tdy;
int adx = dx < 0 ? -dx : dx, ady = dy < 0 ? -dy : dy;
/* 左缘右滑返回(全局手势语义):回到主界面(不清理媒体会话) */
if (meow_edge_back(tdx, dx, dy)) break;
/* 顶部热区下滑 → 打开通知中心(与主界面同语义;mnp_top_swipe_down
* 内部已排除左缘 down_x<24,与下方返回手势互斥)。run_notif_center
* 为阻塞模态,返回后整页重画播放页。 */
if (mnp_top_swipe_down(tdx, tdy, dx, dy, SB_BAR_H, 65)) {
notif_click_t click;
memset(&click, 0, sizeof click);
click.app_idx = -1;
click.status = NOTIF_CLICK_STATUS_NONE;
run_notif_center(apps, napps, &click, 0, 0, 0);
need_redraw = 1;
meow_dirty_full();
meow_ui_flush();
}
/* 左缘右滑返回(全局手势语义),或任意横向右滑返回——与主界面
* 「左滑进入 Now Playing」对称(main_menu 左滑仅要求 tx>=MEOW_EDGE_W,
* 返回却需精确落 24px 左缘带,用户反向右滑极易落空 → 滑不出来)。
* 播放页无横向分页内容、无进度条拖动(进度=点按,幅度<60 走 tap 分支),
* 故任意位置横向右滑恒判返回,安全。回到主界面(不清理媒体会话) */
else if (meow_edge_back(tdx, dx, dy) ||
(dx >= MEOW_EDGE_SWIPE && adx > ady)) break;
if (adx < 60 && ady < 60) {
int cmd = np_btn_tap(tlx, tly);
if (cmd) { meow_media_playctl((uint32_t)cmd, 0); need_redraw = 1; }
@@ -407,6 +426,12 @@ void run_now_playing(void)
last_prog = now;
np_repaint_progress();
}
/* M6.20:播放页状态栏时钟 1s 刷新(与主界面/子页同语义;draw_clock 喂 SDK 全局
* 状态栏 + 标脏顶条,SDK present() 重绘——否则时间冻结在进入播放页那一刻)。 */
if (now - np_last_status_tick >= 1000) {
np_last_status_tick = now;
draw_clock();
}
usleep(10000);
}
meow_ui_activity_pop(); /* M7.0b:退出 Now Playing,回主 activity(控件 owner 仍钉哨兵,复用) */
+1 -1
View File
@@ -28,7 +28,7 @@
# ---- 用户态/服务守护二进制(usr/bin,全部 chmod 755 静态 MIPS)----
patch_v2/bootmenu/meow_bootmenu|/usr/bin/meow_bootmenu|4441822d87e76bfce2ce584604ac3830|引导选单 M2.85(sysui让位 agent-216)
patch_v2/meow_launcherd/meow_launcherd|/usr/bin/meow_launcherd|5f01ecdcbe1b3a32ca4d907f05e2dbb7|主屏 launcher M6.19: agent-373 五修复收编(keys.c 亮度恢复修 PIN 亮屏亮度跳 fix④),重链新SDK 51caee4a(含 meow_ui_gfx 恢复边沿整帧重画 fix①②③ ncm 后台化叠层/穿透)
patch_v2/meow_launcherd/meow_launcherd|/usr/bin/meow_launcherd|7c013546cf653d74860118da943c19d0|M6.20 播放页右滑返回/顶部下滑通知中心/时钟1s刷新
patch_v2/meow_watchdog/meow_watchdog|/usr/bin/meow_watchdog|553840cdc79d8d7bed766a5e3981ac57|应用看门狗 M2.97(音量反转 + DS1039 平方锥度 + 插孔消抖)
patch_v2/meow_svcd/meow_svcd|/usr/bin/meow_svcd|605646c4cc93f2baf29071ea6bc870ea|服务管理器 M2.77(+崩溃上报 meow_crash agent-187)
mips-repo/bins/meow_mdns/bin/meow_mdns|/usr/bin/meow_mdns|d6b0151bda26768f19952dae1342610d|mDNS 应答器 M2.78(启动竞态+换IP重检 agent-194)