launcher(M7.0b): 电源菜单/Now Playing 控件化 + SDK 主题薄壳 + i18n 抽取(试点迁移)

M7 整体 MD3 重写试点(M7.0 定两隔离页,只动 patch_v2/meow_launcherd/):
- 电源菜单 power_menu.c:圆角卡→meow_card;6 圆钮→meow_iconbtn(回HiBy=ARROW_BACK、
  取消=CLOSE;sb_icons 表在位图)+ meow_widget_custom_create(关机/重启/升级/锁定=pm_icons
  专有,圆形命中自定义);命中/选中/按压态全走 SDK(meow_widget_hit/set_state/draw),
  触摸按下置 PRESSED、抬起清(pm_blend 按主题混合状态层);py 手动驱动控件(哨兵 activity
  0x50 push/pop,owner 闸门使命中生效)。
- Now Playing now_playing.c:进度条→meow_progress;播放控制三钮→meow_iconbtn(SKIP_PREV /
  PLAY_ARROW|PAUSE同位双钮按状态只画其一/ SKIP_NEXT);命中走 meow_widget_hit;封面
  (meow_img contain) 与歌名/艺术家 (meow_font) 保留;哨兵 activity 0x51 push/pop。
- 主题薄壳 font_theme.c:s_ui_theme() 改读 SDK meow_theme_export()(单一权威,9 字段映射
  §8.1.5),退役 launcher 自持 4 套静态色板(#if 0 回退位)。
- i18n 抽取:两页硬编码中文案改 meow_str(新增 meow_str_zh 辅助:SDK 内嵌表无 launcher 域串
  时回退中文默认,TF 覆盖表/后续并入 SDK 内嵌后自动换语)。
- 会话骨架不动:物理键语义(单击息屏/3s 菜单/8s 强关/左缘返回/横划 NP)与两页进入退出/事件流
  未改,只替换「怎么画/怎么命中」;旧绘制函数 #if 0 留回退位。
- 验证:新增 test_power_menu_widgets / test_now_playing_widgets 宿主测试(圆形命中/owner+enabled
  闸门/选中按压态像素/主题四态 MD3+MIUIx×明暗 渲染 + meow_theme_export 九字段)全 PASS;
  launcher 全量宿主回归(lock_screen/overlay_gate/utf8_name/media/depends/ams_start/bgplay/
  settings_brightness/netmgr_ipc/vol_ramp_jack/notif_panel/notif_tf/lock_render + SDK theme_export/
  iconbtn)全 PASS;交叉 -Wall -Wextra 0 warning。新 meow_launcherd md5 94a33b7b。
This commit is contained in:
AskaEth committed 2026-09-02 17:25:21 +08:00
1 parent a8c51be1fc
commit d8241cd2d6
7 files changed
+774 -79

No files matched your search

+28
View File
@@ -741,6 +741,11 @@ void meow_font_scan_presets(int verify_sha)
}
#if 0 /* ================================================================
* M7.0b 主题退役:launcher 不再自持 4 套静态色板 —— s_ui_theme() 改读 SDK
* meow_theme_export()(单一权威:MD3/MIUIx × 明暗 由 SDK meow_theme 解析)。
* 本块保留作回退位(删除 #if 0 行即可恢复旧手绘多色板路径)。
* ================================================================ */
/* MD3 tonal palette(565 参考值见 MD3_UI_SPEC §1;此处存 24-bit RGB,#hex) */
static const meow_ui_theme_t meow_ui_theme_dark = {
0x141824, 0x1E2436, 0x263038, 0x4A6A9A, 0xFFFFFF,
@@ -817,4 +822,27 @@ const meow_ui_theme_t *s_ui_theme(void)
if (have_manual && v == 1) return light;
return dark;
}
#endif /* M7.0b 退役:launcher 4 套静态色板 → SDK meow_theme 单一权威 */
/* M7.0b 主题薄壳:launcher 主题 = SDK meow_theme_export()(MD3/MIUIx × 明暗 由 SDK 解析,
* launcher 侧不再读 ui.style/display.theme 自行选板)。只做一次拷贝 + 9 字段映射到 launcher
* 绘制便利结构 meow_ui_theme_t(§8.1.5)。返回静态缓存(调用方立即使用,不长期持有)。
* 注:meow_theme_export() 在 g_loaded==0 时先读 settings.conf,宿主/脱机也可靠。 */
const meow_ui_theme_t *s_ui_theme(void)
{
meow_theme th;
static meow_ui_theme_t s;
meow_theme_export(&th);
/* 映射:SDK meow_theme → launcher meow_ui_theme_t(9 字段,§8.1.5) */
s.surface = th.surface;
s.surface_variant = th.surfaceVariant;
s.surface_container = th.surfaceContainer;
s.primary = th.primary;
s.on_surface = th.onSurface;
s.on_surface_variant = th.onSurfaceVariant;
s.outline = th.outline;
s.error = th.error;
s.surface_tint = th.surfaceTint;
return &s;
}