管理员密码弹框防连点变更记录
问题与根因
- 称重主页标题图标的每次点击都会创建一个新的
CustomPwdInputDialog。
- 密码弹框在构造阶段立即显示,原页面未保存显示状态,也未阻止弹框显示期间的后续点击,因此连点会生成多个独立窗口。
实现内容
- 新增
AdminPasswordDialogState,负责管理员密码弹框显示状态的占用与释放。
- 标题图标第一次点击成功占用显示状态并打开弹框;弹框仍显示时,后续点击直接忽略。
PwdInputDialogUtils 提供关闭监听入口;弹框取消或密码验证成功并关闭后释放状态,允许下次正常打开。
- 密码输入、校验、错误提示及跳转设置页的既有逻辑保持不变。
测试与验证
- 先新增回归用例并确认因
AdminPasswordDialogState 尚不存在而编译失败,复现缺少单实例状态控制的问题。
- 实现后,
AdminPasswordDialogStateTest 验证连续两次显示请求只有第一次通过,关闭后再次请求可以通过。
JAVA_HOME=$(/usr/libexec/java_home -v 1.8) bash ./gradlew :app:testDebugUnitTest :app:assembleDebug:通过,82 个 Gradle 任务执行或命中缓存。
git diff --check:通过。
- 未执行真机连点验收、设备安装、Git 提交或推送。
变更边界
- 仅调整称重主页标题图标打开管理员密码弹框的交互。
- 未改变其他弹框入口、管理员密码常量、设置页跳转参数或业务接口。
- 过程记录归档于提示词工程,源码仓库未新增过程文档。