Commit Graph

88 Commits

Author SHA1 Message Date
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
15b7b438e4 fix: 考勤面板字体全面加大加粗(老年用户适配)
时间: 48sp→60sp bold
状态文字: 16sp→22sp bold
NFC提示: 18sp→22sp bold
按钮文字: 20sp→26sp bold,高度56dp→64dp
撤销文字: 18sp→22sp bold
面板padding稍微收紧(28→24dp)腾出更多内容空间

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 10:47:48 +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
c318dbdfa5 fix: 去掉面板日期 + 修复NFC全零卡号误触发
1. 面板去掉日期显示,只保留时间
2. FiseNfcController读到全零卡号(无卡贴近)时不触发回调,
   避免拿无效nfcId调API导致直接失败

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 21:17:57 +09:30
dongliang
6021171a40 fix: 修复下拉手势无响应,改用自定义SwipeDownLayout
ViewPager2内部RecyclerView会拦截触摸事件,导致setOnTouchListener
和GestureDetector都收不到下拉手势。

改用SwipeDownLayout(自定义FrameLayout),在onInterceptTouchEvent中
检测下拉——事件到达子View之前就能观察到,原理同SwipeRefreshLayout。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 21:03:03 +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
98de3f0b46 revert: 删除考勤打卡模块代码,准备重新开发
删除:PunchStatus.kt, PunchApi.kt, PunchFragment.kt, fragment_punch.xml
恢复:HomeFragment(去掉下拉手势/PunchApi/工作状态处理)
恢复:fragment_home.xml(去掉pullDownArea覆盖层)
恢复:nav_main.xml(去掉action_home_to_punch)
恢复:NetworkModule(去掉PunchApi提供者)

考勤模块将按NFC打卡流程重新从需求开始设计开发。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 20:23:00 +09:30
dongliang
5a5c8bfaa0 fix: 考勤页面交互全面优化
1. 半屏下拉面板(不是全屏页面)
2. 去掉状态文字,按钮即状态
3. 点击空白收回面板
4. 增加时间+日期显示(每秒更新)
5. NFC开启时播放语音+振动(planId=8开启/planId=4成功/planId=7失败)
6. NFC扫描时按钮变"NFC扫描中..."(不弹窗)
7. 点击扫描中的按钮可取消扫描
8. 10秒超时自动关闭+振动提示

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 20:04:42 +09:30
dongliang
d9ee5f2059 fix: 考勤页面优化
1. 下拉区域扩大到上半屏(140dp),只拦截垂直不拦截水平
2. 考勤页布局优化:居中考勤状态+按钮+低耗电提示
3. 按钮固定宽度250dp,更美观
4. 添加上滑返回手势(考勤页上滑回首页)
5. 去掉底部"上滑返回"文字(已有手势)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 19:53:04 +09:30
dongliang
2d5726db9a fix: 下拉手势改为在状态栏区域检测(避免ViewPager2拦截)
状态栏区域扩大为40dp触摸区,在此区域检测下拉手势进入考勤页

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 18:38:17 +09:30
dongliang
c812b9ee1a feat: 考勤打卡模块(新方法论首个验证模块)
基于分析产出物开发(discovery-map考勤章节+baseline/05流程6):
- PunchFragment 3种状态(未上班/已上班/已下班)
- PunchApi 3个接口(getAttendance/onAndOffPunch/revokePunch)
- PunchStatus 数据类(字段名基于分析,非猜测)
- 上班打卡:蓝牙识别1.5s→确认弹窗→API
- 下班打卡:蓝牙识别1.5s→直接提交→低耗电模式
- 撤销打卡:确认弹窗→API→恢复
- 首页下拉手势→考勤页
- 蓝牙用模拟MAC,后续对接

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 18:34:36 +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
bf71075adf feat: 待完成页面按任务类型区分显示
普通任务(type 0/1/2/3/4):地点+备注+打卡时间+指引块"任务进行中"→完成任务
巡检任务(type 5):场景打卡清单(已打卡/未打卡)+进度(2/5)→开启打卡

新增:InspectScene 数据类,TaskDetail.taskInspectScenes 类型化

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 13:39:50 +09:30
dongliang
7f06cdc9d1 fix: 任务页3项优化
1. 标题栏固定顶部不随内容滚动
2. 底部按钮高度缩小(padding 21→13dp)字体加大(24→28sp)
3. 待完成页面改为:地点+备注+打卡时间+绿色指引块"任务进行中,完成工作后点击下方按钮"
   按钮文字改为"完成任务"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 13:29:33 +09:30
dongliang
d7b61bf0fa fix: 任务页全面放大字体+显示截止时间
字体放大:任务名34sp, 地点24sp, 时间22sp, 积分26sp, 备注20sp
指引块标题24sp, 说明20sp, 打卡确认44sp
新增截止时间和要求完成时间显示(待抢单状态)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 13:22:41 +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
354a2ab124 fix: 任务页面优化老年人布局
- 去掉左右标签行(ConfigRow),改为全部居中展示
- 状态标签顶部居中带pill背景色
- 任务名 30sp 最大最醒目
- 地点 22sp 蓝色
- 时间信息合并显示(派单+截止+要求完成)
- 积分 24sp 橙色(0分时隐藏)
- 操作按钮 24sp 更大
- 返回按钮 40dp 更大触摸区

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 12:24:21 +09:30
dongliang
b691b432fb feat: 任务详情补充缺失字段
新增显示:
- 状态标签(彩色文字:待抢单/待打卡/进行中/已完成)
- 截止时间(expireTime)
- 预计完成时间(preFinishTime,指派任务)
- 上报人(createName,type 3/4 时显示)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 12:13:21 +09:30
dongliang
a25675c5b2 fix: 去掉任务详情页中的分段控件tab,腾出更多内容空间
标题栏直接显示状态名+任务进度(如"接单池 第1/50个")

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