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 |
|
dongliang
|
c653e5b78d
|
fix: 图片和语音改用 app OkHttp 4.12 下载(弃用系统 HttpURLConnection)
根因:HttpURLConnection 底层是系统内置的 com.android.okhttp 2.x
即使 Conscrypt 替换了 TLS provider,系统 OkHttp 的 ALPN/连接管理
仍是旧逻辑,阿里云 OSS 不接受。
改用 app 自带的 OkHttp 4.12.0(有完整 ALPN/HTTP2 支持)+ Conscrypt
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 13:15:52 +09:30 |
|
dongliang
|
bb489140f8
|
feat: 引入 Conscrypt 解决 Android 8.1 TLS 握手失败
设备系统 conscrypt 版本过旧,连阿里云 OSS 的 HTTPS 握手被 reset。
引入 org.conscrypt:conscrypt-android:2.5.2 作为首选安全提供者,
在 Application.onCreate 中注册,所有网络请求自动使用现代 TLS。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 13:04:55 +09:30 |
|
dongliang
|
9f7a0a5c1e
|
feat: 电量变化时上报设备状态到服务端
之前 reportDeviceStatus 接口只定义未调用,手机端无法获取实时电量
现在电量变化 >=5% 时自动调用 setWatchStatusByImeiFormWatch 上报
去抖防止频繁请求
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 12:56:20 +09:30 |
|
dongliang
|
9b0d44d8da
|
fix: 待打卡地点块移到备注/语音/图片上方
XML 中 blockGoWhere 和 blockNoScene 从底部移到 tvNote 前面
去掉已不用的 blockHowTo(蓝色指引块)
现在布局顺序:任务名→地点指引→备注→语音→图片
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 12:47:16 +09:30 |
|
dongliang
|
39d7fc8b66
|
feat: 大图查看支持左右滑动切换图片
- 传入所有图片 URL 列表和起始索引
- 左滑下一张,右滑上一张
- 底部显示页码指示 1/3
- 单击关闭
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 12:40:30 +09:30 |
|
dongliang
|
89602070ae
|
fix: 大图查看改用 decorView 顶层覆盖
dialog_container 可能被 NavHostFragment 遮挡导致不可见
改为直接添加到 Activity 的 decorView,确保在最顶层
背景改为纯黑(全屏查看更清晰)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 12:35:38 +09:30 |
|
dongliang
|
43e61ffb70
|
feat: 任务推送增加语音提示(newMessage.mp3)
planId=2 新消息方案加上 audioResId = R.raw.new_message
和旧版一致,推送新任务时震动+播放语音提示
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 12:33:05 +09:30 |
|
dongliang
|
caa38c53d8
|
fix: 图片点击放大修复(clickable + 关闭事件)
- 缩略图加 isClickable/isFocusable 防止被 ScrollView 拦截
- 全屏大图的 overlay 和 imageView 都设点击关闭
- 加日志确认 showFullImage 被触发
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 12:27:49 +09:30 |
|
dongliang
|
cacbdb6aaa
|
fix: 图片和语音改用 HttpURLConnection 下载
OkHttp 在该设备连 OSS 的 HTTPS/HTTP 都被 reset。
改用系统 HttpURLConnection(走系统 TLS 栈,可能支持不同 cipher suite)。
图片和语音统一使用原始 HTTPS URL。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 12:23:54 +09:30 |
|
dongliang
|
77619a5300
|
feat: 图片支持横向滚动显示所有+点击放大全屏
- 去掉3张限制,HorizontalScrollView 横向滚动展示所有图片
- 缩略图 80dp 正方形,超出可滑动查看
- 点击缩略图全屏放大查看(FIT_CENTER),点击关闭
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 12:14:01 +09:30 |
|
dongliang
|
49732ac79a
|
feat: 用户上报任务显示图片附件
- 新建 PicItem 数据类,uploadPic 改为强类型
- 布局加 picContainer 横排展示区
- showPictures 方法:最多3张缩略图横排,HTTP 加载
- 三个状态页面都显示图片(和语音同级)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 12:04:26 +09:30 |
|
dongliang
|
1b198e0941
|
fix: 语音下载改用 HTTP 绕过 OSS TLS 兼容问题
阿里云 OSS 的 HTTPS 在 Android 8.1 conscrypt 下 TLS 握手被 reset
OSS 同时支持 HTTP,降级为 HTTP 下载即可
使用独立的无拦截器 OkHttpClient 避免签名干扰
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 11:46:53 +09:30 |
|
dongliang
|
18a1fc58a6
|
fix: 语音下载复用应用 OkHttpClient 解决 SSL 握手失败
新建的 OkHttpClient 没有 TLS 配置,在 Android 8.1 设备连阿里云
OSS 时 SSL handshake 被 reset。改为注入应用已配置的 OkHttpClient
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 11:42:35 +09:30 |
|
dongliang
|
bf869b4643
|
fix: 待打卡布局优化,地点提到最前防超屏
- 去掉蓝色指引块(和按钮文字重复)
- 时间合入橙色地点块副文本
- 有场景时不单独显示 tvTimeInfo,省一行空间
- 备注和语音移到指引块后面(次要信息)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 11:31:50 +09:30 |
|
dongliang
|
f22f7b7f0f
|
fix: 语音改用 OkHttp 下载后本地播放
MediaPlayer 内置 HTTP 在 Android 8.1 设备请求 HTTPS 失败
(NuCachedSource2 error -1)。改为 OkHttp 先下载到缓存再播放
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 11:18:09 +09:30 |
|
dongliang
|
b9d50e3c31
|
fix: 语音播放修复(AudioAttributes + clickable + 日志)
- 设置 AudioAttributes(CONTENT_TYPE_SPEECH)确保音频输出正确
- 按钮加 clickable/focusable 防止被 ScrollView 手势拦截
- 添加播放日志便于排查
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 11:03:30 +09:30 |
|
dongliang
|
9b39daf4ad
|
style: 返回按钮改用 iconfont 图标,和 NavBar 风格统一
用 \ue6bd 返回图标替代文字符号,白色 28sp,64×56dp 触摸区
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-07 10:26:13 +09:30 |
|
dongliang
|
841bf87dc5
|
fix: 返回按钮加大触摸区域和视觉醒目度
- 高度从 match_parent 改为固定 56dp
- 字号 27sp→32sp 加粗,符号 ‹→< 更醒目
- 标题栏上内边距 16→8dp 节省空间
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-06 21:30:08 +09:30 |
|
dongliang
|
1eb32409a8
|
fix: 时间只显示要求/截止一个,去掉派单时间和巡检时段
三个页面统一只显示一行时间:优先要求完成时间,没有则截止时间
删除 showInspectTime 方法
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-06 21:22:44 +09:30 |
|
dongliang
|
7b3a3ae276
|
fix: 要求/截止时间只显示一个,优先要求完成时间
有 preFinishTime 显示"要求: 05.06 16:05",没有则显示"截止: xx"
去掉多余的"完成"后缀
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-06 21:17:23 +09:30 |
|
dongliang
|
d5cdcc8186
|
style: 语音按钮视觉优化
- 背景改为橙色半透明+边框,和指引块风格统一
- 宽度 match_parent,内含声波图标+语音描述+时长
- 播放中切换背景高亮+停止图标,停止后恢复
- 新增 bg_btn_voice_playing.xml 播放状态背景
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-06 20:52:09 +09:30 |
|
dongliang
|
2e7edc7e09
|
fix: 语音按钮圆角改用 radius 兼容 API 27+
topStartRadius 等属性需要 API 31,改为统一 radius=24dp
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-06 20:47:52 +09:30 |
|