Commit Graph

1558 Commits

Author SHA1 Message Date
zouantchaw
32f6cd55c8 feat(api): add M5 coverage controls and frontend spec 2026-03-18 08:18:50 +01:00
zouantchaw
008dd7efb1 fix(api): close v2 mobile contract gaps 2026-03-17 22:37:45 +01:00
Achintha Isuru
afcd896b47 Merge pull request #651 from Oloodi/599-sred-research-develop-adaptive-battery-optimized-user-location-tracking-fe
feat(clock_in): Geofence validation, background tracking & feature restructuring
2026-03-17 12:19:20 -04:00
Achintha Isuru
a71fe3be73 Merge pull request #655 from Oloodi/codex/feat-staff-auth-clockin-fixes
fix(auth): align demo staff phone identity and clock-in payload
2026-03-17 10:01:07 -04:00
zouantchaw
13471629f6 fix(auth): align demo staff phone identity and clock-in payload 2026-03-17 14:44:32 +01:00
Achintha Isuru
1a3a120499 Merge pull request #654 from Oloodi/codex/feat-v2-auth-docs
docs(auth): clarify v2 auth flows and refresh
2026-03-17 08:51:02 -04:00
zouantchaw
4e72c84276 docs(auth): document v2 auth flows and refresh 2026-03-17 13:46:29 +01:00
Achintha Isuru
49e765c8d8 Merge pull request #653 from Oloodi/codex/feat-m5-attendance-monitoring-foundation
feat(attendance): add M5 monitoring and notification foundation
2026-03-16 13:05:01 -04:00
zouantchaw
515a6f2bed fix(notifications): replace Cloud Run job with worker service 2026-03-16 17:54:25 +01:00
zouantchaw
73287f42bd feat(attendance): add notification delivery and NFC security foundation 2026-03-16 17:06:17 +01:00
zouantchaw
5d8240ed51 feat(attendance): add geofence monitoring and policy controls 2026-03-16 15:31:13 +01:00
Achintha Isuru
4480be5fee Merge pull request #652 from Oloodi/codex/feat-v2-unified-api-surface
feat(api): complete unified v2 mobile surface
2026-03-16 09:38:44 -04:00
Achintha Isuru
1bb1f590c5 Add WorkManager guidance and navigation exception
Add a new "Background Tasks & WorkManager" section with checklist items for reviewing background task code (app background/killed behavior, doze/timing, minimum periodic interval, background location permissions, battery optimization, data passed to background isolates, failure handling, and task cleanup). Also clarify navigation guidance by allowing Navigator.push() when popping a dialog (note added to both Mobile Architecture skill and Mobile QA Analyst agent docs).
2026-03-16 02:34:39 -04:00
Achintha Isuru
c0a7ca1329 Increase background geofence interval to 15m
Update BackgroundGeofenceService to register the periodic geofence task with a 15-minute interval instead of 10 seconds. This reduces frequent wakeups and resource usage and better matches typical platform background scheduling constraints.
2026-03-16 02:31:07 -04:00
Achintha Isuru
f4c56cf547 Update clock_in_bloc.dart 2026-03-16 02:25:55 -04:00
Achintha Isuru
31f03aa52a feat: Enhance clock-in feature with time window auto-refresh and lunch break data handling 2026-03-16 01:55:20 -04:00
Achintha Isuru
c5b5c14655 feat: Add mobile QA analyst agent for Flutter code analysis and bug detection 2026-03-16 01:35:49 -04:00
Achintha Isuru
5fd2a44a8b feat: Add localization for hourly rate and enhance geofence notifications
- Added localization for hourly rate in English and Spanish.
- Updated background geofence service to use localized notification titles and bodies.
- Enhanced ClockInBloc to compute time window flags for check-in/check-out availability.
- Updated ClockInState and ClockInEvent to include check-in/check-out availability flags and messages.
- Refactored ClockInActionSection to display availability messages based on computed flags.
- Ensured compliance with design system for user-facing strings and notification messages.
2026-03-16 01:27:15 -04:00
Achintha Isuru
86335dd177 feat(SKILL.md): add shift card design specifications and status chip variants 2026-03-15 21:42:12 -04:00
Achintha Isuru
5c99ddbca7 feat(SKILL.md): update interaction patterns for modals and long lists with date filters 2026-03-15 21:07:57 -04:00
Achintha Isuru
29adf60b8a feat(specification): update clock-in process with time-window enforcement and location verification details 2026-03-15 00:27:34 -04:00
Achintha Isuru
e02de1fb68 feat(clock_in): add early check-out banner and localization support 2026-03-14 20:36:35 -04:00
Achintha Isuru
f6de07fc25 refactor(clock_in): rename error handling variable for clarity in check-in interactions 2026-03-14 20:28:28 -04:00
Achintha Isuru
10bd61b250 feat(clock_in): add error handling support to check-in interactions 2026-03-14 20:21:10 -04:00
Achintha Isuru
e93f7f7004 fix(clock_in): improve error handling and state reset logic in clock-in process 2026-03-14 20:11:19 -04:00
Achintha Isuru
aa556c4a05 refactor(clock_in): reorganize validation logic into separate validator files 2026-03-14 20:03:30 -04:00
Achintha Isuru
28a219bbea Refactor clock-in feature: Introduce validation pipeline and interaction strategies
- Added a validation pipeline for clock-in actions, including geofence, time window, and override notes validators.
- Created a context class for passing validation data and results.
- Implemented check-in interaction strategies for swipe and NFC methods, encapsulating their UI and behavior.
- Removed redundant utility functions and centralized time formatting in a new utility file.
- Enhanced the notification service to handle clock-in and clock-out notifications separately.
- Updated the ClockInBloc to utilize the new validation and notification services.
- Cleaned up the ClockInActionSection widget to use the new interaction strategies and removed unnecessary listeners.
2026-03-14 19:58:43 -04:00
Achintha Isuru
e3f7e1ac3e fix(clock_in): restore early check-in banner logic for active shifts 2026-03-14 14:30:28 -04:00
Achintha Isuru
3478436227 refactor(clock_in): reorganize geofence and clock-in BLoC structure
- Deleted old geofence_event.dart and geofence_state.dart files.
- Created new geofence_event.dart and geofence_state.dart files under a dedicated geofence directory.
- Moved clock_in_bloc.dart, clock_in_event.dart, and clock_in_state.dart to a new clock_in directory for better organization.
- Updated import paths throughout the codebase to reflect the new structure.
- Implemented new ClockInBloc and GeofenceBloc classes to handle clock-in and geofence functionalities respectively.
- Enhanced event and state management for clock-in operations, including handling location verification and geofence checks.
2026-03-14 01:23:27 -04:00
Achintha Isuru
08a4326da4 feat: Add task execution callback registration to BackgroundTaskService and update geofence dispatcher to use it 2026-03-14 00:59:39 -04:00
Achintha Isuru
2889098f9f refactor: Replace debugPrint with print statements in background geofence dispatcher for logging 2026-03-14 00:45:18 -04:00
Achintha Isuru
8fcf1d9d98 feat: Enhance background geofence functionality with notifications and localization support 2026-03-13 21:44:39 -04:00
Achintha Isuru
6f57cae247 feat: Add overridden banner for geofence check with justification and update localization strings 2026-03-13 20:47:59 -04:00
Achintha Isuru
c92138a573 refactor: Improve code readability by formatting and restructuring Bloc context usage in ClockInActionSection 2026-03-13 20:44:45 -04:00
Achintha Isuru
1bbd306ca0 feat: Update geofence handling to allow checkout when checked in and show verified banner for overridden geofence 2026-03-13 20:43:51 -04:00
Achintha Isuru
ea078eaa02 refactor: Rearrange MultiBlocProvider and Scaffold structure in ClockInPage for improved readability 2026-03-13 17:15:44 -04:00
Achintha Isuru
a85cd36975 feat: Implement geofence override approval with justification notes and update related state management 2026-03-13 17:11:14 -04:00
Achintha Isuru
ab1cd8c355 feat: Add geofence override functionality with justification modal and update banners 2026-03-13 17:04:40 -04:00
Achintha Isuru
a2b102a96d feat: Update action button styling and color in permission denied banner 2026-03-13 16:44:39 -04:00
Achintha Isuru
accff00155 feat: Enhance geofence functionality with new status banners and utility functions 2026-03-13 16:34:09 -04:00
Achintha Isuru
7b576c0ed4 feat: Implement notification and storage services, geofence management, and BLoC for geofence verification
- Add NotificationService for handling local notifications.
- Introduce StorageService for key-value storage using SharedPreferences.
- Create DeviceLocation model to represent geographic locations.
- Define LocationPermissionStatus enum for managing location permissions.
- Implement BackgroundGeofenceService for periodic geofence checks while clocked in.
- Develop GeofenceServiceImpl for geofence proximity verification using LocationService.
- Create GeofenceResult model to encapsulate geofence check results.
- Define GeofenceServiceInterface for geofence service abstraction.
- Implement GeofenceBloc to manage geofence verification and background tracking.
- Create events and states for GeofenceBloc to handle various geofence scenarios.
- Add GeofenceStatusBanner widget to display geofence verification status in the UI.
2026-03-13 16:01:26 -04:00
Achintha Isuru
2fc6b3139e refactor: reorder import statements for better organization in clock_in_bloc.dart 2026-03-13 13:08:03 -04:00
Achintha Isuru
2c1c71ad01 refactor: simplify widget structure and improve date selection logic in clock-in features 2026-03-13 12:14:06 -04:00
zouantchaw
b455455a49 feat(api): complete unified v2 mobile surface 2026-03-13 17:02:24 +01:00
Achintha Isuru
ec880007d0 feat(clock-in): add adaptive launcher icons and implement clock-in features
- Added adaptive launcher icons for both dev and stage environments in mobile apps.
- Introduced CheckInModeTab widget for selecting check-in methods.
- Created CheckedInBanner to display current check-in status with time.
- Implemented ClockInActionSection to manage check-in/out actions based on shift status.
- Developed ClockInBody to compose the main content of the clock-in page.
- Added utility functions in ClockInHelpers for time formatting and check-in availability.
- Created EarlyCheckInBanner to notify users arriving too early to check in.
- Implemented NFC scan dialog for NFC-based check-ins.
- Added NoShiftsBanner to inform users when no shifts are scheduled.
- Developed ShiftCard and ShiftCardList for displaying shifts in a selectable format.
- Created ShiftCompletedBanner to show success message after completing a shift.
2026-03-13 11:55:59 -04:00
zouantchaw
817a39e305 feat(api): add unified v2 gateway and mobile read slice 2026-03-13 15:17:00 +01:00
Achintha Isuru
13bcfc9d40 Merge pull request #650 from Oloodi/616-implement-shimmer-loading-in-mobile-applications-fe
616 implement shimmer loading in mobile applications fe
2026-03-12 16:54:45 -04:00
Achintha Isuru
8980278cdc chore: clean up pull request template by removing unnecessary sections 2026-03-12 16:54:33 -04:00
Achintha Isuru
a5079c014f feat: update design specifications for label styling and add mobile backend API documentation 2026-03-12 16:50:04 -04:00
Achintha Isuru
94712a2f5b Merge branch 'dev' into 616-implement-shimmer-loading-in-mobile-applications-fe 2026-03-12 14:42:39 -04:00