熟食结算支付结果语音补充变更记录
问题原因
熟食结算通过 PaymentManager 创建临时 SoundPoolPlayer。音频资源由 SoundPool 异步加载,但原实现调用加载后立即释放播放器,真机上可能在 onLoadComplete 前失效,因此支付结果弹框正常但听不到语音。
称重结算使用页面级播放器:第一次需要时创建,后续复用,直到页面销毁才释放。本次按该生命周期对齐熟食结算。
代码改动
PaymentManager.java:增加支付成功、支付失败、余额不足、记账成功和卡号不存在五种具名语音事件;调用方可声明已经播放,避免重复播放并保持其他页面兼容。CookedFoodActivity.java:页面持有并复用播放器,销毁时统一释放;按支付结果播放对应语音;迟到回调不播放。
验证
- 使用 Amazon Corretto 8 执行
JAVA_HOME=$(/usr/libexec/java_home -v 1.8) bash gradlew :app:testDebugUnitTest :app:assembleDebug --console=plain,结果为BUILD SUCCESSFUL。 - 全部 27 个 JVM 单元测试通过,失败和错误均为 0。
git diff --check无空白错误。
真机验证建议
分别验证支付成功、普通失败、余额不足、离线记账成功和卡号不存在五种结果,确认每次只播放一遍且语音设置开关关闭后不播放。
本次未执行 Git 暂存、提交、推送或分支切换。