Commit Graph

20 Commits

Author SHA1 Message Date
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
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
dongliang
75cbb831c5 feat: 任务页面布局优化(接单池防挑选+截止时间+巡检引导+语音播放)
1. 接单池改名"新任务"、隐藏积分和页码(防止用户挑肥拣瘦)
2. 待打卡/待完成页面增加截止时间显示
3. 巡检场景三层视觉:已打卡绿色+时间、下一个橙色高亮、后续灰色弱化
4. 巡检场景超屏自动滚动到当前进度
5. 用户上报任务支持语音播放(橙色药丸按钮)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-06 20:46:16 +09:30
dongliang
3ab6a94676 refactor: 优化 QuTipDialog + 删除 ResultFlashView
QuTipDialog 优化:
- 图标区域放大 85→110dp,图标字号 38→50sp
- 加入淡入+缩放动画(OvershootInterpolator 回弹效果)
- 默认倒计时 3→2 秒
- 倒计时文字默认隐藏(showCountdown 参数控制)
- 简化调用:show(status, title) 即可,2秒后自动消失

NFC 打卡加回 QuTipDialog:
- 成功:绿色图标 + "打卡成功" + 2秒消失
- 失败:红色图标 + "打卡失败" + 错误信息

删除 ResultFlashView(方案不合适,统一用优化后的 QuTipDialog)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-06 15:40:07 +09:30
dongliang
7f6e9cf039 feat: ResultFlashView 操作结果指示器(Apple Watch 风格)
全屏深色遮罩 + 大圆圈图标,属性动画弹出+淡出,1.5秒自动消失。
- 成功:绿色圆圈 + ✓,OvershootInterpolator 回弹效果
- 失败:红色圆圈 + ✗
- 替代 QuTipDialog 用于 NFC 打卡和按钮操作的结果反馈
- 所有操作统一视觉风格

应用到:
- TaskDetailFragment NFC 打卡
- TaskListFragment NFC 打卡
- MainActivity 返回键主动打卡

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-06 14:25:57 +09:30
dongliang
1b24e2d044 feat(nfc-task): NFC 任务打卡模块(单个+批量+硬件开锁)
REQ-20260506-0024

新增 NfcTaskManager:
- startTaskPunch(taskId):任务详情页单个 NFC 打卡
- startActivePunch():返回键触发主动打卡
  → checkNfcType 判断:hardwareNfcFlag=true 硬件开锁 / false 批量打卡
- NFC 超时自动关闭 + 震动/音效反馈
- isScanning 标记防重复触发

TaskApi 增加 3 个接口:
- POST watchTask/nfcToBeginTask(单个打卡)
- POST watchTask/nfcBatchBeginTask(批量打卡)
- GET nfcInfo/nfcOpenLock(类型判断)

返回键逻辑修正:
- 原:返回键→考勤打卡
- 现:返回键→主动打卡(批量任务 or 硬件开锁)
- 考勤打卡只从下拉面板触发
- onBackKeyPressed 改为返回 Boolean(true=已处理)

TaskDetailFragment:
- "开启打卡"按钮填充 NFC 打卡逻辑(替换 TODO)
- 扫描中按钮变灰禁用,成功/失败用 QuTipDialog

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-06 12:05:40 +09:30
dongliang
d6a8f4acf9 chore: 关闭加速度计抬手亮屏(硬件无陀螺仪,不可靠)
设备仅有基础加速度计(MTK),无陀螺仪/重力传感器/旋转向量。
经 v1~v5 五轮实测验证,"看表"与"不看表"的角度差仅~7°,
无法可靠区分抬手和小幅摆动。旧版uni-app也放弃了此功能。

代码保留但默认不启用(start/stop/pause/resume 全部注释),
待更换有陀螺仪的硬件后取消注释即可启用。

