fix(tuku): 书库显式启用 MD3 容器模式并补 M4/M5 接缝注释

- P1:list_rebuild() 在 set_item_renderer/set_item_tier 后调用 meow_listview_set_container(g_lv,1),
  修正 SDK 默认 container=0(扁平满幅+分隔线)与任务要求的 MD3 圆角卡观感不一致
- P2:reader/lock/settings 桩头补接缝注释——on_create 在 meow_view_create 内运行且 activity 栈空,
  非根页控件须 lazy 到 on_enter 或 push→建→pop;lock 另注明必须由自身 view on_event 消费 SWIPE,
  否则左缘滑动绕过 PIN
- 复验:宿主测试 46/46 PASS;交叉构建静态 MIPS32r2 ELF、-Wall -Wextra 零警告
This commit is contained in:
AskaEth committed 2026-11-04 20:09:24 +08:00
1 parent bed6a95485
commit f4c21c74a1
4 files changed
+25

No files matched your search

+3
View File
@@ -408,6 +408,9 @@ static void list_rebuild(void)
meow_listview_set_vsource(g_lv, lib_count, lib_bind, NULL);
meow_listview_set_item_renderer(g_lv, 2, 1, 1);
meow_listview_set_item_tier(g_lv, 2);
/* SDK 默认 container=0(扁平满幅+分隔线);显式开 MD3 容器模式:
* 每行 surfaceContainer 圆角卡 + 行间空隙 + 卡内 tonal 选中。 */
meow_listview_set_container(g_lv, 1);
meow_listview_set_empty_text(g_lv, "No folders with PNG/JPEG/BMP");
g_scroll = meow_scroll_wrap(g_lv, 1);
+10
View File
@@ -2,6 +2,16 @@
*
* M5 在此实现「APP 启动 PIN」:lock_view_should_show() 读配置决定是否锁,
* 锁屏页负责 PIN 输入/校验后 page_pop 回书库。本批桩恒返回 0(不锁),页面仅可编译占位。
*
* 接缝注意(M5):
* ① meow_view 的 on_create 在 meow_view_create 内运行(此时 activity 栈空);本页是非根页,
* 控件必须 lazy 到 on_enter 建,或照 hello demo_init 的模式
* meow_ui_activity_push(ACT_LOCK) → 建控件 → meow_ui_activity_pop()
* (examples/hello/ui/demo/demo.c:515-522);否则 owner 绑到 ACT_LIBRARY,
* 锁屏控件会从书库页被命中(§6.1 跨页泄漏)。
* ② 锁屏必须经自身 view 的 on_event 消费 SWIPE:meow_view_dispatch_event 先于 App 的
* on_swipe(sdk/meow_ui_view.h:83-88);否则 app.c 对非 library 页的左缘滑动无条件
* page_pop,PIN 会被绕过。
*/
#include "tuku_internal.h"
+6
View File
@@ -4,6 +4,12 @@
* - 书库经 mr_reader_open_dir(path) 导航进来(app.c/library.c 不改);
* - 方向状态走 logic/reader 的 mr_reader_get/set_direction(默认 RTL)。
* 绘制走 view on_draw(注册表驱动),主题切换由 app.c 的 listener invalidate 全屏重画。
*
* 接缝注意(M4):meow_view 的 on_create 在 meow_view_create 内运行(此时 activity 栈空),
* 本页是非根页——控件必须 lazy 到 on_enter 建,或照 hello demo_init 的模式
* meow_ui_activity_push(ACT_READER) → 建控件 → meow_ui_activity_pop()
* (examples/hello/ui/demo/demo.c:515-522);否则控件 owner 绑到 ACT_LIBRARY,
* 造成跨页命中/绘制泄漏(§6.1)。
*/
#include "tuku_internal.h"
+6
View File
@@ -2,6 +2,12 @@
*
* M5 在此实现 APP 启动 PIN 等设置项;本批只落可编译桩,入口为书库 TopAppBar ⚙。
* 返回:左缘返回(app.c SWIPE_LEFT → page_pop)。
*
* 接缝注意(M5):meow_view 的 on_create 在 meow_view_create 内运行(activity 栈空);
* 本页是非根页,控件必须 lazy 到 on_enter 建,或照 hello demo_init 的模式
* meow_ui_activity_push(ACT_SETTINGS) → 建控件 → meow_ui_activity_pop()
* (examples/hello/ui/demo/demo.c:515-522);否则 owner 绑到 ACT_LIBRARY,设置控件会从
* 书库页被命中(§6.1 跨页泄漏)。
*/
#include "tuku_internal.h"