fix: query tracking state on startup to sync with service
This commit is contained in:
parent
f764e33944
commit
4eade880b1
1 changed files with 33 additions and 4 deletions
|
|
@ -23,7 +23,32 @@ class _MainScreenState extends State<MainScreen> {
|
||||||
_initLocationStream();
|
_initLocationStream();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _initLocationStream() {
|
Future<void> _initLocationStream() async {
|
||||||
|
final status = await LocationBridge.getStatus();
|
||||||
|
if (mounted) {
|
||||||
|
setState(() {
|
||||||
|
_isTracking = status?['isTracking'] == true;
|
||||||
|
final lat = status?['lastLatitude'];
|
||||||
|
final lon = status?['lastLongitude'];
|
||||||
|
if (lat != null && lat != 0.0) {
|
||||||
|
_lastLat = lat.toStringAsFixed(4);
|
||||||
|
}
|
||||||
|
if (lon != null && lon != 0.0) {
|
||||||
|
_lastLon = lon.toStringAsFixed(4);
|
||||||
|
}
|
||||||
|
final speed = status?['lastSpeed'];
|
||||||
|
if (speed != null) {
|
||||||
|
_lastSpeed = '${(speed * 3.6).toStringAsFixed(0)} km/h';
|
||||||
|
}
|
||||||
|
final timestamp = status?['lastTimestamp'];
|
||||||
|
if (timestamp != null) {
|
||||||
|
_lastTime = _formatTime(
|
||||||
|
DateTime.fromMillisecondsSinceEpoch(timestamp),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
LocationBridge.locationUpdates.listen((location) {
|
LocationBridge.locationUpdates.listen((location) {
|
||||||
if (mounted) {
|
if (mounted) {
|
||||||
setState(() {
|
setState(() {
|
||||||
|
|
@ -52,10 +77,14 @@ class _MainScreenState extends State<MainScreen> {
|
||||||
} else {
|
} else {
|
||||||
await LocationBridge.startTracking();
|
await LocationBridge.startTracking();
|
||||||
}
|
}
|
||||||
|
await Future.delayed(const Duration(milliseconds: 500));
|
||||||
|
final status = await LocationBridge.getStatus();
|
||||||
|
if (mounted) {
|
||||||
setState(() {
|
setState(() {
|
||||||
_isTracking = !_isTracking;
|
_isTracking = status?['isTracking'] == true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue