From 991f2d77a00082ebf176003140891e33a7fa06a9 Mon Sep 17 00:00:00 2001 From: zahidalidev Date: Tue, 15 Apr 2025 12:21:44 +0500 Subject: [PATCH] Fix maxFiles limit for Android image picker --- .../ivpusic/imagepicker/PickerModule.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/android/src/main/java/com/reactnative/ivpusic/imagepicker/PickerModule.java b/android/src/main/java/com/reactnative/ivpusic/imagepicker/PickerModule.java index 3b70da187..135750c84 100644 --- a/android/src/main/java/com/reactnative/ivpusic/imagepicker/PickerModule.java +++ b/android/src/main/java/com/reactnative/ivpusic/imagepicker/PickerModule.java @@ -370,6 +370,34 @@ private void initiateCamera(Activity activity) { } private void initiatePicker(final Activity activity) { + try { + if (multiple) { + initiateModernPicker(activity); + } else { + initiateClassicPicker(activity); + } + } catch (Exception e) { + resultCollector.notifyProblem(E_FAILED_TO_SHOW_PICKER, e); + } + } + + private void initiateModernPicker(final Activity activity) { + try { + String photoPickerAction = "android.provider.action.PICK_IMAGES"; + + Intent intent = new Intent(photoPickerAction); + + if (maxFiles != Integer.MAX_VALUE) { + intent.putExtra("android.provider.extra.PICK_IMAGES_MAX", maxFiles); + } + + activity.startActivityForResult(intent, IMAGE_PICKER_REQUEST); + } catch (Exception e) { + initiateClassicPicker(activity); + } + } + + private void initiateClassicPicker(final Activity activity) { try { PickVisualMediaRequest.Builder builder = new PickVisualMediaRequest.Builder(); // Simplified media type handling