Commit graph

33 commits

Author SHA1 Message Date
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
a7a6a6a82d
fix: event log filter bar below app bar, two-line log entries 2026-04-30 16:01:00 +07:00
c781fc5079
fix: improve button layout and event log readability 2026-04-30 15:56:16 +07:00
02040081ce
feat: revamp UI with dark terminal aesthetic 2026-04-30 15:46:53 +07:00
d673f01a2d
chore: format code 2026-04-30 15:39:19 +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
4eade880b1
fix: query tracking state on startup to sync with service 2026-04-30 13:13:18 +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
cb8c1ab43b
fix: use debugPrint instead of print, ignore deprecated value param 2026-04-30 11:55:52 +07:00
07bae466cf
fix: address analysis issues - remove unused import, fix deprecated APIs, update test 2026-04-30 11:40:56 +07:00
85249acc84
feat: update main.dart with app initialization 2026-04-30 11:25:34 +07:00
01cf56f998
feat: add StatusScreen for event log viewing 2026-04-30 11:22:13 +07:00
4e2afa3428
feat: add SettingsScreen for configuration 2026-04-30 11:20:50 +07:00
db08fc8d5c
feat: add MainScreen with tracking toggle and status display 2026-04-30 11:18:39 +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
d1b7948723
feat: add Preferences for settings persistence 2026-04-30 11:12:30 +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
fae9ee3848
docs: add implementation plan 2026-04-30 10:49:39 +07:00
f1c076d71a
docs: add traccar client design spec 2026-04-30 10:45:39 +07:00