import 'package:geolocator/geolocator.dart'; abstract class LocationPlatformService { Future isLocationServiceEnabled(); Future checkPermission(); Future requestPermission(); Future getLastKnownPosition(); Future getCurrentPosition({ required LocationSettings locationSettings, }); Stream getPositionStream({ required LocationSettings locationSettings, }); Future openAppSettings(); Future openLocationSettings(); } class DeviceLocationPlatformService implements LocationPlatformService { @override Future isLocationServiceEnabled() { return Geolocator.isLocationServiceEnabled(); } @override Future checkPermission() { return Geolocator.checkPermission(); } @override Future requestPermission() { return Geolocator.requestPermission(); } @override Future getLastKnownPosition() { return Geolocator.getLastKnownPosition(); } @override Future getCurrentPosition({ required LocationSettings locationSettings, }) { return Geolocator.getCurrentPosition(locationSettings: locationSettings); } @override Stream getPositionStream({ required LocationSettings locationSettings, }) { return Geolocator.getPositionStream(locationSettings: locationSettings); } @override Future openAppSettings() { return Geolocator.openAppSettings(); } @override Future openLocationSettings() { return Geolocator.openLocationSettings(); } }