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: info.appName);
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;
return (photo!.isGranted && video!.isGranted);// && mediaLibrary!.isGranted);
// ? PermissionStatus.granted
// : PermissionStatus.denied;
}else{
return false;//PermissionStatus.denied;
}
}
return false;
} else {
mirrorFlyLog("showing mirrorfly popup", "${photos.isGranted} ${videos.isGranted}");
return (photos.isGranted && videos.isGranted);// && mediaLibrary.isGranted);
}
}