getAndroid13Permission static method

Future<bool> getAndroid13Permission(
  1. BuildContext context
)

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);
  }
}