pickMultiImages method

Future<List<XFile>> pickMultiImages({
  1. required BuildContext context,
  2. required MountedCheck mounted,
  3. bool crop = false,
  4. bool compress = false,
  5. int quality = 35,
})

Picks multiple images from the gallery, optionally crops and compresses each.

Implementation

Future<List<XFile>> pickMultiImages({
  required BuildContext context,
  required MountedCheck mounted,
  bool crop = false,
  bool compress = false,
  int quality = 35,
}) async {
  try {
    final List<XFile> pickedFiles = await pickerService.pickMultiImage();
    if (pickedFiles.isEmpty) return [];

    List<XFile> processedFiles = [];
    for (var file in pickedFiles) {
      XFile currentFile = file;

      if (crop && mounted()) {
        currentFile = await cropperService.cropImage(
          pickedFile: currentFile,
          context: context,
        );
      }

      if (compress) {
        currentFile = await compressorService.compressImage(
          currentFile,
          quality: quality,
        );
      }
      processedFiles.add(currentFile);
    }

    return processedFiles;
  } catch (e) {
    debugPrint('ImagePickerHandler | pickMultiImages failed: $e');
    return [];
  }
}