getAndroid13Permission static method
Implementation
static Future<bool> getAndroid13Permission(BuildContext context) async {
// var info = await PackageInfo.fromPlatform();
final photos = await Permission.photos.status;
final videos = await Permission.videos.status;
///Commenting this because mediaLibrary is only used for iOS, the above is Android 13 permission
// final mediaLibrary = await Permission.mediaLibrary.status;
// final audio = await Permission.audio.status;
const newPermission = [
Permission.photos,
Permission.videos,
// Permission.audio
];
if ((photos != PermissionStatus.granted &&
photos != PermissionStatus.permanentlyDenied) ||
(videos != PermissionStatus.granted &&
videos != PermissionStatus.permanentlyDenied)
// || (mediaLibrary != PermissionStatus.granted && mediaLibrary != PermissionStatus.permanentlyDenied)
) {
if (context.mounted) {
mirrorFlyLog("showing mirror fly popup", "");
var deniedPopupValue = await mirrorFlyPermissionDialog(
context: context,
icon: filePermission,
content: AppConstants.filePermission,
appName: AppConstants.appName);
if (deniedPopupValue) {
var newp = await newPermission.request();
PermissionStatus? photo = newp[Permission.photos];
PermissionStatus? video = newp[Permission.videos];
if (photo!.isGranted && video!.isGranted) {
return true;
} else if (photo.isPermanentlyDenied || video!.isPermanentlyDenied) {
if (context.mounted) {
var popupValue = await customPermissionDialog(
context: context,
icon: filePermission,
content: getPermissionAlertMessage("storage"),
appName: AppConstants.appName);
if (popupValue) {
openAppSettings();
return false;
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
} else {
return false; //PermissionStatus.denied;
}
}
return false;
} else {
mirrorFlyLog(
"showing mirrorfly popup", "${photos.isGranted} ${videos.isGranted}");
return (photos.isGranted &&
videos.isGranted); // && mediaLibrary.isGranted);
}
}