单输入框与 URL 输入框职责拆分变更记录
问题与目标
- 原
SingleInputPop 同时被 API 地址和 A02 报警阈值复用,但确认按钮内部写死了 API URL 校验。
- A02 输入整数后会先被
http/https 规则拦截,无法进入阈值保存回调。
- 本次目标是拆分两类弹框的职责,不改变 API 地址修改后的配置处理链路。
实现内容
URL 输入弹框
- 将原来的 API 地址专用实现改名为
UrlInputPop。
- 保留非空、
http/https 前缀、长度和 HttpUrl.parse() 校验。
- 保留 URL 校验失败告警以及配置变更日志上报。
set_basic_set_item_api_view 改为显式使用 UrlInputPop。
通用单输入框
- 新
SingleInputPop 只负责标题、初始值、提示、删除、取消、确认和数字输入交互,不再依赖 URL 解析及日志类。
- 输入类型限定为数字,IME 动作设为“完成”;弹框展示后自动请求输入焦点并弹出软键盘。
- 点击键盘“完成”会收起软键盘并复用确认处理;校验不通过时仅保留弹框,通过时关闭弹框。
- 确认回调返回
boolean:true 表示接受输入并关闭弹框,false 表示拒绝输入并保持弹框显示。
basic_setting_a02_threshold 使用该弹框,设置页回调内校验整数格式和 1–50g 范围;只有校验通过才保存 MMKV、记录 A02 配置变更并刷新页面。
代码质量处理
- A02 阈值最小值、最大值和默认值集中为命名常量。
- A02 弹框标题、提示、说明、错误文案和克数显示格式收口到
strings.xml。
- 新弹框类补充了职责边界和回调返回值含义注释。
验证结果
- JDK 8 下
:app:compileDebugJavaWithJavac 通过。
- JDK 8 下
:app:testDebugUnitTest :app:assembleDebug 通过,82 个 Gradle 任务执行或命中缓存。
git diff --check 通过。
- 未进行真机点击验收;建议后续在设置页分别验证 API 地址和 A02 阈值输入。
变更边界
- 未改变 API 地址切换后的二次确认、本地配置、网络 Base URL、人脸库及配对信息处理。
- 未修改 A02 阈值的持久化 key、默认值或变更日志事件。
- 未执行 Git 提交、推送或设备安装。