Merge pull request #155 from reb1995/fix-android-gps-location-accuracy-requirement

Update gps_controller to not require location accuracy in android.
This commit is contained in:
stopflock
2026-05-04 21:38:32 -05:00
committed by GitHub
+14 -7
View File
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_map_animations/flutter_map_animations.dart';
import 'package:geolocator/geolocator.dart';
import 'package:latlong2/latlong.dart';
import 'package:flutter/foundation.dart' show defaultTargetPlatform, TargetPlatform;
import '../../dev_config.dart';
import '../../app_state.dart' show FollowMeMode;
@@ -145,15 +146,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 +365,4 @@ class GpsController {
_onMapMovedProgrammatically = null;
_isUserInteracting = null;
}
}
}