Feature/offline report queue #666
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request refactors report and background track syncing to support offline persistence and retries. It also restores device-side background track masking (even though the tracks are also being masked by the API), and it includes documentation showing history of background tracking approaches (necessary for adjusting models based on changes to the code over time). Finally, updates iOS project configuration.
Background tracking and offline syncing improvements:
docs/background_tracking_history.md, including requirements, implementation status, and validation steps.lib/utils/BackgroundTracking.dartand integrated vialib/main.dartand related files. [1] [2] [3] [4]callbackDispatcherand UI flows to invokesyncPendingFixeson startup and after tracking configuration, ensuring pending background location samples are reliably synced. [1] [2] [3]Report syncing and offline queue integration:
ReportSyncServiceto support queuing and syncing of user reports when offline, replacing direct API calls in various controllers and pages. This ensures reports are not lost due to connectivity issues and are retried automatically. [1] [2] [3] [4] [5] [6] [7]iOS project configuration and build settings:
ios/Runner.xcodeproj/project.pbxprojandios/Runner/Info.plist) to use the correct bundle identifier (cat.ibeji.tigatrapp), changed the development team to6MGZ4KYJ2V, and added missing framework dependencies for new features. This aligns the build with production requirements and resolves provisioning/profile issues. [1] [2] [3] [4] [5] [6] [7] [8] [9]These changes collectively improve reliability, maintainability, and production readiness for background tracking and report syncing.