diff --git a/lib/screens/addCam/services/geolocator_service.dart b/lib/screens/addCam/services/geolocator_service.dart index fa2d555..547c633 100644 --- a/lib/screens/addCam/services/geolocator_service.dart +++ b/lib/screens/addCam/services/geolocator_service.dart @@ -28,4 +28,15 @@ class GeolocatorService { return await Geolocator.getCurrentPosition(); } + + static Future alwaysPositionEnabled() async { + LocationPermission permissionGiven = await Geolocator.checkPermission(); + bool locationEnabled = await Geolocator.isLocationServiceEnabled(); + + if (permissionGiven == LocationPermission.always || !locationEnabled) { + return true; + } else { + return false; + } + } } diff --git a/lib/screens/excursion/widgets/tracking.dart b/lib/screens/excursion/widgets/tracking.dart index 5c39e6c..96c47d0 100644 --- a/lib/screens/excursion/widgets/tracking.dart +++ b/lib/screens/excursion/widgets/tracking.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'dart:math'; import 'package:fforte/l10n/app_localizations.dart'; +import 'package:fforte/screens/addCam/services/geolocator_service.dart'; import 'package:fforte/screens/helper/add_entries_dialog_helper.dart'; import 'package:fforte/screens/helper/snack_bar_helper.dart'; import 'package:fforte/services/notification_service.dart'; @@ -59,6 +60,13 @@ class _TrackingState extends State { ); super.initState(); + + GeolocatorService.alwaysPositionEnabled().then((value) { + if (!value && mounted) { + Navigator.of(context).pop(); + SnackBarHelper.showSnackBarMessage(context, "${AppLocalizations.of(context)!.locationForbidden} ${AppLocalizations.of(context)!.oder} ${AppLocalizations.of(context)!.locationDisabled}"); + } + }); } @override @@ -108,6 +116,7 @@ class _TrackingState extends State { notificationText: "", ) : null, + ), ).listen((Position? position) { if (position != null) {