feat(04-01): add timestamp to ProcessedGpsData and precision/lifecycle constants
- Add timestamp field to ProcessedGpsData with copyWith support - Add precision switching thresholds: 3.33 m/s (12 km/h) up, 2.22 m/s (8 km/h) down - Add PRECISION_SWITCH_FIRST_FIX_DELAY (5s) to prevent early switching - Add BACKGROUND_GRACE_PERIOD (7s) for lifecycle-aware GPS management - Mark GPS_GRACE_PERIOD as deprecated in favor of BACKGROUND_GRACE_PERIOD - Change GpsService.positionStream to createPositionStream() with dynamic accuracy - Keep deprecated positionStream getter for backward compatibility Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+12
-3
@@ -6,15 +6,24 @@ import 'config/gps_constants.dart';
|
||||
class GpsService {
|
||||
static double? _lastValidHeading;
|
||||
|
||||
static Stream<Position> get positionStream {
|
||||
/// Create a position stream with dynamic accuracy setting
|
||||
static Stream<Position> createPositionStream({
|
||||
LocationAccuracy accuracy = LocationAccuracy.high,
|
||||
}) {
|
||||
return Geolocator.getPositionStream(
|
||||
locationSettings: const LocationSettings(
|
||||
accuracy: LocationAccuracy.bestForNavigation,
|
||||
locationSettings: LocationSettings(
|
||||
accuracy: accuracy,
|
||||
distanceFilter: 0,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/// Deprecated: Use createPositionStream() instead
|
||||
@Deprecated('Use createPositionStream(accuracy: LocationAccuracy.bestForNavigation) instead')
|
||||
static Stream<Position> get positionStream {
|
||||
return createPositionStream(accuracy: LocationAccuracy.bestForNavigation);
|
||||
}
|
||||
|
||||
static Future<bool> requestPermissions() async {
|
||||
final permission = await Permission.locationWhenInUse.request();
|
||||
return permission.isGranted;
|
||||
|
||||
Reference in New Issue
Block a user