dongliang
|
583ce9b841
|
fix: 移除永久WakeLock避免耗电,依赖前台服务+电池白名单保活
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-09 13:11:56 +09:30 |
|
dongliang
|
b867c33015
|
fix: 息屏后MQTT断连导致无法收到通知
添加前台服务+WakeLock保活MQTT连接,请求电池优化白名单绕过Doze限制,
AlarmManager每5分钟健康检查断连自动重连。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-09 13:10:04 +09:30 |
|
dongliang
|
966c9f9c0d
|
style: TTS按钮放大到64dp,图标更醒目
56dp → 64dp,padding 不变,图标从 36dp 增大到 44dp。
安装后请重启手表。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-08 17:09:05 +09:30 |
|
dongliang
|
25ba315e63
|
fix: 一次性优化(时钟去秒+备注修复+按钮放大+切换取消)
1. 首页时钟 HH:mm:ss → HH:mm
2. TTS 备注优先读 taskRequire(和页面显示一致)
3. TTS 按钮 48dp → 56dp,背景透明度 50% → 30%
4. 切换任务时取消进行中的 TTS 合成请求
安装后请重启手表。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-08 16:49:29 +09:30 |
|
dongliang
|
c42d50f2d6
|
fix: TTS按钮放大到48dp + 首页时钟显示秒
1. TTS悬浮按钮从36dp放大到48dp,老年人更容易点击
2. 首页时钟从 HH:mm 改为 HH:mm:ss,显示秒
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-08 13:41:21 +09:30 |
|
dongliang
|
26589f0197
|
fix: TTS时间朗读优化 + 补充要求完成/截止时间
1. 时间格式转中文朗读:"04.28 09:10" → "4月28日9点10分"
2. 补充要求完成时间(preFinishTime)和截止时间(expireTime)
3. 积分读"X分"而非"+X"
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-08 13:29:07 +09:30 |
|
dongliang
|
032657fb60
|
fix: EdgeTTS 强制 TLS 1.2 兼容 Android 8.1
Android 8.1 默认 TLS 配置可能不支持服务器要求的密码套件,
强制启用 TLS 1.2 + MODERN_TLS + COMPATIBLE_TLS 回退。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-08 13:22:11 +09:30 |
|
dongliang
|
02f84e6c04
|
fix: EdgeTTS 用独立 OkHttpClient,去掉业务拦截器干扰
WebSocket 连接经过了 SignatureInterceptor/UnbindInterceptor 导致连接被重置。
改为独立的 OkHttpClient,不带任何业务拦截器。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-08 13:17:39 +09:30 |
|
dongliang
|
bd6aa270c5
|
fix: TTS播放按钮加到正确的页面(TaskListFragment)
TaskDetailFragment 未被使用,实际任务页面是 TaskListFragment。
- 在 TaskListFragment 布局加悬浮播放按钮
- 在 TaskListFragment 加 TTS 播放/停止逻辑
- 切换任务(左右滑动)时自动停止播报
- 离开页面自动停止播报
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-08 13:12:17 +09:30 |
|
dongliang
|
aafae56826
|
fix: TTS悬浮按钮不可见,提高对比度
背景从30%白透明改为50%,图标从白色改为黑色,黑底上更清晰。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-08 13:03:56 +09:30 |
|
dongliang
|
cf4458526b
|
feat: 任务详情页语音播报功能 (REQ-20260508-0006)
- 详情页右侧悬浮播放按钮(36dp半透明圆形)
- 播报内容:任务名+地点+时间+积分(>0)+备注,空字段跳过
- 播放中按钮高亮+图标切换,再点停止
- 离开页面自动停止播放
- TTS播放期间抑制提示音,避免叠加
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-08 12:57:51 +09:30 |
|
dongliang
|
f01b1e3311
|
fix: EdgeTtsManager val 赋值编译错误
apply 块内 isPlaying 赋值改为外部引用,避免 val 重新赋值。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-08 12:36:18 +09:30 |
|
dongliang
|
5a386a6060
|
feat: 接入 Edge TTS 免费中文语音合成
设备不支持内置中文 TTS,改用微软 Edge TTS(WebSocket 协议)。
- 新增 EdgeTtsManager:WebSocket 调用、MP3 缓存、MediaPlayer 播放
- 调试模式(设置页点头像6次)触发 TTS 测试
- 缓存机制:相同文本不重复请求,上限50条自动清理
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-08 12:33:59 +09:30 |
|
dongliang
|
557363c80d
|
feat: 添加 TTS 中文语音测试(调试模式触发)
设置页快速点击头像6次触发 TTS 测试,验证设备是否支持中文语音合成。
测试结果通过 Toast 和 Logcat 反馈,为后续任务语音播报功能做可行性验证。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-08 12:07:18 +09:30 |
|
dongliang
|
fec1e80cf1
|
chore: 应用名称改为小趣智清洁,APK文件名包含版本号
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-08 11:33:56 +09:30 |
|
dongliang
|
7c631025ba
|
fix: 通知模式完成最后任务后跳到新任务页而非首页
原因:filterTaskIds 过滤为空数组后 isNotEmpty()=false
跳过了通知模式分支,走了正常 status=2 查询显示了新任务
修复:ids != null 就进通知分支,空数组+hasActioned 直接回首页
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 21:41:33 +09:30 |
|
dongliang
|
d38060e9b3
|
fix: 操作成功弹窗不消失问题 + 统一弹窗交互
问题:back=false 导致弹窗永远不消失
修复:所有弹窗统一 back=true + countdown=2 自动消失
用 onBack 回调替代 postDelayed,弹窗消失后再执行刷新/返回
弹窗梳理:
- 操作成功(抢单/打卡/完成):2秒消失 → onBack 刷新列表
- 全部完成:2秒消失 → onBack 返回首页
- NFC打卡成功:2秒消失 → postDelayed 刷新详情
- 失败/网络异常:3秒消失 → 无回调
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 21:36:09 +09:30 |
|
dongliang
|
646f780a1f
|
fix: 任务操作后的交互优化(消除黑屏闪烁)
1. 操作成功后先显示弹窗 2 秒,弹窗消失后再刷新(不再立即刷新导致黑屏)
2. 刷新时不显示 loading(保持当前内容,静默更新)
3. 列表全部完成后显示"全部完成"弹窗 1.5 秒,再返回首页
之前:完成→黑屏loading→突然跳到下一个/回首页
现在:完成→弹窗"任务已完成"→平滑切到下一个/弹窗"全部完成"→回首页
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 21:31:44 +09:30 |
|
dongliang
|
ac483b5f89
|
fix: 统计数字持久化到 SharedPreferences,重启后不显示 0
之前 lastStats 是内存缓存,重启后为 null,首页短暂显示默认值 0
现在每次 API 返回都持久化到 stats_cache SP
启动时优先读 SP 缓存 → 立即显示上次数字 → API 静默更新
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 21:14:19 +09:30 |
|
dongliang
|
f4e9410211
|
fix: 通知模式下标题/页码/完成任务移除的问题
1. 标题根据任务实际 status 显示(通知模式下不再固定"新任务")
2. 页码:通知模式始终显示,正常模式接单池隐藏
3. 完成任务后从 filterTaskIds 中移除,避免已完成任务仍在列表
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 21:08:01 +09:30 |
|
dongliang
|
e383ad190a
|
feat: 用 productFlavors 区分调试和发布包名
dev: com.xiaoqu.watch(调试用,和旧版不冲突,可直接装到手表)
prod: com.witClean.watch(正式发布,用旧签名打包走 OTA 升级)
日常开发选 devDebug,发布时选 prodRelease + witcleaning2.keystore
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 20:46:57 +09:30 |
|
dongliang
|
72f07f18f4
|
fix: 单个任务通知也跳转到统一的任务列表页
之前1个任务跳 TaskDetail,多个跳 TaskList,体验不一致
统一都跳 TaskListFragment(单任务时就是全屏展示一个)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 20:23:51 +09:30 |
|
dongliang
|
0682c7e5c5
|
chore: 打包前清理(Timber release关闭 + 删除内网TODO注释)
1. Timber.DebugTree 只在 DEBUG 模式植入,release 不输出日志
2. 删除 build.gradle.kts 中的内网 IP 注释
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 19:00:34 +09:30 |
|
dongliang
|
7e30cf88c4
|
fix: 禁用 ExpiredTargetSdkVersion lint 检查
手表设备不上 Google Play,targetSdk=27 是设备要求,跳过此检查
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 18:57:24 +09:30 |
|
dongliang
|
5220bb98e5
|
feat: 包名改为 com.witClean.watch 实现旧版无缝升级
applicationId 从 com.xiaoqu.watch 改为 com.witClean.watch(和旧版一致)
versionCode 从 1 改为 183(旧版是 182),系统识别为升级
代码内部 package 保持 com.xiaoqu.watch 不变
使用旧版同一签名证书 witcleaning2.keystore 打包
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 18:46:49 +09:30 |
|
dongliang
|
7b5ad64fea
|
feat: 任务切换加滑动动画 + 严格手势防误触
1. 手势判断从 dx>dy 改为 dx>dy*2 且 dx>80px,斜滑不再误触
2. 切换任务时内容滑出+滑入动画(120ms出+150ms入),有明确感知
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 17:42:00 +09:30 |
|
dongliang
|
3d991c0169
|
fix: 首页用缓存数据填充卡片数字,消除刷新闪烁
之前流程:inflate(数字=0) → API请求 → 数字跳到真实值,产生闪烁
现在流程:inflate → 立即用 lastStats 缓存填充 → API静默更新
首次启动无缓存时仍显示 XML 默认值 0,之后都是无感刷新
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 17:12:42 +09:30 |
|
dongliang
|
e67100ba83
|
fix: 首页卡片数字只在值变化时更新,减少刷新闪烁
之前每次 fetchStatistics 都重新赋值 text,即使值没变也触发重绘
改为先比较再赋值,值相同时不操作
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 17:07:51 +09:30 |
|
dongliang
|
ea72c2aab0
|
fix: 返回按钮恢复64dp宽居中,高度48dp增加上下点击区
宽度回到64dp不影响标题居中,高度48dp比文字高增加纵向点击面积
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 17:03:20 +09:30 |
|
dongliang
|
1cafb74f04
|
fix: 标题栏恢复 LinearLayout,返回按钮100dp宽+左padding
FrameLayout 覆盖层方案导致页面内容消失
改回 LinearLayout,按钮宽度 100dp 图标靠左(paddingStart=21dp)
右侧空白区域都是可点击范围
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 16:58:28 +09:30 |
|
dongliang
|
1dc34de35a
|
fix: 返回按钮改用透明覆盖层方案
标题栏改为 FrameLayout,图标保持原样
上层叠一个 120dp 宽的透明 View 覆盖左半边
点击左半边任意位置都触发返回,不影响视觉
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 16:52:34 +09:30 |
|
dongliang
|
0c5d9076a8
|
fix: 返回按钮改为整个标题栏左半边可点击
去掉 TouchDelegate,改用 FrameLayout 占标题栏左半边(weight=1)
图标靠左显示,但整个左半边 48dp 高的区域都能触发返回
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 16:45:17 +09:30 |
|
dongliang
|
7d1172f20d
|
fix: 返回按钮点击区域向右扩展 10dp→40dp
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 16:38:47 +09:30 |
|
dongliang
|
2a06cf684c
|
fix: 返回按钮高度改回 match_parent,不再撑高标题栏
点击区域已由 TouchDelegate 扩展,不需要按钮本身 56dp 高
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 16:34:56 +09:30 |
|
dongliang
|
d5d1eeef89
|
fix: 返回按钮用 TouchDelegate 扩大点击区域
图标大小不变,触摸区域向下扩展 20dp、向右扩展 10dp
解决用户点偏到下方内容区的问题
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 16:30:34 +09:30 |
|
dongliang
|
a41c8879e6
|
fix: 备注标签和内容合为一个 TextView
"备注: xxx" 拼在一起,去掉多余的标签 TextView 和 LinearLayout 容器
样式不变(深灰背景、22sp、白色文字、13dp padding)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 16:25:18 +09:30 |
|
dongliang
|
8af7f43185
|
style: 备注恢复为同行标签版(深灰背景+备注:+白色内容)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 16:19:09 +09:30 |
|
dongliang
|
3cc357ba59
|
fix: 备注去掉"备注:"前缀,只显示纯内容
前缀和内容拼接后视觉不统一,绿色背景已能区分备注区域
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 16:15:30 +09:30 |
|
dongliang
|
7894a7824e
|
style: 备注恢复绿色淡背景样式(24sp 灰色文字 + padding)
保留"备注:"前缀,样式还原为原始的 bg_note_green 风格
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 16:10:07 +09:30 |
|
dongliang
|
0def08dfca
|
fix: 备注改为纯文本,去掉卡片容器和内边距
"备注: 需要带清洁工具" 直接一行文字,不居中不占额外空间
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 16:04:07 +09:30 |
|
dongliang
|
7d2f954e97
|
style: 电量数字移回电池图标外部
电池内部只保留充电时的 ⚡ 闪电符号
数字在电池左侧显示(16sp 加粗,颜色跟随状态)
电池图标恢复 28×13 正常尺寸
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 15:59:18 +09:30 |
|
dongliang
|
f1a99b71f8
|
fix: 电池数字改为白字+黑色描边
黑字在黑色背景上看不见,白字在绿色填充上也不清楚
改用白色填充+黑色描边,在任何背景上都清晰可读
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 15:38:27 +09:30 |
|
dongliang
|
154802f136
|
fix: 备注标签和内容改为同一行
"备注: 需要带清洁工具" 一行显示,不再换行浪费空间
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 15:36:40 +09:30 |
|
dongliang
|
432dfc8d3d
|
style: 备注样式优化
- 加"备注"标签(18sp 灰色),用户知道这块文字是什么
- 内容改白色文字(text_primary),对比度更高
- 背景从绿色改为深灰卡片色+细边框,和指引块(橙/绿)区分
- 新建 bg_note.xml 替换 bg_note_green.xml
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 15:28:52 +09:30 |
|
dongliang
|
10dacd26ef
|
fix: 电池内部数字改为黑色,避免和填充条颜色混淆
白字压绿底几乎看不见,改为黑色在任何填充色上都清晰
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 15:21:23 +09:30 |
|
dongliang
|
78d1977b98
|
fix: 代码遗漏修复(NFC回调安全+绑定电量+信号初始值)
1. NFC 打卡回调加 isAdded/view 安全检查,防止 Fragment 销毁后崩溃
2. postDelayed 回调同样加保护
3. 绑定二维码电量从写死100改为读取实时电量
4. 信号强度启动时主动读一次初始值(和蓝牙同样处理)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 15:10:06 +09:30 |
|
dongliang
|
abd5ebd20c
|
style: 电量和闪电显示在电池图标内部
- 电池图标加大 28×13 → 38×16,内部空间足够放文字
- 正常时电池内显示百分比数字(如 73)
- 充电时电池内显示 ⚡ 闪电符号
- 去掉电池外部的百分比文字,信息集中在图标上
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 13:52:03 +09:30 |
|
dongliang
|
9eb618dfd6
|
style: 电池显示优化
- 百分比文字放大 15f→18f,颜色跟随电池状态
- 充电时加 ⚡ 前缀(如 ⚡73%),一眼可见充电状态
- 颜色分级更清晰:>60%绿 / 21-60%白 / 11-20%橙 / ≤10%红
- 低电量时电池壳也变红,整体醒目
- 统一 getBatteryColor() 逻辑复用
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 13:35:27 +09:30 |
|
dongliang
|
6f11784b8a
|
feat: 接入真实信号强度显示(之前写死满格)
- AppEvent 新增 SignalChanged 事件
- SystemStateMonitor 注册 PhoneStateListener 监听信号强度
- HomeFragment 接收事件更新 StatusBar 信号条(0-4级)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 13:32:25 +09:30 |
|
dongliang
|
a5453d1013
|
fix: 蓝牙图标初始状态不正确
bluetoothOn 默认 true,如果蓝牙一开始就是关的不会触发状态变化事件
在 initBatteryStatus 中主动读取 BluetoothAdapter.isEnabled 初始化
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 13:26:22 +09:30 |
|