Merge pull request #146 from r4khul/feat/location-permission
Extend permission denied handling functionality to location toggle tracking in main screen
This commit is contained in:
commit
1eb191bea4
1 changed files with 19 additions and 1 deletions
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:app_settings/app_settings.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:traccar_client/main.dart';
|
||||
|
|
@ -105,7 +106,24 @@ class _MainScreenState extends State<MainScreen> {
|
|||
_checkBatteryOptimizations(context);
|
||||
}
|
||||
} on PlatformException catch (error) {
|
||||
messengerKey.currentState?.showSnackBar(SnackBar(content: Text(error.message ?? error.code)));
|
||||
final providerState = await bg.BackgroundGeolocation.providerState;
|
||||
final isPermissionError = providerState.status == bg.ProviderChangeEvent.AUTHORIZATION_STATUS_DENIED ||
|
||||
providerState.status == bg.ProviderChangeEvent.AUTHORIZATION_STATUS_RESTRICTED;
|
||||
if (!mounted) return;
|
||||
messengerKey.currentState?.showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(error.message ?? error.code),
|
||||
duration: const Duration(seconds: 4),
|
||||
action: isPermissionError
|
||||
? SnackBarAction(
|
||||
label: AppLocalizations.of(context)!.settingsTitle,
|
||||
onPressed: () => AppSettings.openAppSettings(
|
||||
type: AppSettingsType.settings,
|
||||
),
|
||||
)
|
||||
: null,
|
||||
),
|
||||
);
|
||||
}
|
||||
} else {
|
||||
FirebaseCrashlytics.instance.log('tracking_toggle_stop');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue