Commit graph

23 commits

Author SHA1 Message Date
a5dd3323f5
feat: rename package to dev.fiatcode.tracpulse and app to TracPulse
- Update Android package namespace and applicationId to dev.fiatcode.tracpulse
- Update AndroidManifest.xml package and app label to TracPulse
- Move all Kotlin source files to dev/fiatcode/tracpulse/ package
- Update pubspec.yaml name to tracpulse
- Update all Dart imports from package:traccar_client to relative
- Rename TraccarClientApp class to TracPulseApp
- Update user-facing strings in permission_screen to TracPulse
- Update notification channel label and wakeLock tag to TracPulse
2026-04-30 18:01:19 +07:00
49523aa67b
feat: add custom launcher icon with teal T and glow effect 2026-04-30 17:30:02 +07:00
4bbc0bcdcb
fix: set dark theme globally to prevent white flash on page transitions 2026-04-30 16:41:28 +07:00
6cbb7a2070
fix: permission screen - location tap opens settings when permanently denied, battery dialog re-checks on done 2026-04-30 16:21:07 +07:00
650a6efeca
feat: add permission screen shown before main screen 2026-04-30 16:11:45 +07:00
bbd51d1c35
fix: critical bugs preventing location reporting to server
- Send config to native before starting tracking (SharedPreferences sync)
- Register ConnectivityReceiver for network state detection
- Fix Settings number fields using TextEditingControllers
- Cancel stream subscription on widget dispose (memory leak)
- Replace WorkManager with AlarmManager for heartbeat
- Add log cleanup for logs older than 24 hours
- Change HTTP method from GET to POST

These fixes resolve the 'device always offline' issue where:
1. Config was not being sent to native service
2. ConnectivityReceiver was never registered
3. Settings number fields were not saving
4. Heartbeat never fired due to WorkManager process isolation
5. Server expected POST not GET
2026-04-30 15:38:24 +07:00
3ae8bf00c1
feat: add getLogs method to BridgeModule for fetching event logs 2026-04-30 13:26:23 +07:00
cd34c8bbf3
feat: add send location button to force immediate report 2026-04-30 13:23:07 +07:00
f764e33944
fix: read config from SharedPreferences and persist tracking state 2026-04-30 13:12:13 +07:00
4365084625
fix: implement updateTrackingConfig and getStatus in BridgeModule 2026-04-30 13:09:57 +07:00
07bae466cf
fix: address analysis issues - remove unused import, fix deprecated APIs, update test 2026-04-30 11:40:56 +07:00
1241174705
fix: set EventChannel stream handler to emit location updates to Flutter 2026-04-30 11:16:55 +07:00
45da511f87
feat: add platform channel bridge between Flutter and Android 2026-04-30 11:14:27 +07:00
724fbe1bdb
feat: add LocationTrackingService foreground service 2026-04-30 11:10:23 +07:00
8ba3a017cd
fix: invoke heartbeat callback in HeartbeatWorker.doWork()
The onHeartbeat callback passed to scheduleHeartbeat() was never invoked because HeartbeatWorker.doWork() returned success without calling it.

Fix: Store callback in companion object and invoke it when worker runs.
2026-04-30 11:08:21 +07:00
5cdbb2be08
feat: add HeartbeatScheduler with WorkManager 2026-04-30 11:05:07 +07:00
c035181d8d
feat: add ConnectivityReceiver for network state monitoring 2026-04-30 11:03:17 +07:00
c11a26c09e
feat: add TraccarHttpClient for server communication 2026-04-30 11:02:09 +07:00
c1bd51eb48
feat: add DistanceFilterProcessor with Haversine formula 2026-04-30 11:00:03 +07:00
0f969afbd5
feat: add FusedLocationProvider for GPS location acquisition 2026-04-30 10:58:27 +07:00
1d6aad599c
feat: add Room database with LocationDao and EventLogDao 2026-04-30 10:55:44 +07:00
8611df1c75
feat: add Location and EventLogEntry data models 2026-04-30 10:53:55 +07:00
01ec1a4807
chore: configure Android permissions and dependencies 2026-04-30 10:52:31 +07:00