保留的文件:
- AccelerometerWakeController.kt(接口)
- FiseAccelerometerWake.kt(实现,含倾斜角度+低通滤波方案)
- DeviceModule.kt(DI绑定)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-30 19:01:17 +09:30
dongliang
08aae2065e chore: 代码清理(debug日志+孤立文件+未用字段+测试修复)
1. 去掉 fetchStatistics/renderDots 中的 debug Timber.d
2. 删除孤立文件: bg_new_task_hint.xml, bg_btn_primary.xml, bg_btn_secondary.xml
3. 删除未用字段: onPendingCountChanged
4. 单元测试修复:
   - 添加 Dispatchers.setMain/resetMain (JVM无Main线程)
   - 新增: 数字id解析、acknowledgeCard减pendingCount、ack清除、preNotificationStats
   - 总计 22 条测试

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 21:03:12 +09:30
dongliang
6418c2f36f feat: 新任务提示条 + 按taskIds直接加载
1. 首页新增"有N条新任务 点击查看"提示条
   - pendingCount>0 时显示,点击/查看后消失
   - 和红点共存:提示条=统一入口,红点=分类提示

2. TaskListFragment 通知模式
   - 有 filterTaskIds 时跳过 queryTaskIds
   - 直接按 taskId 构建列表,调 lookTaskDetail 加载详情
   - 不受 status 筛选限制,跨状态任务都能显示

3. 横幅/提示条共用 navigateToNewTasks()
   - 1个任务→跳详情,多个→跳列表
   - 跳转后清除红点+提示条+pendingTaskIds

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 16:42:09 +09:30
dongliang
dd3905b743 feat: 消息通知模块(横幅+红点+跳转)
MQTT type=1 新任务推送 → 震动+亮屏+顶部蓝色横幅+卡片红点。

新增:
- NotificationManager: 去抖1s+内存存储taskIds+统计对比红点
- NotificationBannerView: Activity层横幅(滑入/10s倒计时/点击)
- AppEvent.NewTaskArrived: 携带taskIds和count

集成:
- MainActivity: 监听MQTT type=1→NotificationManager→横幅
- HomeFragment: 监听NewTaskArrived→刷新统计+对比红点+横幅点击跳转
- page_main.xml: 3个卡片各加红点角标(FrameLayout包裹)
- nav_main.xml: 新增action_home_to_taskDetail

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 13:48:04 +09:30
dongliang
3d2261c809 feat: 考勤面板UI优化(5项改进)
1. 打卡状态文字:显示"已上班 07:02"/"已下班 17:05"
2. NFC扫描倒计时:显示"请贴近信标(8s)"
3. 底部收回指示条:灰色短横线,点击可收回面板
4. 药丸形按钮:大圆角28dp + 蓝色渐变(源码#4CBAF1→#339AFB)
5. 撤销按钮主次分明:窄灰底红字(0.4) + 宽蓝色下班(0.6)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 10:27:40 +09:30
dongliang
97a3054db2 feat: 考勤打卡模块(NFC)重新开发
基于新方法论(11层源码分析+独立评审)重新开发考勤打卡功能:
- 首页下拉展开打卡面板,点击按钮开启NFC贴卡打卡
- 支持上班打卡、下班打卡、撤销打卡
- NFC超时自动关闭,音效反馈(4种planId)
- MQTT type=5 上下班状态推送处理
- 按钮状态矩阵:onPunchState×offPunchState决定显示

新增: AttendanceStatus / PunchApi / PunchViewModel / PunchPanelView
修改: NetworkModule / HomeFragment / fragment_home.xml
删除: AttendanceInfo(被AttendanceStatus替代)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 20:57:17 +09:30
dongliang
b7a1b2683f feat: 提示弹窗按原型图V3重设计
- 圆形图标背景(85dp):成功绿/错误红/警告橙 15%透明
- 标题 28sp(原22sp)
- 描述 20sp(原15sp)
- 倒计时 18sp
- 整体居中,大字醒目

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 13:58:09 +09:30
dongliang
2f0fc675d2 feat: 任务页面按原型图V3适老化重设计
按状态显示不同布局:
- 待抢单:任务名+地点+时间+积分+备注 → 帮助决策
- 待打卡(有场景):任务名+备注+指引块(去哪+怎么做) → 两段式指引
- 待打卡(无场景):任务名+绿色引导块 → 正向说明
- 待完成:任务名+备注+打卡时间大字确认 → 安心感
标题栏三栏:返回+状态名+页码
新增指引块drawable(orange/blue/green/note)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 13:09:04 +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
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
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
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
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