getAndroid13Permission static method
Implementation
static Future<bool> getAndroid13Permission() async {
final photos = await Permission.photos.status;
final videos = await Permission.videos.status;
final mediaLibrary = await Permission.mediaLibrary.status;
// final audio = await Permission.audio.status;
const newPermission = [
Permission.photos,
Permission.videos,
Permission.mediaLibrary,
// Permission.audio
];
if ((photos != PermissionStatus.granted &&
photos != PermissionStatus.permanentlyDenied) ||
(videos != PermissionStatus.granted &&
videos != PermissionStatus.permanentlyDenied) ||
(mediaLibrary != PermissionStatus.granted &&
mediaLibrary != PermissionStatus.permanentlyDenied)) {
LogMessage.d("showing mirrorfly popup", "");
var deniedPopupValue = await mirrorFlyPermissionDialog(
icon: filePermission,
content: getTranslated("filePermissionContent"),
dialogStyle: AppStyleConfig.dialogStyle);
if (deniedPopupValue) {
var newp = await newPermission.request();
PermissionStatus? photo = newp[Permission.photos];
PermissionStatus? video = newp[Permission.videos];
PermissionStatus? mediaLibrary = newp[Permission.mediaLibrary];
// var audio = await newPermission[2].isGranted;
if (photo!.isGranted && video!.isGranted && mediaLibrary!.isGranted) {
return true;
} else if (photo.isPermanentlyDenied ||
video!.isPermanentlyDenied ||
mediaLibrary!.isPermanentlyDenied) {
var popupValue = await customPermissionDialog(
icon: filePermission,
content: 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} ${videos.isGranted} ${mediaLibrary.isGranted}");
return (photos.isGranted && videos.isGranted && mediaLibrary.isGranted);
// ? photos
// : photos;
}
}