Commit Graph

60 Commits

Author SHA1 Message Date
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
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
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
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
Achintha Isuru
5a46edba9d feat: update shimmer loading components to remove const constructors for better flexibility 2026-03-10 16:56:55 -04:00
Achintha Isuru
bd98a112a0 feat: add shimmer skeletons for various sections in the staff profile and onboarding features
- Implemented ProfilePageSkeleton for loading state in staff profile.
- Added ReliabilityScoreSkeleton and ReliabilityStatsSkeleton for reliability metrics.
- Created CertificatesSkeleton and related components for loading certificates.
- Developed DocumentsSkeleton and associated document card skeletons.
- Introduced TaxFormsSkeleton for loading tax forms.
- Added BankAccountSkeleton and its components for bank account loading state.
- Created TimeCardSkeleton for displaying time card loading state.
- Implemented AttireSkeleton for loading attire items.
- Added PersonalInfoSkeleton for loading personal information.
- Developed FaqsSkeleton for loading FAQ sections.
- Created PrivacySecuritySkeleton for loading privacy settings.
2026-03-10 15:20:24 -04:00
Achintha Isuru
8497709356 fix: Correct formatting and improve comments in various files for clarity 2026-03-02 12:38:57 -05:00
Achintha Isuru
ea77a49224 feat: Remove commented-out code for commute tracker and attire photo section in ClockInPage 2026-03-01 22:29:15 -05:00
Achintha Isuru
2e043f35b9 feat: Refactor ClockInPage for improved readability and consistency in code formatting 2026-03-01 21:18:41 -05:00
34afe09963 feat: localization, file restriction banners, test credentials, edit icon fix
- #553: Audit and verify localizations (en/es), replace hardcoded strings
- #549: Incomplete profile banner in Find Shifts (staff app)
- #550: File restriction banner on document upload page
- #551: File restriction banner on certificate upload page
- #552: File restriction banner on attire upload page
- #492: Hide edit icon for past/completed orders (client app)
- #524: Display worker benefits in staff app
- Add test credentials to seed: testclient@gmail.com, staff +1-555-555-1234
- Fix document upload validation (context arg in _validatePdfFile on submit)
- Add PR_LOCALIZATION.md

Made-with: Cursor
2026-02-27 13:48:04 +05:30
13f8003bda refactor of usecases 2026-02-23 17:18:50 +05:30
c7bce37312 fix: add unused_element, unused_field, duplicate_ignore to suppress remaining strict linting rules on generated and prototype UI files 2026-02-20 20:48:33 +05:30
ac5d9dab35 fix: add ignore_for_file to remaining files causing lint errors in CI 2026-02-20 20:09:16 +05:30
474be43448 fix: add ignore_for_file to data connect Repos and modify CI to avoid analyzing deleted files 2026-02-20 19:51:44 +05:30
Achintha Isuru
66859e4241 feat(clock-in): Refactor ClockInRepositoryImpl to utilize DataConnectService and simplify dependency injection 2026-02-16 16:00:27 -05:00
c1112ac01c feat: Centralized Error Handling & Crash Fixes 2026-02-11 18:52:23 +05:30
ea06510474 Merge branch 'dev' into feature/centralized-data-error-handling and resolve conflicts 2026-02-11 12:34:29 +05:30
3e212220c7 feat: complete centralized error handling system with documentation 2026-02-11 10:36:08 +05:30
Achintha Isuru
4c38013c10 Standardize UI to design system tokens
Refactor multiple UI components to use design system tokens and primitives. Added new UiIcons (coffee, wifi, xCircle, ban) and typography color getters (primary, accent). Replaced hardcoded paddings, spacings, radii, borderRadius, and icon imports (lucide_icons -> UiIcons) with UiConstants, UiColors, UiTypography and UiIcons, and switched to UiColors.withValues for opacity. Changes apply across authentication, availability, clock_in (and its widgets), commute tracker, lunch break modal, location map placeholder, attendance card, date selector, and related presentation files to improve visual consistency.
2026-02-10 17:17:56 -05:00
Achintha Isuru
c6448ad5c1 Refactor UI components to utilize design system colors and typography
- Removed deprecated app_colors.dart file.
- Updated AttendanceCard widget to use design system colors and typography.
- Refactored CommuteTracker widget for consistent styling with design system.
- Modified DateSelector widget to apply design system styles.
- Adjusted LocationMapPlaceholder widget to align with design system.
- Enhanced LunchBreakDialog with design system colors and typography.
- Updated SwipeToCheckIn widget to utilize design system for colors and text styles.
2026-02-10 16:05:05 -05:00
Achintha Isuru
8edfc72370 refactor: Update AvailabilityPage and ClockInPage to enhance UI consistency and remove unused code 2026-02-10 15:51:50 -05:00
7570ffa3b9 Fix: Resolve critical linting issues and bugs (concurrency, syntax, dead code) 2026-02-10 19:12:01 +05:30
5e7bf0d5c0 refactor: centralize data connect error handling and resolve build issues across applications
This commit addresses several critical issues across the mobile monorepo:

1. Centralized Error Handling: Integrated DataErrorHandler mixin into all repository implementations, ensuring consistent mapping of Data Connect exceptions to domain AppExceptions.
2. Build Stabilization: Fixed numerous type mismatches, parameter signature errors in widgets (e.g., google_places_flutter itemBuilder), and naming conflicts (StaffSession, FirebaseAuth).
3. Code Quality: Applied 'dart fix' across all modified packages and manually cleared debug print statements and UI clutter.
4. Mono-repo alignment: Standardized Data Connect usage and aliasing ('dc.') for better maintainability.

Signed-off-by: Suriya <suriya@tenext.in>
2026-02-06 13:28:57 +05:30
Achintha Isuru
ccf8930126 Use StaffPaths and core imports across staff modules
Centralize and standardize routing by introducing StaffPaths constants (shiftDetailsRoute, formI9, formW4) and using StaffPaths.childRoute in multiple staff feature modules instead of hardcoded paths. Add package:krow_core/core.dart imports where needed, clean up minor formatting/constructor spacing, make some route callbacks explicitly typed, replace shiftDetails string interpolation with the new constant, and remove a debug print from phone verification. These changes unify route definitions and add explicit tax-form routes (I-9 and W-4).
2026-02-04 18:36:37 -05:00
Achintha Isuru
8c1e67cf00 feat: enhance date parsing for shift start time in CommuteTracker 2026-02-02 15:30:15 -05:00
José Salazar
b1ad6f118a checkin status v1, working"
"
2026-02-02 21:32:22 +09:00
José Salazar
818fc1759a solving problem adding checkin time 2026-02-02 20:45:12 +09:00