Skip to content

feat: 引入 MyLuaFileManager 并重构 LuaFragment 容器注册#300

Open
ZL114514 wants to merge 4 commits intomainfrom
codex/create-myluafilemanager-and-refactor-fragment-creation
Open

feat: 引入 MyLuaFileManager 并重构 LuaFragment 容器注册#300
ZL114514 wants to merge 4 commits intomainfrom
codex/create-myluafilemanager-and-refactor-fragment-creation

Conversation

@ZL114514
Copy link
Copy Markdown
Collaborator

@ZL114514 ZL114514 commented Apr 6, 2026

Motivation

  • 为每个 Lua Fragment 提供全局唯一 ID 与元数据注册以便跨进程/跨上下文定位其容器、类型和 Lua 路径,从而统一由 home.lua 的 FragmentManager 来决定并排或重叠的展示布局。
  • 将 Fragment 根容器从简单 FrameLayout 替换为 MaterialCardView 以便在宿主层更灵活地控制容器样式与动画锚点。

Description

  • 新增 MyLuaFileManagerapp/src/main/java/com/hydrogen/MyLuaFileManager.java),提供唯一 ID 生成、内存级 ConcurrentHashMap 注册/查找以及通过 SharedPreferences 的元数据持久化(typecontainerIdluaPath)。
  • 重构 MyLuaFileFragmentapp/src/main/java/com/hydrogen/MyLuaFileFragment.java),将根容器改为 MaterialCardView,使用 View.generateViewId() 生成容器 ID,生成 mFragmentId 并在 onAttach 注册、onDestroy 注销;新增 setFragmentTypegetFragmentIdStringgetFragmentType 接口并在注册时将记录写入 MyLuaFileManager
  • 修改 Lua 层创建流程(app/src/main/assets_bin/mods/muk.lua)在构建 MyLuaFileFragment 后调用 .setFragmentType(f) 并将返回的 fragment ID 写入宿主容器的 tag(R.id.fragment_container)。
  • home.luaapp/src/main/assets_bin/home.lua)添加 获取LuaFragment记录(fragmentId) 辅助函数以便通过 ID 获取 typecontainerIdluaPathcontainerfragment 等信息。

Testing

  • 尝试运行 ./gradlew :app:compileDebugJavaWithJavac 进行静态编译验证,命令在当前环境失败,报错为 Unsupported class file major version 69,属于本地 JDK/Gradle 与编译产物版本不匹配导致的环境问题(非代码逻辑错误)。
  • 其余改动已在代码库中提交并生成变更(已提交)。

Codex Task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant