TRIP and HKLHaoBin
6f9af89583
release: OpenLess 2.0.0-Beta.4+build.20260930 ( #1126 )
...
Integrate ASR/Omni fixes, API Route, Android IME and confirmation-based vocabulary learning. Complete settings transitions and macOS single-item credential storage. Synchronize all application versions to 2.0.0-Beta.4+build.20260930.
Integrated PRs: #1116 , #1120 , #1121 , #1123 , #1124 , #1067 and #1128 . Linux #1117 remains independent and is excluded from automatic release.
Validated: full cross-platform CI, 18 UI motion cases, 112 frontend test files, 1245 Core tests (1 ignored) and 572 macOS native tests.
Co-authored-by: HKLHaoBin <we3q@qq.com >
2026-09-30 20:32:53 +08:00
16c3f841b5
chore(release): prepare 2.0.0-Beta.2 build 20260924
...
Integrate the reviewed 2.0 PRs and local fixes from 03136853.
Preserve the verified subtitle behavior and model/runtime corrections.
Keep the numeric Beta tag compatible with released clients while exposing
the date as application build metadata.
Co-authored-by: DepengWang <2818245+DepengWang@users.noreply.github.com >
Co-authored-by: HKLHaoBin <we3q@qq.com >
Co-authored-by: Nahida <1139500183@qq.com >
Co-authored-by: TRIP <1933142963@qq.com >
Co-authored-by: chyuwei <weichangyuwcy@gmail.com >
Co-authored-by: leonoxo <leonoxo@gmail.com >
Co-authored-by: tayir <arnoldincredible@126.com >
2026-09-24 17:28:24 +08:00
sim
4519f19c92
style(app): 统一前端与平台源码格式
2026-09-08 14:35:28 +08:00
浩彬(^-^) and Cursor
ec33bd5dd2
fix(android): 修复小屏大字号下的设置与风格页面排版 ( #960 ) ( #983 )
...
* fix(android): 修复移动端设置与润色页排版及底栏遮挡 (#960 )
设置弹窗 z-index 低于底栏导致底部控件无法点击;润色风格/市场页与 Android 权限区补齐 mobile 布局。
Co-authored-by: Cursor <cursoragent@cursor.com >
* feat(ui): 通用设置新增易读布局,大字号小屏防溢出换行
新增 stackedRowLayout 偏好与 useLayoutStack;设置外观区可手动开启同行控件换行,覆盖老人机等极限场景。关联 #960。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): 安全查询悬浮窗权限,修复 HyperOS canDrawOverlays 闪退
WebView IPC 线程不再直接 JNI 调用 Settings.canDrawOverlays,改走 Kotlin 主线程桥接并捕获异常,避免 Redmi/HyperOS 在权限轮询时崩溃。
Co-authored-by: Cursor <cursoragent@cursor.com >
* feat(ui): 保守排版开关与易读布局 min-width 增强
新增 conservativeLayout 偏好与 ol-conservative-scope 单列满宽规则;易读布局补充 min-width 换行;设置与主要页面支持双开关独立并存。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): can_draw_overlays JNI 生命周期以通过 Android CI 编译
为 env 与 context 绑定同一 lifetime,满足 call_static_bool_with_context_class 的借用约束。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): 恢复 AccessibilityService 对 Settings.Secure 的 import
isEnabled 仍使用 Settings.Secure 查询无障碍状态,与 canDrawOverlays 移除的 import 无关。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(ui): 将易读/保守排版开关独立为「布局」区块并置顶
原开关藏在「外观」卡片深处不易发现;现于设置→通用页录音输入下方展示独立「布局」卡片。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(ui): 统一易读与保守排版布局规则
---------
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-23 00:22:21 +08:00
浩彬(^-^) and Cursor
ead09481bd
feat(android): 可选 Shizuku 与三层跨应用粘贴回退 ( #932 )
...
* feat(android): add optional Shizuku accessibility recovery path
Integrate best-effort OpenLessAccessibilityService recovery via Shizuku UserService with safe rollback, manifest/Gradle scaffolding, JNI bridge, settings UI, and contract tests.
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): add primary constructor for Shizuku UserService Stub
Kotlin requires an explicit supertype initializer when extending AIDL Stub; fixes Gradle compile error on CI.
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): replace accessibility heartbeat with IPC paste results
Remove SharedPreferences cross-process heartbeat gating, use structured PASTE/PING IPC with safe retry rules, tighten editable target validation, and fix Shizuku manifest attribute merging for mixed-quote providers.
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): use literal const values in accessibility command receiver
Kotlin const val cannot reference enum codes; fixes release APK compile.
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): 修复无障碍组件短名与全名匹配误判
Settings.Secure 常以 pkg/.Class 存储服务列表,主检测路径改用 ComponentName 规范化比较,避免 enabled=false 误报未授权;同步 Rust JNI 路径并补齐测试。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): 为 JNI 调用的无障碍检测方法添加 @Keep
Release 构建中 R8 会剥离仅由 JNI 反射调用的 pingAccessibilityProcess,导致 NoSuchMethodError 与 operational=false 误报;同步保护 isEnabled 并补充契约测试。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): 恢复无障碍粘贴的可编辑目标回退查找
粘贴失败日志为 NO_FOCUSED_EDITOR:过严的 isFocused 校验与移除树遍历导致找不到输入框。恢复 FOCUS_ACCESSIBILITY、宽松焦点匹配与 findEditableInTree 回退,并保留严格缓存校验。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): 跨窗口扫描与缓存优先修复粘贴目标查找
微信等场景下 rootInActiveWindow 非输入窗口导致 NO_FOCUSED_EDITOR;改为缓存优先、遍历全部无障碍窗口,并加深树搜索。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): 识别非 isEditable 的粘贴目标节点
微信等 App 不向无障碍暴露 isEditable;扩展为 EditText/ACTION_PASTE/ACTION_SET_TEXT 目标,并订阅文本变更事件以预热缓存。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): 三层粘贴回退(无障碍 → Shizuku → 剪贴板)
无障碍失败后尝试 Shizuku 注入 KEYCODE_PASTE,再回退剪贴板;精简 Tier1 为 findFocus + ACTION_PASTE。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): 粘贴结果校验与 Shizuku processNameSuffix
ACTION_PASTE 返回 true 但文本未写入时降级为 PASTE_REJECTED 并走 Tier2;修复 UserService 绑定 NPE;Tier1 成功后跳过 Shizuku。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): 恢复无障碍可编辑目标查找以修复微信等应用粘贴
aaa3fbf2 将 Tier1 简化为 findFocus 导致微信等应用 PASTE_REJECTED;恢复跨窗口/树扫描与焦点缓存,保留粘贴结果校验与 Promise.allSettled 容错。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): 通过 IPC 传递粘贴文本修复后台剪贴板读取被拒绝
无障碍子进程在应用未聚焦时无法读剪贴板,导致 Tier1 直接 PASTE_REJECTED;主进程将听写文本经 EXTRA_PASTE_TEXT 传入粘贴流程。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): Tier2 粘贴改用 Shizuku.newProcess 绕过 MTK UserService 崩溃
联发科/小米 ROM 上 UserService 进程在 LoadedApk.makeApplicationInner 因 procName 为 null 而 NPE;粘贴键注入优先走 Shizuku.newProcess,失败再回退 UserService。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): Tier2 粘贴改用 Shizuku daemon UserService
newProcess 为私有 API;粘贴键注入改走 daemon(true) 绑定,避免 MTK 上 :shizuku 子进程 Application NPE。
Co-authored-by: Cursor <cursoragent@cursor.com >
* test(android): 修正 daemon 粘贴契约断言
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): daemon 粘贴绑定补全 processNameSuffix
Shizuku UserServiceArgs 要求 suffix 非空;daemon(true)+suffix=paste 避免此前 null NPE 与 MTK :shizuku 子进程崩溃。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): Tier2 粘贴经反射调用 Shizuku.newProcess
MTK 上 UserService 子进程仍触发 LoadedApk NPE;粘贴键注入优先反射 newProcess 执行 input keyevent 279,UserService 作回退。
Co-authored-by: Cursor <cursoragent@cursor.com >
* chore(android): 移除粘贴调试日志
微信等应用三层粘贴回退已在真机验证通过,清理 DBG-21a66f/DBG-53a00d 临时 instrumentation。
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): 修复 CI 单元测试在无 Robolectric 下失败
ComponentIds 改为纯 Kotlin 规范化(对齐 Rust);isValidServiceComponent 拒绝首尾空白;Target 测试改用 action id 常量。
Co-authored-by: Cursor <cursoragent@cursor.com >
---------
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-07 21:50:09 +08:00
HKLHaoBin
1ea467a001
feat(android): port Android APK runtime onto beta
2026-06-12 18:13:12 +08:00