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:
1 parent
bed6a95485
commit
f4c21c74a1
4 files changed
+25
No files matched your search
@@ -408,6 +408,9 @@ static void list_rebuild(void)
|
|||||||
meow_listview_set_vsource(g_lv, lib_count, lib_bind, NULL);
|
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_renderer(g_lv, 2, 1, 1);
|
||||||
meow_listview_set_item_tier(g_lv, 2);
|
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");
|
meow_listview_set_empty_text(g_lv, "No folders with PNG/JPEG/BMP");
|
||||||
|
|
||||||
g_scroll = meow_scroll_wrap(g_lv, 1);
|
g_scroll = meow_scroll_wrap(g_lv, 1);
|
||||||
|
|||||||
@@ -2,6 +2,16 @@
|
|||||||
*
|
*
|
||||||
* M5 在此实现「APP 启动 PIN」:lock_view_should_show() 读配置决定是否锁,
|
* M5 在此实现「APP 启动 PIN」:lock_view_should_show() 读配置决定是否锁,
|
||||||
* 锁屏页负责 PIN 输入/校验后 page_pop 回书库。本批桩恒返回 0(不锁),页面仅可编译占位。
|
* 锁屏页负责 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"
|
#include "tuku_internal.h"
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,12 @@
|
|||||||
* - 书库经 mr_reader_open_dir(path) 导航进来(app.c/library.c 不改);
|
* - 书库经 mr_reader_open_dir(path) 导航进来(app.c/library.c 不改);
|
||||||
* - 方向状态走 logic/reader 的 mr_reader_get/set_direction(默认 RTL)。
|
* - 方向状态走 logic/reader 的 mr_reader_get/set_direction(默认 RTL)。
|
||||||
* 绘制走 view on_draw(注册表驱动),主题切换由 app.c 的 listener invalidate 全屏重画。
|
* 绘制走 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"
|
#include "tuku_internal.h"
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,12 @@
|
|||||||
*
|
*
|
||||||
* M5 在此实现 APP 启动 PIN 等设置项;本批只落可编译桩,入口为书库 TopAppBar ⚙。
|
* M5 在此实现 APP 启动 PIN 等设置项;本批只落可编译桩,入口为书库 TopAppBar ⚙。
|
||||||
* 返回:左缘返回(app.c SWIPE_LEFT → page_pop)。
|
* 返回:左缘返回(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"
|
#include "tuku_internal.h"
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user