askNotificationPermission static method
Implementation
static Future<bool> askNotificationPermission() async {
var permissions = <Permission>[];
final notification = await Permission.notification.status; //NOTIFICATION
if (!notification.isGranted ||
(Platform.isAndroid &&
await Permission.notification.shouldShowRequestRationale)) {
permissions.add(Permission.notification);
}
LogMessage.d("notification", notification.isGranted);
if (!notification.isGranted) {
var shouldShowRequestRationale = (Platform.isAndroid &&
(await Permission.notification.shouldShowRequestRationale));
LogMessage.d("shouldShowRequestRationale notification",
shouldShowRequestRationale);
LogMessage.d(
"SessionManagement.getBool(Constants.notificationPermissionAsked) notification",
(SessionManagement.getBool(Constants.notificationPermissionAsked)));
var alreadyAsked =
(SessionManagement.getBool(Constants.notificationPermissionAsked));
LogMessage.d("alreadyAsked notification", alreadyAsked);
var dialogContent2 =
getTranslated("notificationPermissionMessageContent");
if (shouldShowRequestRationale) {
LogMessage.d("shouldShowRequestRationale", shouldShowRequestRationale);
return requestNotificationPermissions(
icon: notificationAlertPermission,
title: getTranslated("notificationPermissionTitle"),
message: getTranslated("notificationPermissionMessageContent"),
permissions: permissions,
showFromRational: true);
} else if (alreadyAsked) {
LogMessage.d("alreadyAsked", alreadyAsked);
var popupValue = await customPermissionDialog(
icon: notificationAlertPermission,
content: dialogContent2,
dialogStyle: AppStyleConfig
.dialogStyle); //getPermissionAlertMessage("audio_call"));
if (popupValue) {
openAppSettings();
return false;
} else {
return false;
}
} else {
if (permissions.isNotEmpty) {
return requestNotificationPermissions(
icon: notificationAlertPermission,
title: getTranslated("notificationPermissionTitle"),
message: getTranslated("notificationPermissionMessageContent"),
permissions: permissions,
showFromRational: true);
} else {
var popupValue = await customPermissionDialog(
icon: notificationAlertPermission,
content: dialogContent2,
dialogStyle: AppStyleConfig
.dialogStyle); //getPermissionAlertMessage("audio_call"));
if (popupValue) {
openAppSettings();
return false;
} else {
return false;
}
}
}
} else {
return true;
}
}