7015725
|
c1643924b7
|
feat: app-style button manager page
|
2026-05-12 19:11:29 +08:00 |
|
7015725
|
c41e1479b9
|
feat: app-style ToolHub settings home
|
2026-05-12 17:31:02 +08:00 |
|
7015725
|
ea72f6b2eb
|
fix: keep ToolHub app stack state on editor return
|
2026-05-12 11:06:54 +08:00 |
|
7015725
|
a0b6b92f57
|
feat: introduce ToolHub settings page stack
|
2026-05-12 10:47:13 +08:00 |
|
7015725
|
7b7fbdf9cf
|
fix: handle system gestures for ToolHub panels
backup-before-ui-nav-refactor-20260512103314
|
2026-05-12 10:24:30 +08:00 |
|
7015725
|
5c95d04fab
|
feat: add system navigation button actions
|
2026-05-12 10:16:31 +08:00 |
|
7015725
|
0037aefcb7
|
fix: improve ToolHub startup and cleanup stability
|
2026-05-12 10:00:32 +08:00 |
|
7015725
|
523d6e2044
|
docs: update README for signed ToolHub updates
|
2026-05-09 22:57:53 +08:00 |
|
7015725
|
7ce5ebeda8
|
polish: simplify ToolHub startup output
|
2026-05-07 23:52:33 +08:00 |
|
7015725
|
726ed4465a
|
security: harden ToolHub update trust model
|
2026-05-07 23:46:46 +08:00 |
|
7015725
|
fdd896aca5
|
security: verify signed manifest before module updates
|
2026-05-07 23:25:41 +08:00 |
|
7015725
|
8f6dcdcac1
|
fix: keep docked ball on edge while dragging
|
2026-05-07 23:06:23 +08:00 |
|
7015725
|
637858ab9c
|
fix: avoid docked drag first-frame flash
|
2026-05-07 23:02:50 +08:00 |
|
7015725
|
0251419dbc
|
fix: make docked float ball drag follow finger
|
2026-05-07 22:58:36 +08:00 |
|
7015725
|
e0b774ccd9
|
fix: adapt float ball position across rotations
|
2026-05-07 22:42:06 +08:00 |
|
linshenjianlu
|
ed9521cdf5
|
fix: smooth docked float ball drag transition
|
2026-05-03 14:29:17 +08:00 |
|
linshenjianlu
|
105d1c68c5
|
fix: optimize docked float ball drag
|
2026-05-03 14:23:37 +08:00 |
|
linshenjianlu
|
caf0e0b598
|
fix(panels): 适配输入法弹出时图标选择器高度
|
2026-05-03 14:02:30 +08:00 |
|
linshenjianlu
|
22cd229da9
|
fix(panels): 输入法弹出时保持图标选择器位置
|
2026-05-03 13:57:17 +08:00 |
|
linshenjianlu
|
5321cbe6c7
|
fix(entry): 绕过 Gitea raw 缓存确保子模块热更新
|
2026-05-03 13:43:45 +08:00 |
|
linshenjianlu
|
0e7c7d6887
|
fix(panels): 修复图标选择搜索框输入法无法弹出
|
2026-05-03 13:38:48 +08:00 |
|
linshenjianlu
|
d93419eccc
|
docs: 更新 README — 移除图标分类标签、自适应布局、2026-04-21 更新记录
|
2026-04-21 11:24:18 +08:00 |
|
linshenjianlu
|
b2c7cae355
|
feat(icon picker): 移除 ShortX 图标选择器的分类标签,简化 UI 布局
- 删除新版弹出框的 tabDefs / tabsScroll / tabsRow / refreshTabs
- 简化 filterCatalog,仅保留搜索过滤
- 删除旧版 shortxPickerState 的 activeTab / tabButtons 及关联逻辑
- 删除 getShortXIconCategory / shortxTabDefs / applyShortXTabStyles
- 调整 headerH 从 136dp 降至 110dp,腾出更多图标展示空间
- 修复删除 tabs 代码时遗留的重复 addView(searchEt) 导致 IllegalStateException
|
2026-04-21 11:21:30 +08:00 |
|
linshenjianlu
|
7d879527f4
|
fix(entry): sha256File 返回值转为 JS 原生字符串,修复 Rhino 中 Java String !== 比较引用导致的 SHA256 误判
|
2026-04-21 09:59:36 +08:00 |
|
linshenjianlu
|
e89eb9a904
|
fix(entry): 关键模块失败时暴露真实错误,__out 增加核心依赖前置检查
|
2026-04-21 09:57:17 +08:00 |
|
linshenjianlu
|
83444ba683
|
fix: 回滚 th_01_base.js 到原始版本排查 getProcessInfo 未定义问题
|
2026-04-21 08:32:17 +08:00 |
|
linshenjianlu
|
ed3ee6eaf6
|
fix(ToolHub): 关键模块加载失败时不再直接 throw,而是通过 __out 返回详细错误信息
|
2026-04-21 08:24:38 +08:00 |
|
linshenjianlu
|
fee6e0bc40
|
fix(ToolHub): 增强 loadScript 错误日志输出,方便排查入口报错原因
|
2026-04-21 08:11:40 +08:00 |
|
linshenjianlu
|
c32f29fdb7
|
fix: 回滚 th_16_entry.js 修改以排查入口报错
|
2026-04-21 08:08:40 +08:00 |
|
linshenjianlu
|
9ad01b436d
|
fix: 代码审查6项修复
- 689处空catch块补全日志
- eval远程代码增加SHA256校验
- 删除ToolHubLogger重复定义
- getParentFile()增加null保护
- 提取buildButtonEditorPanelView内通用工具函数到文件级
- 修复HandlerThread/ValueAnimator资源泄漏
|
2026-04-21 07:42:23 +08:00 |
|
Hermes
|
7e23cd95a1
|
docs(readme): 更新 2026-04-20 更新记录,补充 bug 修复与代码清理详情
|
2026-04-20 23:15:43 +08:00 |
|
Hermes
|
a394684f42
|
refactor(ball): 清理悬浮球文字相关死代码
|
2026-04-20 22:40:39 +08:00 |
|
Hermes
|
068e4cdd3b
|
feat(ball-settings): 统一图标弹窗并精简球显示
|
2026-04-20 22:32:31 +08:00 |
|
Hermes
|
256a8f716b
|
fix(th_14_panels): 修复颜色弹窗确认时 recentGrid 引用异常
|
2026-04-20 21:46:14 +08:00 |
|
Hermes
|
9a0b618409
|
fix(th_14_panels): 强制应用弹窗选中的图标颜色
|
2026-04-20 21:42:30 +08:00 |
|
Hermes
|
f89ed88033
|
fix(th_14_panels): 改为独立维护 ShortX 图标颜色状态
|
2026-04-20 21:36:15 +08:00 |
|
Hermes
|
3c8c337401
|
fix(th_14_panels): 修复 ShortX 图标调色板确认后未应用颜色
|
2026-04-20 21:30:03 +08:00 |
|
Hermes
|
4ab42b274a
|
fix(color-picker): 修复颜色参数回写失败问题
根因: Rhino JS 闭包中局部变量捕获异常,onSelect 回调无法访问 inputShortXIconTint
修复:
- 将输入框引用存储到 self.state._btnEditorTintInput,绕过闭包问题
- onSelect 回调从 self.state 读取输入框,同时直接更新 targetBtn.iconTint 作为双保险
- 保存按钮优先使用 targetBtn.iconTint,回退到输入框 getValue()
|
2026-04-20 21:00:13 +08:00 |
|
Hermes
|
d03f4d677f
|
fix(color-picker): 修复颜色面板确认后无回写问题
- 确认按钮添加 try-catch,确保 onSelect 异常不阻断 closePopup
- finalColor 强制 String() 转换,避免 undefined 传入 Java setText
- onSelect 回调添加异常隔离 + invalidate() 强制刷新
- 同步两个调用点(颜色按钮 + 调色板选择按钮)
|
2026-04-20 20:51:28 +08:00 |
|
Hermes
|
86a4ed7927
|
feat: 弹出式颜色选择器 + 图标预览旁颜色入口
- showColorPickerPopup: 新增独立弹窗颜色选择器,支持最近使用颜色(8个)、RGB滑块实时调色、常用色网格、透明度滑块
- 图标预览区实时反馏,确定后自动保存到最近列表
- 在 ShortX 图标预览卡片旁新增“颜色”按钮,直接打开颜色选择器
- 更新 README 文档
- 修复调色板卡片未加入 form 的问题
|
2026-04-20 20:32:06 +08:00 |
|
Hermes
|
99547894b6
|
fix(th_14_panels): 修复ShortX图标选择器onSelect ReferenceError
删除未定义的 inputShortXIconName 引用,解除 ReferenceError 导致的回调中断,
使 updateShortXIconPreview() 能正常触发预览框刷新
|
2026-04-20 19:58:08 +08:00 |
|
Hermes
|
a39ecaf648
|
fix(th_14_panels): 修复ShortX图标选择器确认后预览框未刷新问题
- 将previewNameTv.setText提前到inputShortXIconTint.getValue()之前
- 为tintHex读取添加独立try-catch,避免异常阻断预览文本更新
- 为updateShortXIconPreview添加错误日志输出
|
2026-04-20 19:51:35 +08:00 |
|
Hermes
|
e5d540d1a5
|
fix(icon): 确定按钮绕过 guardClick 冷却,避免被其他按钮点击拦截
- createSolidButton/createFlatButton 内部使用 guardClick('ui_btn') 共享同一个 key
- 如果用户在短时间内点击了多个按钮(分类/翻页/关闭),确定按钮的点击可能被忽略
- 确定按钮现在直接创建 TextView + OnClickListener,不经 guardClick
- 添加 try-catch 捕获 onSelect 回调异常
|
2026-04-20 19:33:51 +08:00 |
|
Hermes
|
c67c0ccaf2
|
refactor(icon): 重写图标选择器为自适应布局 + WindowManager 直接创建
- 不再使用 showPopupOverlay,避免嵌套弹窗导致尺寸限制
- 弹窗宽度 = 屏幕宽度*0.92,自适应屏幕
- 列数、单元格宽度、每\u9875\u56fe\u6807\u6570\u6839\u636e\u5f39\u7a97\u5c3a\u5bf8\u81ea\u9002\u5e94\u8ba1\u7b97
- 网\u683c\u9ad8\u5ea6 = \u5c4f\u5e55\u9ad8\u5ea6*0.55,\u4fdd\u8bc1\u53ef\u89c1\u533a\u57df
|
2026-04-20 19:21:26 +08:00 |
|
Hermes
|
6e7a2fef7a
|
fix(icon): 稳定翻页图标选择器,去掉 grid.post 动态测量依赖
- 固定 4 列 20 个/页,避免首次渲染时尺寸为 0 导致空白
- 去掉 resolvePageSize 动态计算
- 翻页按钮状态正确更新
|
2026-04-20 19:10:40 +08:00 |
|
Hermes
|
e07bd7e16f
|
fix(icon): 添加资源 ID 遍历反射策略,绕过 R$drawable 混淆问题获取 ShortX 图标库
策略优先级:
1. 反射 R$drawable 类(未混淆时)
2. 直接遍历资源 ID 2131230000~2131240000(绕过混淆)
3. APK 文件扫描(最后兜底)
|
2026-04-20 19:08:01 +08:00 |
|
Hermes
|
f1b8f0a921
|
fix(icon): createRipple → createRippleDrawable 修复图标网格渲染崩溃
日志显示:Cannot find function createRipple in object [object Object]
原因:ui 对象上只有 createRippleDrawable,没有 createRipple。
修复:使用 self.ui.createRippleDrawable(card, pressed, radius) 替代。
|
2026-04-20 18:13:03 +08:00 |
|
Hermes
|
7c350724f6
|
修复图标选择器网格空白:移除 grid.post 依赖,直接使用默认尺寸渲染
问题:弹窗能打开但图标列表不显示,网格内容为空。
原因:grid.post Runnable 在后台线程中可能未执行或执行延迟。
解决:直接传入默认尺寸 (300dp x 360dp) 计算 pageSize,
然后直接调用 renderGrid(),不再等待 grid 布局完成。
|
2026-04-20 18:08:23 +08:00 |
|
Hermes
|
f13f3268c3
|
fix(icon): 添\u52a0 getShortXIconDrawable 方法和占位符,\u4fee\u590d\u56fe\u6807\u4e0d\u663e\u793a
- 补\u5145\u7f3a\u5931的 getShortXIconDrawable() 方法
- 图\u6807\u83b7\u53d6\u5931\u8d25\u65f6\u663e\u793a\u6d45\u8272\u5360\u4f4d\u7b26
|
2026-04-20 17:59:33 +08:00 |
|
Hermes
|
5036f48772
|
fix(icon): 增强诊\u65ad和\u5907\u7528\u56fe\u6807\u5217\u8868,\u4fee\u590d ShortX \u56fe\u6807\u4e0d\u663e\u793a
- APK 扫描增\u52a0 mipmap* 目\u5f55\u652f\u6301
- 增\u52a0诊\u65ad信\u606f\u663e\u793a(APK 路\u5f84、\u6587\u4ef6\u6570、\u9519\u8bef\u539f\u56e0)
- 当\u6240\u6709\u81ea\u52a8\u83b7\u53d6\u5931\u8d25\u65f6,\u56de\u9000\u5230 20 \u4e2a\u5e38\u7528\u5907\u7528\u56fe\u6807\u5217\u8868
|
2026-04-20 17:56:40 +08:00 |
|