70 lines
1.6 KiB
Dart
70 lines
1.6 KiB
Dart
import 'package:geolocator/geolocator.dart';
|
|
|
|
abstract class LocationPlatformService {
|
|
Future<bool> isLocationServiceEnabled();
|
|
|
|
Future<LocationPermission> checkPermission();
|
|
|
|
Future<LocationPermission> requestPermission();
|
|
|
|
Future<Position?> getLastKnownPosition();
|
|
|
|
Future<Position> getCurrentPosition({
|
|
required LocationSettings locationSettings,
|
|
});
|
|
|
|
Stream<Position> getPositionStream({
|
|
required LocationSettings locationSettings,
|
|
});
|
|
|
|
Future<bool> openAppSettings();
|
|
|
|
Future<bool> openLocationSettings();
|
|
}
|
|
|
|
class DeviceLocationPlatformService implements LocationPlatformService {
|
|
@override
|
|
Future<bool> isLocationServiceEnabled() {
|
|
return Geolocator.isLocationServiceEnabled();
|
|
}
|
|
|
|
@override
|
|
Future<LocationPermission> checkPermission() {
|
|
return Geolocator.checkPermission();
|
|
}
|
|
|
|
@override
|
|
Future<LocationPermission> requestPermission() {
|
|
return Geolocator.requestPermission();
|
|
}
|
|
|
|
@override
|
|
Future<Position?> getLastKnownPosition() {
|
|
return Geolocator.getLastKnownPosition();
|
|
}
|
|
|
|
@override
|
|
Future<Position> getCurrentPosition({
|
|
required LocationSettings locationSettings,
|
|
}) {
|
|
return Geolocator.getCurrentPosition(locationSettings: locationSettings);
|
|
}
|
|
|
|
@override
|
|
Stream<Position> getPositionStream({
|
|
required LocationSettings locationSettings,
|
|
}) {
|
|
return Geolocator.getPositionStream(locationSettings: locationSettings);
|
|
}
|
|
|
|
@override
|
|
Future<bool> openAppSettings() {
|
|
return Geolocator.openAppSettings();
|
|
}
|
|
|
|
@override
|
|
Future<bool> openLocationSettings() {
|
|
return Geolocator.openLocationSettings();
|
|
}
|
|
}
|