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:
AskaEth committed 2026-09-04 13:09:03 +08:00
1 parent b3ce719742
commit a2aec783a7
15 files changed
+418 -47

No files matched your search

+5 -4
View File
@@ -48,6 +48,7 @@ static void np_cover_load(const meow_media_session_t *s)
{
if (!s) return;
if (g_np_cover && strcmp(g_np_cover_path, s->artwork) == 0) return; /* 已载且未变 → 跳过 */
if (!s->artwork[0]) return; /* 镜像 now_playing.c 2026-09-04:空 artwork 保留上一张封面(勿清) */
if (g_np_cover) { meow_img_free(g_np_cover); g_np_cover = NULL; }
snprintf(g_np_cover_path, sizeof g_np_cover_path, "%s", s->artwork);
if (!s->artwork[0]) return;
@@ -135,12 +136,12 @@ int main(void)
np_cover_load(&s);
CHECK(g_np_cover == keep, "same path unchanged -> cache hit (no reload)");
/* ============ C2 artwork 空 → 封面清空(回退主题占位) ============ */
printf("C2 artwork empty -> cover cleared (theme placeholder)\n");
/* ============ C2 artwork 空 → 封面保留(用户 2026-09-04:勿因空 artwork 清封面) ============ */
printf("C2 artwork empty -> cover kept (NOT cleared)\n");
memset(s.artwork, 0, sizeof s.artwork);
np_cover_load(&s);
CHECK(g_np_cover == NULL, "artwork empty -> cover NULL (theme placeholder)");
CHECK(g_np_cover_path[0] == 0, "empty -> cached path reset to \"\"");
CHECK(g_np_cover == keep, "artwork empty -> cover kept (non-NULL, NOT cleared)");
CHECK(strcmp(g_np_cover_path, pa) == 0, "empty -> cached path kept (still pa)");
/* ============ C3 artwork 从空复原(同路径)→ 封面重载(M6.33 修复) ============ */
printf("C3 artwork restored (same path) -> cover reloads (M6.33)\n");