checkSingleContactPermission method
Implementation
Future<bool> checkSingleContactPermission(BuildContext context) async {
final isDeviceContactEnabled = await _prefs.get(enableDeviceContacts);
if (isDeviceContactEnabled.isBlank) {
final status = await checkAndRequestPermissions(
context,
permission: Permission.contacts,
title: (intl) => "Save to iOS Contacts?",
subtitleWidget:
Text("When you update a contact in Sunny, would you like the option to apply the change to your iOS contacts?"),
);
switch (status) {
case SunnyPermissionStatus.rejected:
await _prefs.set(enableDeviceContacts, false);
return false;
case SunnyPermissionStatus.granted:
await _prefs.set(enableDeviceContacts, true);
return true;
case SunnyPermissionStatus.later:
await _prefs.set(enableDeviceContacts, false);
return false;
default:
return false;
}
} else {
/// THey've opted out of the behavior
if (isDeviceContactEnabled != "true") {
return false;
}
PermissionStatus status = await Permission.contacts.status;
return status == PermissionStatus.granted;
}
}