59 Commits

Author SHA1 Message Date
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
Hermes
ec64ef07d9 fix(icon): 宽松 ShortX 图标库匹配规则,修复图标不显示问题
- 将 APK 扫描正则从 ic_remix_ 放宽到所有 ic_ 开头的图标
- 反射获取 R 时接受所有 ic_ 开头的字段,不再限\u5b9a ic_remix_
- 弹\u7a97\u9009\u62e9\u5668\u589e\u52a0\u9519\u8bef\u63d0\u793a\u548c\u5f3a\u5236\u91cd\u8bd5\u673a\u5236
2026-04-20 17:48:14 +08:00
Hermes
f2714d5101 feat: 调色板改为弹出式 UI,支持图标颜色预览
- 按钮编辑器中调色板改为弹出窗口,不再嵌入表单
- 添加 showColorPickerPopup(),支持图标实时预览着色效果
- 包含 21 色快捷网格、RGB 滑块、透明度滑块
- 选中后自动填回表单
2026-04-20 17:40:04 +08:00
Hermes
273c299ea0 feat: ShortX 图标选择器改为弹出式 UI
- 按钮编辑器中 ShortX 图标选择改为弹出窗口,不再嵌入表单
- 添加 showPopupOverlay() 通用弹窗框架,支持搜索/分类/分页/点选
- 点击选择图标按钮直接打开弹窗,选中后自动填回表单
2026-04-20 17:35:04 +08:00
Hermes
c68f0d1209 fix(ui): 修复 GridLayout.LayoutParams 构造函数参数错误导致设置面板打不开
- GridLayout.LayoutParams 不支持 (width, height) 双参数构造
- 改用无参构造 + 分别设置 width/height 属性
2026-04-20 16:34:19 +08:00
Hermes
b5e7695d1a fix(ui): 将设置面板的图标和颜色选择器改为内嵌式,修复 AlertDialog 在后台无法弹出问题
- ball_shortx_icon: 使用内嵌 ListView + 搜索框替代 AlertDialog
- ball_color: 使用内嵌调色板网格 + 输入框替代 AlertDialog
- 添加展开/收起按钮,与按钮编辑器的交互模式保持一致
- 移除所有 AlertDialog.Builder 调用(在 ShortX 后台服务环境无法显示)
2026-04-20 16:24:20 +08:00
Hermes
f2c80112c1 feat(settings): 设置面板改造,悬浮球图标支持 ShortX 选择器与调色板
- 从设置页面移除“执行与查看器”、“悬浮球文字/大小/颜色”设置项
- BALL_ICON_RES_NAME 改为 ball_shortx_icon 类型,支持弹窗列表+搜索选择 ShortX 图标
- BALL_ICON_TINT_HEX 改为 ball_color 类型,支持调色板选色+手动输入
- 移除无用的 BALL_ICON_PKG 通用文本输入(仅保留 file 路径输入作为兜底)
- 同步更新 README Changelog
2026-04-20 16:10:17 +08:00
Hermes
2bbe9c3609 docs: 添加更新记录(Changelog)
- 按天归档,同一天多次提交合并为一条
- 记录2026-04-20全部更新:自适应布局、分页图标选择器、默认收起、返回信息中文化
2026-04-20 15:26:03 +08:00
Hermes
26e1ebefef docs: 更新 README 图标选择器交互说明
- 取消“切到 ShortX 图标时自动展开图标库”的描述
- 增加“默认收起,点击展开按钮后手动打开”的说明
- 补充选中图标后自动回填并收起的交互要点
2026-04-20 15:19:22 +08:00
Hermes
b61c27ee85 fix(panels): 图标库和调色板默认收起
- 调色板展开状态不再从 saved state 恢复,默认始终收起
- 调色板 body 初始可见性设为 GONE,避免创建时显示
- 移除切换到 ShortX 图标模式时自动展开图标库的逻辑
- 保留展开/收起按钮,用户手动点击才展开
2026-04-20 14:55:08 +08:00
Hermes
ffbbcf647f feat(panels): 常用颜色改为自适应布局,图标选择器分页优化
- 常用颜色网格从固定 4x5 改为根据屏幕宽度自动计算列数
  (与 ShortX 图标列表一致的 adaptive layout)
- 图标浮窗选择器改为翻页模式,按当前可见容量动态分页
- 修复图标选择器关闭后无法再次打开的问题
- 入口返回信息增加中文 msg/syncMsg 及 updatedModules 字段
- 同步更新 README 文档
2026-04-20 14:48:01 +08:00
Hermes Bot
fbb8b6e682 refactor: 常用颜色按色相自动排序 2026-04-20 14:37:37 +08:00
Hermes Bot
4a9aff570c feat: 图标调色板增加 RGB 调色器 2026-04-20 14:26:38 +08:00
Hermes Bot
8d02291a27 feat: 升级图标调色板并移除名称输入 2026-04-20 14:16:09 +08:00
Hermes Bot
4a91b9631f feat: 按钮图标颜色增加快捷色板 2026-04-20 13:55:36 +08:00
Hermes Bot
313688275b refactor: 图标选择器按宽度自动排列 2026-04-20 13:45:37 +08:00
Hermes Bot
6bf2be1bf1 fix: 同步入口 ToolHub.js 与本地版本 2026-04-20 13:38:03 +08:00
Hermes Bot
96275e8028 feat: 优化图标分页选择器与中文返回信息 2026-04-20 13:34:28 +08:00
Hermes Bot
2022c2d1c1 feat: 图标选择器翻页+入口中文摘要
- ToolHub.js: __out 返回添加中文摘要字段(状态/按钮数量/面板布局/日志/崩溃处理/线程模型等)
- th_07_shortcut.js: showIconPicker 改为翻页模式,动态计算每页图标数
- th_07_shortcut.js: 修复关闭后再点击打不开的问题(api.show 不提前设置 state.hidden)
2026-04-20 13:19:31 +08:00
Hermes Bot
034ed61e22 feat: ShortX 图标库选择器 + 入口更新信息返回
- th_07_shortcut.js: 新增 showIconPicker() 多宫格自适应图标选择器
- th_14_panels.js: 按钮编辑器内联图标库改为浮窗选择器
- ToolHub.js: 返回 JSON 新增 updates/errors 字段
2026-04-20 13:07:30 +08:00
root
9ef8bdae40 refactor: replace version-based update with HEAD Last-Modified check
- Remove MODULE_MANIFEST and getFileVersion()
- Add getRemoteLastModified() via HTTP HEAD
- Add getLocalLastModified() / saveLocalLastModified() caching to .lm_* files
- loadScript now checks remote Last-Modified against local cache on every run
- File missing -> download; File exists + remote newer -> download; otherwise skip
- Network failure gracefully falls back to local file
- Entry file no longer needs version bumps when submodules update
2026-04-20 12:41:13 +08:00
root
9b07a888a5 chore: bump version for shell refactor (1.0.0 -> 1.0.1)
- th_01_base.js: 1.0.1 (Base64 decode comment cleanup)
- th_10_shell.js: 1.0.1 (remove Action-first path, keep only broadcast bridge)
- th_11_action.js: 1.0.1 (toast msg update)
- ToolHub.js: MODULE_MANIFEST synced
2026-04-20 12:32:55 +08:00