245 Commits

Author SHA1 Message Date
dongliang
5dfbd627f2 fix: TaskDetailFragment 使用新字段名(displayName/positionText/pointText/sendTime)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 10:49:58 +09:30
dongliang
9598976566 fix: TaskDetail 字段对齐服务端实际返回
- name(非taskName), sendTime(非beginTime), taskPositions(数组非字符串)
- point 改为 Double(服务端返回0.0)
- hasPosition 从 taskPositions 判断(服务端无此字段)
- 新增 displayName/positionText/pointText 辅助属性
- displayDetail 使用实际字段名

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 10:45:18 +09:30
dongliang
5e2d71c25d feat: 任务列表改为单任务全屏展示+上下滑切换(方案B,和旧版一致)
核心改动:
- queryTaskIds 获取ID列表 → lookTaskDetail 获取当前任务详情
- 上滑下一个、下滑上一个任务
- 顶部显示"第X/Y个任务"
- 派单时间+任务名(带类型前缀)+地点+派单号+积分+协作人+描述
- 底部固定操作按钮(抢单/打卡/完成)
- 操作成功后刷新列表+详情
- 空状态+Loading状态

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 10:34:44 +09:30
dongliang
aea7b349b8 fix: 任务卡片显示name字段(queryTaskIds返回name不是taskName)
TaskItem 新增 name 字段 + displayName 属性(优先name其次taskName)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 21:25:53 +09:30
dongliang
a455c82b59 fix: queryTaskIds 和 lookTaskDetail 改为 POST
服务端所有任务接口都要求 POST,GET 返回 405

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 21:18:21 +09:30
dongliang
52949f4e3f fix: 任务列表改用 queryTaskIds 接口(旧版实际使用的接口)
pageList 返回空body,改为 queryTaskIds GET 请求

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 21:15:15 +09:30
dongliang
4a3fbb6be6 fix: 处理服务端返回空body(Content-Length:0)
服务端无数据时返回200但body为空,Gson抛EOFException。
捕获EOFException视为Success(null)而非网络错误。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 21:05:58 +09:30
dongliang
aec33ee3e1 fix: UnbindInterceptor 改用 peekBody 防止消费响应体
source.request() 在空body/非JSON响应时会导致后续Gson解析失败。
改用 peekBody(1024) 安全读取副本。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 20:47:53 +09:30
dongliang
2d0a4d94ae fix: pageList 接口改为 POST(服务端返回405 GET不支持)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 20:38:27 +09:30
dongliang
c0059efa16 fix: 防止重复导航崩溃 - 跳转前检查当前是否在homeFragment
HomeFragment的View不随导航销毁,快捷区点击事件仍会触发。
在非homeFragment时跳过导航。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 20:34:56 +09:30
dongliang
5b0a0b4964 fix: taskId defaultValue 加 L 后缀修复 long 类型解析错误
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 20:27:27 +09:30
dongliang
1056386af8 feat: 任务管理模块 - 列表+详情+抢单/打卡/完成
新增:
- TaskListFragment 分段控件+RecyclerView+下拉刷新
- TaskDetailFragment 信息展示+底部固定操作按钮(foot-btn)
- TaskListAdapter 任务卡片适配器
- TaskItem/TaskDetail 数据类
- TaskApi 新增5个接口(pageList/detail/grab/assign/complete)
- 分段控件/底部按钮/状态标签 drawable

