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
@@ -25,6 +25,7 @@ typedef enum {
|
||||
NP_GEST_NEXT, /* 播放页 右→左滑 → 进入歌词页 */
|
||||
NP_GEST_PREV, /* 歌词页 左→右滑 → 回到播放页 */
|
||||
NP_GEST_EXIT, /* 播放页 任意右滑 → 返回桌面 */
|
||||
NP_GEST_HOME, /* 批②:底部上滑 → 返回桌面(后台保留) */
|
||||
NP_GEST_TAP, /* 近点按(按当前页分派:播放页=按钮/进度看点) */
|
||||
} np_gest_t;
|
||||
|
||||
@@ -47,6 +48,12 @@ typedef enum {
|
||||
#ifndef NP_EDGE_SWIPE
|
||||
#define NP_EDGE_SWIPE 65 /* 左缘右滑位移阈值(镜像 meow_touch.h MEOW_EDGE_SWIPE) */
|
||||
#endif
|
||||
#ifndef NP_HOME_EDGE_H
|
||||
#define NP_HOME_EDGE_H 28 /* 底部起滑区高(自屏底向上;镜像顶部热区 NP_TOP_HOTZONE 同为 28) */
|
||||
#endif
|
||||
#ifndef NP_HOME_SWIPE
|
||||
#define NP_HOME_SWIPE 65 /* 底部上滑位移阈值(镜像 NP_SWIPE_THRESH / meow_edge_back 同口径) */
|
||||
#endif
|
||||
|
||||
/* 左缘返回(镜像 meow_touch.c meow_edge_back:down_x∈[0,NP_EDGE_W) 且 dx>=NP_EDGE_SWIPE
|
||||
* 且横向主导)。为宿主测试免链 meow_touch.c,此处 static inline 复刻同口径。 */
|
||||
@@ -58,6 +65,20 @@ static inline int np_edge_back(int down_x, int dx, int dy)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 批② 底部上滑返回桌面(home,与左缘返回 np_edge_back 对称):原点在底部起滑区
|
||||
* (down_y∈[fb_h-NP_HOME_EDGE_H, fb_h))且**不在左缘**(down_x>=NP_EDGE_W,与 np_edge_back 按
|
||||
* 原点分界互斥——左缘 24px 列留给左缘返回)+ 向上位移≥NP_HOME_SWIPE 且竖向主导(adx<-dy)。
|
||||
* fb_h=屏高(调用方喂 fb_yres,宿主单测亦可喂固定值)。其余(顶部/中部起滑、横向主导、
|
||||
* 向下滑、未达阈值)一律 0,不与顶部下滑/横向切页/点按冲突。 */
|
||||
static inline int np_home_gesture(int down_x, int down_y, int dx, int dy, int fb_h)
|
||||
{
|
||||
int adx = dx < 0 ? -dx : dx;
|
||||
if (down_x >= NP_EDGE_W && down_y >= fb_h - NP_HOME_EDGE_H && down_y >= 0 &&
|
||||
dy <= -NP_HOME_SWIPE && adx < -dy)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 按当前页把手势几何 → 动作。down_x/down_y=抬手原点;dx/dy=抬手位移(释放-原点,即 tlx-tdx)。
|
||||
* 优先级:顶部下滑 > 横向主导切页/返回 > 点按。横向反向或无主导 → NONE(调用方忽略,不误切)。 */
|
||||
static inline np_gest_t np_gesture_decide(int page, int down_x, int down_y, int dx, int dy)
|
||||
|
||||
Reference in new issue
Block a user