Update gps_controller to not require location accuracy in android.

Adds basic target matching. If Android Do... Else use old code.
This commit is contained in:
reb1995
2026-04-06 13:09:41 -04:00
committed by GitHub
parent 157e72011f
commit d7be022a11
+16 -7
View File
@@ -4,6 +4,9 @@ import 'package:flutter_map_animations/flutter_map_animations.dart';
import 'package:geolocator/geolocator.dart';
import 'package:latlong2/latlong.dart';
import 'package:geolocator_android/geolocator_android.dart' show AndroidSettings;
import 'package:flutter/foundation.dart' show defaultTargetPlatform, TargetPlatform;
import '../../dev_config.dart';
import '../../app_state.dart' show FollowMeMode;
import '../../services/proximity_alert_service.dart';
@@ -145,15 +148,21 @@ class GpsController {
void _startPositionStream() {
final followMeMode = _getCurrentFollowMeMode?.call() ?? FollowMeMode.off;
final distanceFilter = followMeMode == FollowMeMode.off ? 5 : 1; // 5m normal, 1m follow-me
debugPrint('[GpsController] Starting GPS position stream (${distanceFilter}m filter)');
try {
_positionSub = Geolocator.getPositionStream(
locationSettings: LocationSettings(
accuracy: LocationAccuracy.high, // Request best, accept what we get
distanceFilter: distanceFilter,
),
locationSettings: defaultTargetPlatform == TargetPlatform.android
? AndroidSettings(
accuracy: LocationAccuracy.high,
distanceFilter: distanceFilter,
forceLocationManager: true,
)
: LocationSettings(
accuracy: LocationAccuracy.high,
distanceFilter: distanceFilter,
),
).listen(
_onPositionReceived,
onError: _onPositionError,
@@ -358,4 +367,4 @@ class GpsController {
_onMapMovedProgrammatically = null;
_isUserInteracting = null;
}
}
}