修改:
- nav_main.xml 添加参数和action
- HomeFragment 快捷区点击→任务列表(传tableStatus)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 20:19:35 +09:30
dongliang
3c9d74f16c fix: 快捷区标签放大16→20sp,减少拥挤感
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 19:56:07 +09:30
dongliang
229c7d3c62 fix: 设置页字体放大适配老年人
头像 59→72dp, 字母 27→33sp
姓名 20→26sp, 手机号 15→19sp
信息行 17→20sp

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 19:51:12 +09:30
dongliang
7a777e28a6 fix: 状态栏固定在顶部,不随ViewPager2滑动
- 状态栏从两个子页面移到fragment_home.xml顶层
- ViewPager2在状态栏下方滑动
- HomeFragment只维护一个固定statusBar引用

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 19:47:31 +09:30
dongliang
2df2cd0cc2 fix: 设置页数据不显示 - 直接操作inflate好的View
之前通过ViewPager2内部查找ViewHolder,但Page0未创建时找不到。
改为直接保存inflate好的configPageView引用,数据填充不依赖ViewPager2。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 19:39:47 +09:30
dongliang
06f7c7f20e fix: 主页日期字体放大 20sp→26sp
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 19:37:20 +09:30
dongliang
170e2a527e fix: 按原型图精确换��所有尺寸(120dpi, 1dp=0.75px)
主页:时钟69sp, 日期20sp, 卡片数字43sp, 标签16sp
设置页:头像59dp/27sp, 姓名20sp, 手机号15sp, 信息行17sp
SafeArea: 21dp/27dp, 状态栏24dp
卡片圆角19dp, 内边距19/16dp
指示器: 圆点7dp, 活动19dp

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 19:32:15 +09:30
dongliang
fdc2eaa5c9 fix: 主页字体大幅放大对齐原型图比例
时钟 56→80sp(sans-serif-light),日期 18→24sp
快捷区数字 32→42sp,标签 14→16sp
缩小padding最大化内容空间

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 19:17:59 +09:30
dongliang
3f258aa620 fix: 首页和设置页字体放大适配老年人
主页:时钟 48→56sp,日期 16→18sp,快捷区数字 28→32sp,标签 12→14sp
设置页:姓名 15→20sp,手机号 11→14sp,信息行 13→16sp

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 18:55:22 +09:30
dongliang
c86e44f264 fix: ViewPager2 子页面设置 match_parent LayoutParams
ViewPager2 要求子页面必须填满,inflate 时未指定 parent 导致 LayoutParams 丢失。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 18:42:50 +09:30
dongliang
e07a2242a9 feat: 首页与应用壳模块
新增:
- StatusBarView 自定义状态栏(圆点+信号条+电池壳,按原型图V3)
- ViewPager2 左右滑动(设置页/主页,默认主页)
- 主页:时钟+日期+快捷区3卡片(对接statisticsNew API)
- 设置页:圆形头像+用户信息+设备信息+调试模式
- TaskApi 接口(统计+考勤)
- HomePagerAdapter(View方式,避免Fragment嵌套)
- 页面指示器+快捷区卡片背景drawable

修改:
- HomeFragment 重写为ViewPager2容器
- NetworkModule 添加TaskApi提供者
- styles.xml 添加ConfigRow/Label/Value样式

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 18:37:06 +09:30
dongliang
e6d5d6fe8a fix: 回滚二维码到iPhone风格(静默区1格+圆角12%)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 18:05:55 +09:30
dongliang
a7622da05a fix: 二维码静默区2格+圆角8%,防止裁切定位角
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 18:02:35 +09:30
dongliang
6e201923b7 fix: 二维码静默区改为0,修复圆角不对称
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 18:00:32 +09:30
dongliang
c244011c96 fix: 恢复二维码为iPhone风格整体圆角裁剪(12%)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:57:41 +09:30
dongliang
30f7ac1206 fix: 重写圆角二维码渲染
- 使用独立 Paint 对象,修复颜色问题
- 模块大小固定 16px,圆角 35%
- 白色圆角背景 + 黑色圆角模块
- 模块间 10% 缝隙

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:49:22 +09:30
dongliang
2ec738e3a4 feat: 二维码圆角风格 - 每个模块都是圆角矩形
- 白色背景圆角 8%
- 每个黑色模块圆角 30%
- 模块间有微小缝隙,更精致
- 自动裁剪 ZXing 空白边距

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:45:51 +09:30
dongliang
c048c27751 fix: 二维码圆角加大(6%→12%)参照iPhone风格
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:42:30 +09:30
dongliang
b9a84cb48c feat: 二维码添加圆角效果
使用 Canvas + PorterDuff 裁剪,6%圆角半径

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:39:01 +09:30
dongliang
3271e704d6 fix: 缩小二维码白色边框(静默区 4格→1格)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:34:15 +09:30
dongliang
4bd0f82ce9 fix: SplashFragment 绑定检查时正确存入用户数据到 UserPrefs
API返回Success时解析用户信息并存入,而不是直接跳首页。
userId<=0时视为未绑定,导航到二维码页。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:28:32 +09:30
dongliang
df2e36da91 fix: Retrofit @Body 参数改为 HashMap 修复泛型擦除问题
Map<String, Any> 在 Kotlin 编译后变为 Map<String, ?>, Retrofit 不支持通配符类型。
改为 HashMap<String, Any> 是具体类,不存在泛型擦除问题。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:04:39 +09:30
dongliang
5d34120153 fix: 移除二维码白色背景框,直接显示二维码
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:53:54 +09:30
dongliang
145105ffe9 fix: 绑定页最大化UI - 二维码撑满宽度
- 二维码框改为 match_parent + weight=1,撑满可用空间
- 标题 28sp,说明 16sp,配对中 22sp
- 整体布局紧凑,最大化利用屏幕空间

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:52:12 +09:30
dongliang
727e20df45 fix: 绑定页放大UI适配老年人用户
- 标题 24sp,说明文字 15sp,配对中文字 18sp
- 二维码框 150×150dp(原120dp)
- Loading spinner 40dp
- 用户群体为老年人,需要更大的字体和元素

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:50:25 +09:30
dongliang
d06bf11b95 feat: 绑定页UI对齐原型图V3
- 二维码页面:标题移到上方,白色圆角背景框,说明文字居中
- 新增配对中Loading状态(spinner + "正在配对…")
- 颜色值对齐原型图(blue=#3B9EFF, green=#4ADE80, orange=#FFB340, red=#FF6B6B)
- 新增 bg_qr_frame.xml 白色圆角背景

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:46:59 +09:30
dongliang
cd49471a15 fix: 移除 HomeFragment 中残留的 mqttManager 引用
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:32:04 +09:30
dongliang
1b61abb380 feat: 设备绑定与配对模块
新增:
- SplashFragment 启动分发(初始化+绑定检查+导航到Home或Bind)
- BindFragment 二维码配对页面(ZXing生成QR码+MQTT绑定监听)
- WatchBindInfo 绑定信息数据类

修改:
- nav_main.xml startDestination改为SplashFragment,添加导航action
- HomeFragment 移除初始化逻辑到Splash,添加MQTT解绑处理
- CommonApi getWatchByImei返回类型改为WatchBindInfo

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:23:37 +09:30
dongliang
a3c1f1d632 feat: MQTT通信模块 - TCP连接+消息分发
新增:
- MqttConfig MQTT连接配置(TCP:1883, 心跳120s, 自动重连)
- MqttManager 连接管理器(连接/订阅3个Topic/消息解析/EventBus分发)
- AppEvent 新增 MqttConnected/MqttDisconnected/MqttMessageReceived

修改:
- build.gradle.kts MQTT_URL改为MQTT_HOST(TCP不需要路径)
- EnvConfig 适配MQTT_HOST
- HomeFragment 连接MQTT并显示连接状态

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 15:59:26 +09:30
dongliang
977c2dd0d2 fix: updateStatus 添加 try-catch 防止系统关机时 DeadSystemException
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 15:07:22 +09:30
dongliang
fb884ea816 feat: 应用初始化模块 - 崩溃恢复与时间更新
新增:
- CrashHandler 崩溃日志记录+杀进程(系统自动重启Launcher)

修改:
- WatchApplication 注册 CrashHandler
- NavBarHelper 新增 updateTime() 方法
- HomeFragment 添加每秒时间更新定时器

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 14:56:23 +09:30
dongliang
c7ae11a574 feat: 系统控制模块 - 硬件抽象层
新增:
- ScreenController 屏幕控制接口 + FiseScreenController 实现(ROM广播)
- NfcController NFC控制接口 + FiseNfcController 实现(sysfs读写)
- VibrationController 振动接口 + FiseVibrationController 实现(13种方案+音频)
- SystemStateMonitor 系统状态监听(电量、蓝牙状态广播)
- DeviceModule Hilt硬件抽象绑定
- 8个音频文件(res/raw/)
- AppEvent 新增4个系统状态事件

修改:
- MainActivity 注册 SystemStateMonitor
- HomeFragment 硬件验证demo(熄屏/振动/NFC/电量实时显示)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 13:50:25 +09:30
dongliang
5680613e86 fix: 放大UI尺寸适配手表小屏
- 按钮高度 40dp→50dp,文字 15sp→20sp
- NavBar 图标 14sp→18sp,电量 16sp→20sp
- 提示弹窗图标 48sp→56sp
- 确认弹窗按钮 36sp→44sp
- NavBar 高度 60dp→40dp(图标放大后不需要过高)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 13:14:39 +09:30
dongliang
a397985954 feat: 小趣手表APP Android原生重构 - 基础框架搭建
已完成的模块:
1. 项目脚手架 - Gradle配置、28个包目录、核心基类
2. 权限管理 - 确认定制ROM已预授权所有权限
3. 工具类 - DateUtil/DeviceUtil/NetworkUtil/Md5Util
4. 设备信息 - DevicePrefs/UserPrefs (SharedPreferences)
5. 网络层 - OkHttp+Retrofit+MD5签名拦截器+解绑拦截器
6. 基础UI组件 - NavBarView/QuTipDialog/QuConfirmDialog/ActionButton/iconfont

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 11:26:50 +09:30