Commit Graph

806 Commits

Author SHA1 Message Date
Achintha Isuru
b289ed3b02 feat(auth): add staff-specific sign-out endpoint and enhance session management 2026-03-17 10:21:57 -04:00
Achintha Isuru
4fca87bde1 Refactor auth repo imports; remove unused flag
Consolidate and reorder imports in the client authentication repository by moving the auth_repository_interface import to the top and removing the duplicate import. Also remove the unused UnauthorizedAppException reference from the imported symbols. In the staff authentication repository, drop the unused requiresProfileSetup variable (extracted from API response) and tidy up minor whitespace—removing dead code and silencing analyzer warnings.
2026-03-16 22:56:15 -04:00
Achintha Isuru
b31a615092 feat: Migrate staff profile features from Data Connect to V2 REST API
- Removed data_connect package from mobile pubspec.yaml.
- Added documentation for V2 profile migration status and QA findings.
- Implemented new session management with ClientSessionStore and StaffSessionStore.
- Created V2SessionService for handling user sessions via the V2 API.
- Developed use cases for cancelling late worker assignments and submitting worker reviews.
- Added arguments and use cases for payment chart retrieval and profile completion checks.
- Implemented repository interfaces and their implementations for staff main and profile features.
- Ensured proper error handling and validation in use cases.
2026-03-16 22:45:06 -04:00
Achintha Isuru
4834266986 feat: add entities for staff personal info, reports, shifts, and user sessions
- Implemented StaffPersonalInfo entity for staff profile data.
- Created ReportSummary entity for summarizing report metrics.
- Added SpendReport and SpendDataPoint entities for spend reporting.
- Introduced AssignedShift, CancelledShift, CompletedShift, OpenShift, PendingAssignment, ShiftDetail, TodayShift entities for shift management.
- Developed ClientSession and StaffSession entities for user session management.
2026-03-16 15:59:22 -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
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
038b590468 Add flavor-specific app icons setup for Android and iOS
- Create documentation for configuring flavor-specific app icons in mobile applications.
- Implement scripts to generate and set up flavor-specific icons for Android and iOS.
- Configure iOS schemes to use the appropriate AppIcon asset sets for dev and stage flavors.
- Ensure generated icons meet required sizes and formats for both platforms.
- Provide troubleshooting steps and CI/CD integration guidelines for automated builds.
2026-03-12 14:42:11 -04:00
Achintha Isuru
1a6132a485 chore: added logo images for each different flavours of the mobile apps. 2026-03-12 14:17:22 -04:00
Achintha Isuru
2071585158 feat: remove unused import and clean up emergency contact info banner widget 2026-03-10 23:54:38 -04:00
Achintha Isuru
e60413f45c feat: add shimmer loading skeletons for emergency contact section 2026-03-10 17:02:16 -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
ccf1a75a4d feat: update dependency injection to use lazy singletons for availability repository and use cases 2026-03-10 14:53:34 -04:00
Achintha Isuru
9c7ba321bc feat: implement shimmer loading skeletons for client home header and enhance loading states in banners 2026-03-10 14:32:05 -04:00
Achintha Isuru
4423775fa1 feat: add shimmer loading skeletons for various pages and components
- Implemented ReorderCardSkeleton and ReorderSectionSkeleton for the client home page.
- Added SpendingCardSkeleton and SpendingSectionSkeleton for spending-related UI.
- Created OrderCardSkeleton and associated skeletons for the view orders page.
- Developed MetricCardSkeleton and MetricsGridSkeleton for reports page metrics.
- Introduced HomePageSkeleton and its components for staff home page.
- Added PaymentItemSkeleton and PaymentsPageSkeleton for payments page.
- Created ShiftDetailsPageSkeleton and related components for shift details.
- Implemented ShiftsPageSkeleton and ShiftCardSkeleton for shifts page.
2026-03-10 14:25:56 -04:00
Achintha Isuru
2d6133aba8 feat: Add shimmer loading skeletons for various pages and components
- Implemented `ClientHomePageSkeleton` for the client home page to display a loading state with shimmer effects.
- Created `OrderFormSkeleton` to mimic the layout of the order creation form while data is being fetched.
- Added `ViewOrdersPageSkeleton` to represent the loading state of the view orders page with placeholders for order cards.
- Updated `ClientHomeBody` to show the skeleton during loading states.
- Enhanced shimmer effects in `UiShimmerListItem`, `UiShimmerStatsCard`, and other UI components for consistency.
- Introduced `isDataLoaded` state in order-related BLoCs to manage loading states effectively.
2026-03-10 14:19:49 -04:00
Achintha Isuru
e6ebae60e4 feat: update routing paths and improve UI components in order forms 2026-03-10 13:32:39 -04:00
Achintha Isuru
0f0714c55b feat: add shimmer loading skeletons for various pages and components
- Implemented UiShimmer as a core shimmer wrapper for animated gradient effects.
- Created shimmer presets for list items, stats cards, section headers, and more.
- Developed specific skeletons for billing, invoices, coverage, hubs, reports, payments, shifts, and home pages.
- Enhanced user experience by providing visual placeholders during data loading.
2026-03-10 13:21:30 -04:00
Achintha Isuru
80b83a16f3 Refactor coverage widgets and improve localization
- Replaced custom navigation buttons with a new CalendarNavButton widget in coverage_calendar_selector.dart.
- Removed the CoverageHeader widget as it is no longer needed.
- Updated CoverageQuickStats to use CoverageStatCard for displaying statistics.
- Refactored CoverageShiftList to utilize ShiftHeader and WorkerRow for better structure.
- Added LateWorkersAlert with improved localization for late worker notifications.
- Introduced CoverageBadge and CoverageStatCard for better encapsulation of UI components.
- Created CoverageStatsHeader for displaying coverage metrics in a consistent format.
- Implemented ShiftHeader to manage shift-related information display.
- Developed WorkerRow to represent individual worker statuses with proper localization.
2026-03-10 12:27:27 -04:00
Achintha Isuru
a22a092b56 fix: Adjust border width and improve layout of stat card in coverage quick stats 2026-03-10 12:08:51 -04:00
Achintha Isuru
825cffbc33 feat: Update typography styles and improve layout in coverage components 2026-03-10 12:07:36 -04:00
Achintha Isuru
1f79541404 feat: Implement UI for adding new shift manager during order creation 2026-03-10 11:46:11 -04:00
Achintha Isuru
3d6b49f500 feat: Add forms and UI components for one-time, permanent, and recurring orders
- Implemented OneTimeOrderForm widget for creating one-time orders with fields for event name, vendor selection, date, hub, hub manager, and positions.
- Created OrderBottomActionButton for a consistent bottom action button across order views.
- Developed PermanentOrderForm for permanent orders, including event name, vendor selection, start date, permanent days, hub, hub manager, and positions.
- Added RecurringOrderForm for recurring orders with fields for event name, vendor selection, start/end dates, recurring days, hub, hub manager, and positions.
- Introduced PermanentOrderDaysSelector and RecurringOrderDaysSelector for selecting days of the week in permanent and recurring orders respectively.
2026-03-10 11:08:03 -04:00
Achintha Isuru
0d241844dd feat: Enhance review order summary with hours display and localization for hours suffix 2026-03-10 10:44:01 -04:00
Achintha Isuru
48207367cb feat: Add estimated weekly total label and refactor cost calculations for one-time and recurring orders 2026-03-10 10:31:08 -04:00