getStoragePermission static method

Future<bool> getStoragePermission(
  1. BuildContext context
)

Implementation

static Future<bool> getStoragePermission(BuildContext context) async {
  var info = await PackageInfo.fromPlatform();
  var sdkVersion=0;
  if (Platform.isAndroid) {
    var sdk =  await DeviceInfoPlugin().androidInfo;
    sdkVersion=sdk.version.sdkInt;
  } else {
    sdkVersion = 0;
  }
  final permission = await Permission.storage.status;
  if (sdkVersion < 33) {
    if (permission != PermissionStatus.granted &&
        permission != PermissionStatus.permanentlyDenied) {
      const newPermission = Permission.storage;
      if(context.mounted) {
        var deniedPopupValue = await mirrorFlyPermissionDialog(context: context,
            icon: filePermission,
            content: AppConstants.filePermission,appName: info.appName);
        if(deniedPopupValue) {
          return await newPermission.request().isGranted;
        }else{
          return newPermission.status.isGranted;
        }
      }
      return false;
    } else {
      return permission.isGranted;
    }
  } else {
    if(context.mounted) {
      return getAndroid13Permission(context);
    } else {
      return false;
    }
  }
}