Skip to content

Latest commit

 

History

History
53 lines (33 loc) · 6.04 KB

symbol-swap-glass-clipboard-20261008.md

File metadata and controls

53 lines (33 loc) · 6.04 KB

符号页直接换页、透明度叠加与剪贴板修复(1.9.14)

1.9.13 由用户自行安装到平板 SM-X800 后反馈:符号页打开快、关闭要“点半天”;固定模式看不出透明;iOS 主题下符号页黑底、调节界面开关看不出状态;“清空”提示在上、下拉时文字却从下面出来;拖透明度时其他控件没隐藏、重置/确认只有图标。随后又报告剪贴板菜单闪退、同步失败提示整夜不停,以及语音设置页被改成按钮式切换。本轮按兼容修复升为 1.9.14 / 20261106。

符号页“点半天”

用户在平板上按平时方式连点 26 键与九键的“!@#/中文”和“123”,Agent 同时录屏、记录触摸事件与输入法日志(.codex-artifacts/round-20261008b/user-repro/,录屏视频已删除,只留统计与拼图)。触摸与画面用单调时钟对齐:

1.9.13 抬手到画面开始变化(中位 / p90) 下一次点击前无反应
数字页 123 24 / 31ms 0 次
符号页打开 81 / 94ms 65 次中 33 次
符号页关闭 65 / 72ms 28 次中 2 次

根因:符号页走工具覆盖层,开合各有 240/180ms 揭幕动画,动画期间 KeyboardPanelReveal 在整个区域盖一层吞点击的遮罩;数字页是直接换页。被吞的点击集中在刚关闭后的收起动画期。

修复:进入或离开符号页时覆盖层动画用 snap(),与数字页一样直接换页;菜单、剪贴板、表情等工具面板保留原展开动画。1.9.14 Debug 上用 adb 以约 110ms 间隔连点 12 次:关闭 5~17ms、打开约 45ms 开始换页;1 次点击在面板出现前按下而丢失。

同一次录屏还记到第一段快打的引擎排队:64 次按键总延迟中位 61ms、p95 243ms,单键引擎处理 100~320ms,属于连续输入迟滞问题,本轮未处理。

透明度与玻璃

  • 固定模式下宿主会按 contentTopInsets 缩到键盘上方,大多数应用在键盘后面只有空白窗口底色;只有把内容画到输入法后面的应用(如 CyIME 设置页)才能透出文字。这是 Android 输入法的行为,不是本轮能改的。
  • 玻璃模糊子窗口原来只读取模糊半径,与整块键盘透明度无关,调低透明度后透出的仍是满强度模糊。现在模糊窗口的 alpha 跟随键盘透明度(含调节预览),由系统合成器按比例淡出模糊,两种透明相乘。平板实测:拖低透明度时键盘边缘后面设置页的“切换方式”由模糊变清晰。
  • 渐变/图片主题在不开玻璃时,面板(符号、菜单、剪贴板、表情等)原来铺 keyboardBgColor,“iOS 渐变”继承黑白主题,深色底色是纯黑。现在这类主题的面板改画主题背景,纯色主题不变。未在设备上切换主题核对(避免改动用户主题设置)。

调节界面与删除键

  • 悬浮、分体改为开关:文字固定为功能名,开启时用 onSurface 反色填充并带 selected 语义;重置、确认补文字。平板截图:分体开启为白底黑字。
  • 手指按住透明度滑条时只留滑条,边框、遮罩、按钮行和滑条底板都隐藏,按钮行保留占位避免滑条在手指下移动;松手后显示返回/完成。平板截图已核对。
  • 删除键默认方向下“下拉 = 清空”,预览原来从键的下方出现。现在预览从原提示所在一侧移入;第一次修改后颜色也随之对调(清空蓝、撤回红),平板截图发现并改为按预览来源取色。最终平板截图:下拉为红色“清空”自上移入,上推为蓝色“撤回”自下移入。

剪贴板

  • 长按菜单与“⋯”菜单闪退:CompactActionMenu 无条件调用 BackHandler,输入法窗口没有返回键分发器,抛 IllegalStateException(平板崩溃日志 22:47:12)。改为与调节界面、拼音编辑面板一致,仅在存在分发器时注册。原设备检查在普通 Activity 中运行,未覆盖输入法窗口;修复后未在设备打开剪贴板菜单核对(剪贴板是用户私人内容),待用户确认。
  • 同步失败:推送与拉取共用退避,从 5 秒起每次失败翻倍,上限 24 小时,任一次成功重置;空拉取(204/304/暂停)算连接正常。只在由正常变为失败时提示一次,手动刷新立即重试。原来键盘可见时按固定间隔拉取且无退避,有待推送内容时每 5 秒重试,提示 30 秒限频。

语音设置页

1.7.1 之后“识别方式”“保持引擎常驻”“SenseVoice 二次校正”被改成并排 FilterChip。按用户要求恢复为“标题 + 说明 + 开关”整行:识别方式与 1.7.1 相同;常驻开关保留切换后立即更新回收策略;二次校正保留按语言设置,中文、English 各一行开关。该规则已写入 AGENTS.md。设置页其他三选一以上的 chip 选项未改。

检查

  • JVM:SymbolInputModeTest 11、ClipboardSyncSessionTest 14(新增退避用例,调整非法内容用例在每次拉取前结束退避)、SplitPartLabelTest 2、KeyFlick* 6、FrostedKeyColorsTest 14 通过(check.log、check-3.log)。
  • 设备检查程序编译通过;新增 SwipeableIconKeyButtonTest.defaultSymbolDirectionPullsClearDownInRedFromTheTopHint,更新调节按钮与语音开关的断言,均未在设备运行。
  • 平板 1.9.14 Debug 实测:符号连点、删除键颜色与方向、调节按钮与滑条、模糊随透明度淡出。每次点击前核对前台为 CyIME。
  • 未验收:iOS 主题面板背景、剪贴板菜单、同步退避的实际表现、语音设置页外观。

交付

主目录 auto.cmd --serial R52T800SKWZ 构建并保留数据安装到平板(release.log,构建 4 分 14 秒)。读回 versionName=1.9.14、versionCode=20261106、非 DEBUGGABLE;设备 APK 与正式包 SHA256 4dc0b62d6798627518f8fb0c252d23cf6ace2395f5548812eb2e18615eb678df 一致,111156325 字节。手机未连接、未安装。未公开发布、未打内置模型包、未提交 Git。

证据:.codex-artifacts/round-20261008b/。