NPatch-v1.0.0-554-release_opt.apk
4.7 MB
refactor: 拆分 NewPatchScreen 相關功能邏輯並優化介面
NewPatchScreen 只保留 UI 邏輯,其餘功能分配給 DoPatchBody 和 PatchOptionsBody
fix: 修復模組作用域不會被清除導致的異常
NewPatchScreen 只保留 UI 邏輯,其餘功能分配給 DoPatchBody 和 PatchOptionsBody
fix: 修復模組作用域不會被清除導致的異常
❤13👎8😢2🏆2🔥1🥰1
我很高兴地宣布,NPatch v1.0.0 版本生命周期已圆满落幕。为集中资源优先推进更高价值的核心项目(翻译:0.8.x 懒得维护已经放生) ,项目正式开启全新发展篇章。
同时 v0.8.0 的代码已全部推送至开源仓库,如果您对此感到兴趣,可以自行 Fork 修复。
在五一假期之际,我们将正式发布 v1.0.1 版本。目前底层 API 仍沿用 Legacy 架构,但已成功攻克大量难题,解决了过往诸多棘手的核心阻碍。
后续开发重心将全面转向 libxposed api101 的适配与落地,相关核心代码现已进入草稿编写阶段。让我们一同期待架构革新、性能优化与体验全面升级的全新未来✨
同时 v0.8.0 的代码已全部推送至开源仓库,如果您对此感到兴趣,可以自行 Fork 修复。
在五一假期之际,我们将正式发布 v1.0.1 版本。目前底层 API 仍沿用 Legacy 架构,但已成功攻克大量难题,解决了过往诸多棘手的核心阻碍。
后续开发重心将全面转向 libxposed api101 的适配与落地,相关核心代码现已进入草稿编写阶段。让我们一同期待架构革新、性能优化与体验全面升级的全新未来
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👻6❤2
NPatch-v1.0.0-565-release.apk
4.6 MB
更新的内容有点多 (看版本号也看得出来吧)
有问题请及时反馈,这条我都没在群里听人说过 https://t.me/NPatch_HS/108691
有问题请及时反馈,这条我都没在群里听人说过 https://t.me/NPatch_HS/108691
❤8🔥5👍3
ONPatch
NPatch-v1.0.0-565-release.apk
请记得进行重新修补。如有问题,可启用日志输出,并发送位于
下的最新日志。在最新版本中,与 np 启动相关的日志也将存放于此。
/sdcard/Android/media/com.baidu.tieba/npatch/log/
下的最新日志。在最新版本中,与 np 启动相关的日志也将存放于此。
👍5
Forwarded from GitHub
🔨 1 new commit to NPatch-dev:miuix:
f7af018: feat: 實作應用內語言切換功能
- Add language preference storage in Configs
- Override attachBaseContext in LSPApplication and MainActivity to apply saved locale
- Add Language dropdown selector in Settings screen with 40+ language options
- Support system default (follow system) and explicit language selection
- Restart activity on language change to apply new locale immediately by NkBe
f7af018: feat: 實作應用內語言切換功能
- Add language preference storage in Configs
- Override attachBaseContext in LSPApplication and MainActivity to apply saved locale
- Add Language dropdown selector in Settings screen with 40+ language options
- Support system default (follow system) and explicit language selection
- Restart activity on language change to apply new locale immediately by NkBe
🔥2👍1
NPatch-v1.0.0-567-release.apk
4.6 MB
i18n: Updated and completed multi-language translations (log output feature)
- Fixed English, zh-rCN, and zh-rTW log output descriptions, clearly including startup logs and module logs
- Completed missing translations for 12 commonly used languages: Français, Italiano, Deutsch, Español, Русский Português, Português (Brasil), Nederlands, Polski, Türkçe 日本語, 한국어
- Fixed English, zh-rCN, and zh-rTW log output descriptions, clearly including startup logs and module logs
- Completed missing translations for 12 commonly used languages: Français, Italiano, Deutsch, Español, Русский Português, Português (Brasil), Nederlands, Polski, Türkçe 日本語, 한국어
NPatch-v1.0.0-568-release.apk
4.7 MB
feat: Implement in-app language switching feature
- Add language preference storage in Configs
- Override attachBaseContext in LSPApplication and MainActivity to apply saved locale
- Add Language dropdown selector in Settings screen with 40+ language options
- Support system default (follow system) and explicit language selection
- Restart activity on language change to apply new locale immediately by NkBe
- Add language preference storage in Configs
- Override attachBaseContext in LSPApplication and MainActivity to apply saved locale
- Add Language dropdown selector in Settings screen with 40+ language options
- Support system default (follow system) and explicit language selection
- Restart activity on language change to apply new locale immediately by NkBe
👍10🔥3🎉1🍌1😡1
NPatch-v1.0.0-569-release.apk
4.7 MB
更新內容自己猜🙏
Please open Telegram to view this post
VIEW IN TELEGRAM
😡27🤔9🔥3🎉1🍌1
Forwarded from GitHub
🔨 1 new commit to NPatch-dev:miuix:
fe7d753: fix: 修復 NewPatchScreen 中 patch_embed_modules 點擊後 dialog 不顯示的問題
問題描述:
點擊「新增嵌入模組」(patch_embed_modules) 後,選擇對話框 (SuperDialog) 不顯示,
無法從儲存空間或應用列表選擇嵌入的 Xposed 模組。
調試過程與嘗試的修復:
1. 對齊 upstream 7723mod/NPatch,將 patch_embed_modules 恢復為 SelectionItem 的 extraContent 內的 TextButton
2. 修復 miuix TextButton 不支持 textAlign 參數的編譯錯誤
3. 嘗試多種 SuperDialog 顯示方式:
- 使用新 API (show: Boolean) + if 條件包住
- 使用 deprecated API (show: MutableState<Boolean>)
- 設定 renderInRootScaffold = false
以上方式均無效
根本原因:
通過添加日誌發現:
- onAddEmbed lambda 確實被調用
- showSelectModuleDialog.value 成功設為 true
- SuperDialog 確實進入了 composition (有 "Entering SuperDialog composition" 日誌)
- 但用戶看不到 dialog
核心問題是 composition scope 隔離:
showSelectModuleDialog state 在 Scaffold 的 content slot 內被修改
(在 PatchOptionsBody 的 onAddEmbed lambda 中設值),但觀察該 state 的
if (showSelectModuleDialog.value) 條件在 Scaffold 外面。miuix Scaffold 的
content slot 是獨立的 @Composable lambda,state 在 slot 內改變時,不保證
能驅動 slot 外部的部分重組,導致 if 條件的 recomposition 沒有被觸發。
最終解決方案:
將 if (showSelectModuleDialog.value) { SuperDialog(...) } 從 Scaffold 外部
移入 Scaffold content 的 Box 內,與 PatchOptionsBody 處於同一個
composition 作用域。這樣 state 的修改和觀察在同一個 composable 函數內,
確保 recomposition 能正確傳播。
變更檔案:
- PatchOptionsBody.kt: 將 patch_embed_modules 恢復為 extraContent 內的
Text + Modifier.clickable (繞過 miuix TextButton 的事件傳遞問題)
- NewPatchScreen.kt: 將 SuperDialog 條件判斷移入 Scaffold content 內部,
移除不必要的 debug 日誌,清理初始化流程 (移除 initHandled flag)
Co-Authored-By: Claude <81847+claude@users.noreply.github.com> by NkBe
fe7d753: fix: 修復 NewPatchScreen 中 patch_embed_modules 點擊後 dialog 不顯示的問題
問題描述:
點擊「新增嵌入模組」(patch_embed_modules) 後,選擇對話框 (SuperDialog) 不顯示,
無法從儲存空間或應用列表選擇嵌入的 Xposed 模組。
調試過程與嘗試的修復:
1. 對齊 upstream 7723mod/NPatch,將 patch_embed_modules 恢復為 SelectionItem 的 extraContent 內的 TextButton
2. 修復 miuix TextButton 不支持 textAlign 參數的編譯錯誤
3. 嘗試多種 SuperDialog 顯示方式:
- 使用新 API (show: Boolean) + if 條件包住
- 使用 deprecated API (show: MutableState<Boolean>)
- 設定 renderInRootScaffold = false
以上方式均無效
根本原因:
通過添加日誌發現:
- onAddEmbed lambda 確實被調用
- showSelectModuleDialog.value 成功設為 true
- SuperDialog 確實進入了 composition (有 "Entering SuperDialog composition" 日誌)
- 但用戶看不到 dialog
核心問題是 composition scope 隔離:
showSelectModuleDialog state 在 Scaffold 的 content slot 內被修改
(在 PatchOptionsBody 的 onAddEmbed lambda 中設值),但觀察該 state 的
if (showSelectModuleDialog.value) 條件在 Scaffold 外面。miuix Scaffold 的
content slot 是獨立的 @Composable lambda,state 在 slot 內改變時,不保證
能驅動 slot 外部的部分重組,導致 if 條件的 recomposition 沒有被觸發。
最終解決方案:
將 if (showSelectModuleDialog.value) { SuperDialog(...) } 從 Scaffold 外部
移入 Scaffold content 的 Box 內,與 PatchOptionsBody 處於同一個
composition 作用域。這樣 state 的修改和觀察在同一個 composable 函數內,
確保 recomposition 能正確傳播。
變更檔案:
- PatchOptionsBody.kt: 將 patch_embed_modules 恢復為 extraContent 內的
Text + Modifier.clickable (繞過 miuix TextButton 的事件傳遞問題)
- NewPatchScreen.kt: 將 SuperDialog 條件判斷移入 Scaffold content 內部,
移除不必要的 debug 日誌,清理初始化流程 (移除 initHandled flag)
Co-Authored-By: Claude <81847+claude@users.noreply.github.com> by NkBe
🤔9
這就是開源維護者最真實的寫照—— 一邊在群組裡血壓飆升,一邊默默打開 Android Studio 準備接 Logcat 開始 Debug。若問除了熱愛還有什麼收穫?沒錢、沒假、沒收益,除了那點卑微的開發者情懷,收穫的大概只有日漸後移的髮際線和解開 Bug 瞬間的虛無感。
🕊31😭17🔥2🎉1👻1