feat(ui): M6.38批 — P1 MD3细化(SDK对话框28)+批②底部上滑回桌面+批6 ncm顶栏回播放页+批④面板后台列表+launcher UI微调(歌词页黑半透明底/播放页布局下移)+封面空artwork保留修复
- P1: meow_ui_dialog.c 对话框底框 radius_card→MEOW_SHAPE_EXTRA_LARGE(28) 三处(:103填充/:104描边/:361 BottomSheet); meow_ui_widgets.h 新增 MEOW_SHAPE_EXTRA_LARGE 28 宏; TextField/FAB/Slider/Progress 按设计文档保留 - 批②: np_gesture.h 新增 NP_GEST_HOME+np_home_gesture(底部热区上滑,与左缘返回对称互斥); now_playing.c 新增 np_draw_home_bar(屏底左缘pill指示条)+手势衔接; test_now_playing_widgets G5b - 批6: ncm home.c 顶栏加回播放页按钮(MEOW_ICON_QUEUE_MUSIC)→push(ACT_PLAYER), 无音频也生效 - 批④: meowpanel /api/ams/bg 只读端点+前端后台列表页+杀/清复用kill通道 - UI微调: now_playing.c 播放页布局宏下移(NP_COVER_Y 84/NP_BTN_Y 612消底部留白)+歌词页背景统一黑色半透明叠层(弃封面取色底,删 np_draw_lyric_coverbg) - 封面保留: now_playing.c/notif_center.c 空artwork保留上一张已解码封面(防暂停/开歌单致META报空artwork后封面闪没); test_np_cover C2断言更新+mirror同步 0warning;宿主测试 test_np_cover ALL PASS;launcher/ncm/panel 宿主测试无回归。二进制留批量批次未入库
This commit is contained in:
1 parent
b3ce719742
commit
a2aec783a7
15 files changed
+418
-47
No files matched your search
@@ -308,6 +308,50 @@ int main(void)
|
||||
CHECK(np_gesture_decide(NP_PAGE_PLAY, 200, 300, 5, 80) == NP_GEST_NONE,
|
||||
"vertical dominant -> NONE");
|
||||
|
||||
/* ============ G5b 批② 底部上滑(home)手势(np_gesture.h np_home_gesture,纯逻辑) ============ */
|
||||
printf("G5b bottom-swipe-up home gesture\n");
|
||||
const int FBRES = 720; /* 屏高(宿主 480x720;真机 fb_yres=720) */
|
||||
const int BZ = FBRES - NP_HOME_EDGE_H; /* 底部起滑区上界 692 */
|
||||
/* 底部起滑 + 向上主导 ≥阈值 → HOME */
|
||||
CHECK(np_home_gesture(200, BZ + 10, 0, -120, FBRES) == 1,
|
||||
"home: bottom zone + up-swipe -> HOME");
|
||||
CHECK(np_home_gesture(100, FBRES - 1, 20, -80, FBRES) == 1,
|
||||
"home: very bottom + slight right-drift up -> HOME");
|
||||
/* 与左缘返回互斥:左缘起点(down_x<NP_EDGE_W)不认 home(让给左缘返回) */
|
||||
CHECK(np_home_gesture(10, BZ + 10, 0, -120, FBRES) == 0,
|
||||
"home: left-edge origin -> NOT home (reserved for edge-back)");
|
||||
/* 起点不在底部起滑区(顶部/中部)不认 home */
|
||||
CHECK(np_home_gesture(200, 10, 0, -120, FBRES) == 0,
|
||||
"home: top origin -> NOT home");
|
||||
CHECK(np_home_gesture(200, 300, 0, -120, FBRES) == 0,
|
||||
"home: mid origin -> NOT home");
|
||||
/* 横向主导(向右滑)不认 home(该判给左缘返回/切页) */
|
||||
CHECK(np_home_gesture(200, BZ + 10, 120, 0, FBRES) == 0,
|
||||
"home: right-dominant -> NOT home");
|
||||
/* 向下滑 / 未达阈值 / 竖向不主导 不认 home */
|
||||
CHECK(np_home_gesture(200, BZ + 10, 0, 120, FBRES) == 0,
|
||||
"home: downward -> NOT home");
|
||||
CHECK(np_home_gesture(200, BZ + 10, 0, -NP_HOME_SWIPE + 1, FBRES) == 0,
|
||||
"home: below up-threshold -> NOT home");
|
||||
CHECK(np_home_gesture(200, BZ + 10, -120, -80, FBRES) == 0,
|
||||
"home: horizontal-dominant up -> NOT home");
|
||||
/* 与 now_playing.c 集成顺序一致:np_gesture_decide 对底部纵滑返回 NONE,再由 home 覆盖为 HOME */
|
||||
{
|
||||
int dx = 0, dy = -120, tdx = 200, tdy = BZ + 10;
|
||||
np_gest_t gnp = np_gesture_decide(NP_PAGE_PLAY, tdx, tdy, dx, dy);
|
||||
if (np_home_gesture(tdx, tdy, dx, dy, FBRES)) gnp = NP_GEST_HOME;
|
||||
CHECK(gnp == NP_GEST_HOME,
|
||||
"integration: bottom up-swipe -> HOME (overrides decide-NONE)");
|
||||
}
|
||||
/* 集成:左缘起点底部上滑不被误判为 home(保留给左缘返回) */
|
||||
{
|
||||
int tdx = 8, tdy = BZ + 10, dx = 0, dy = -120; /* 左缘 + 上滑(竖向主导) */
|
||||
np_gest_t gnp = np_gesture_decide(NP_PAGE_PLAY, tdx, tdy, dx, dy);
|
||||
if (np_home_gesture(tdx, tdy, dx, dy, FBRES)) gnp = NP_GEST_HOME;
|
||||
CHECK(gnp != NP_GEST_HOME,
|
||||
"integration: left-edge origin up-swipe -> NOT home");
|
||||
}
|
||||
|
||||
/* ============ G6 歌词页:空态 + 渲染(批2 控件 + 批3 数据语义) ============ */
|
||||
printf("G6 lyric view: empty + render\n");
|
||||
meow_ui_activity_push(NP_SENTINEL);
|
||||
|
||||
Reference in new issue
Block a user