Harden geofence automation and home editing

This commit is contained in:
Artem Kokos
2026-05-15 11:26:23 +07:00
parent 50748c6945
commit 8ffaa14b60
21 changed files with 718 additions and 160 deletions

View File

@@ -0,0 +1,69 @@
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();
}
}