requestStoragePermission static method

Future<bool> requestStoragePermission(
  1. BuildContext context
)

Request media/storage permission (Android-version-aware). iOS = always granted.

Implementation

static Future<bool> requestStoragePermission(BuildContext context) async {
  if (Platform.isAndroid) {
    final androidVersion = await getAndroidVersion();

    if (androidVersion >= 33) {
      final mediaImages = await Permission.photos.request();
      final mediaVideos = await Permission.videos.request();
      if (mediaImages.isGranted && mediaVideos.isGranted) return true;
      if (context.mounted) _showPermissionDeniedMessage(context, 'Izin akses media diperlukan.');
      return false;
    }

    final storagePermission = await Permission.storage.request();
    if (storagePermission.isGranted) return true;
    if (context.mounted) _showPermissionDeniedMessage(context, 'Izin akses penyimpanan diperlukan.');
    return false;
  }
  return true;
}