getStoragePermission static method
Implementation
static Future<bool> getStoragePermission(
{String? permissionContent, String? deniedContent}) async {
var sdkVersion = 0;
if (Platform.isAndroid) {
var sdk = await DeviceInfoPlugin().androidInfo;
sdkVersion = sdk.version.sdkInt;
} else {
sdkVersion = 0;
}
if (sdkVersion < 33 && Platform.isAndroid) {
final permission = await Permission.storage.status;
if (permission != PermissionStatus.granted &&
permission != PermissionStatus.permanentlyDenied) {
const newPermission = Permission.storage;
var deniedPopupValue = await mirrorFlyPermissionDialog(
icon: filePermission,
content:
permissionContent ?? getTranslated("filePermissionContent"),
dialogStyle: AppStyleConfig.dialogStyle);
if (deniedPopupValue) {
var newp = await newPermission.request();
if (newp.isGranted) {
return true;
} else {
var popupValue = await customPermissionDialog(
icon: filePermission,
content: deniedContent ?? getPermissionAlertMessage("storage"),
dialogStyle: AppStyleConfig.dialogStyle);
if (popupValue) {
openAppSettings();
return false;
} else {
return false;
}
}
} else {
return newPermission.status.isGranted;
}
} else {
return permission.isGranted;
}
} else if (Platform.isIOS) {
final photos = await Permission.photos.status;
final storage = await Permission.storage.status;
const newPermission = [
Permission.photos,
Permission.storage,
// Permission.audio
];
if ((photos != PermissionStatus.granted &&
photos != PermissionStatus.permanentlyDenied) ||
(storage != PermissionStatus.granted &&
storage != PermissionStatus.permanentlyDenied)) {
LogMessage.d("showing mirrorfly popup", "");
var deniedPopupValue = await mirrorFlyPermissionDialog(
icon: filePermission,
content:
permissionContent ?? getTranslated("filePermissionContent"),
dialogStyle: AppStyleConfig.dialogStyle);
if (deniedPopupValue) {
var newp = await newPermission.request();
PermissionStatus? photo = newp[Permission.photos];
PermissionStatus? storage = newp[Permission.storage];
// var audio = await newPermission[2].isGranted;
if (photo!.isGranted && storage!.isGranted) {
return true;
} else if (photo.isPermanentlyDenied ||
storage!.isPermanentlyDenied) {
var popupValue = await customPermissionDialog(
icon: filePermission,
content: deniedContent ?? getPermissionAlertMessage("storage"),
dialogStyle: AppStyleConfig.dialogStyle);
if (popupValue) {
openAppSettings();
return false;
} else {
return false;
}
} else {
return false;
}
} else {
return false; //PermissionStatus.denied;
}
} else {
LogMessage.d("showing mirrorfly popup",
"${photos.isGranted} ${storage.isGranted}");
return (photos.isGranted && storage.isGranted);
// ? photos
// : photos;
}
} else {
return getAndroid13Permission();
}
}