saveToGalleryManually function

Future<File> saveToGalleryManually(
  1. File imageFile
)

Saves imageFile to the public gallery folder /Pictures/Itinereo.

Requests the appropriate permission depending on Android SDK version. Throws an Exception if permission is denied.

Implementation

Future<File> saveToGalleryManually(File imageFile) async {
  final androidInfo = await DeviceInfoPlugin().androidInfo;
  final sdkInt = androidInfo.version.sdkInt;
  late final File savedPath;

  final status =
      sdkInt >= 33
          ? await Permission.photos.request()
          : await Permission.storage.request();

  if (!status.isGranted) throw Exception("Permission denied to save photos.");

  final dir = Directory('/storage/emulated/0/Pictures/Itinereo');
  if (!await dir.exists()) {
    await dir.create(recursive: true);
  }

  final fileName = 'itinereo_${DateTime.now().millisecondsSinceEpoch}.jpg';
  savedPath = File('${dir.path}/$fileName');
  await imageFile.copy(savedPath.path);
  return savedPath;
}