diff --git a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt index ff15c91..41aaf12 100644 --- a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt +++ b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt @@ -26,51 +26,26 @@ import java.io.Serializable * @see [androidx.activity.result.contract.ActivityResultContracts.GetMultipleContents] */ internal class ImageLibraryContract( - private val appContextProvider: AppContextProvider + private val appContextProvider: AppContextProvider, ) : AppContextActivityResultContract { private val contentResolver: ContentResolver get() = appContextProvider.appContext.reactContext?.contentResolver ?: throw Exceptions.ReactContextLost() override fun createIntent(context: Context, input: ImageLibraryContractOptions): Intent { - val request = PickVisualMediaRequest.Builder() - .setMediaType( - when (input.options.mediaTypes) { - MediaTypes.VIDEOS -> { - PickVisualMedia.VideoOnly - } - - MediaTypes.IMAGES -> { - PickVisualMedia.ImageOnly - } - - else -> { - PickVisualMedia.ImageAndVideo - } - } - ) - .build() + val intent = Intent(Intent.ACTION_GET_CONTENT) + .addCategory(Intent.CATEGORY_OPENABLE) + .setType("image/*") if (input.options.allowsMultipleSelection) { - val selectionLimit = input.options.selectionLimit - - if (selectionLimit == 1) { - // If multiple selection is allowed but the limit is 1, we should ignore - // the multiple selection flag and just treat it as a single selection. - return PickVisualMedia().createIntent(context, request) + if(input.options.selectionLimit == 1) { + return intent } - if (selectionLimit > 1) { - return PickMultipleVisualMedia(selectionLimit).createIntent(context, request) - } - - // If the selection limit is 0, it is the same as unlimited selection. - if (selectionLimit == UNLIMITED_SELECTION) { - return PickMultipleVisualMedia().createIntent(context, request) - } + intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true) } - return PickVisualMedia().createIntent(context, request) + return intent } override fun parseResult(input: ImageLibraryContractOptions, resultCode: Int, intent: Intent?) =