import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:geolocator/geolocator.dart'; /// Provides the device current position on demand. Tests may override this /// provider to inject a fake Position. final currentPositionProvider = FutureProvider.autoDispose(( ref, ) async { // Mirror the runtime usage in the app: ask geolocator for the current // position with high accuracy. Caller (UI) should handle permission // flows / errors. final position = await Geolocator.getCurrentPosition( locationSettings: const LocationSettings(accuracy: LocationAccuracy.high), ); return position; }); /// Stream of device positions for live tracking. Tests can override this /// provider to inject a fake stream. final currentPositionStreamProvider = StreamProvider.autoDispose(( ref, ) { const settings = LocationSettings( accuracy: LocationAccuracy.high, distanceFilter: 5, // small filter for responsive UI in tests/dev ); return Geolocator.getPositionStream(locationSettings: settings); });