about summary refs log tree commit diff
path: root/patches/expo-image-picker+14.7.1.patch
blob: 2d37a182a8c0301646242170b2216b95c2ea87c9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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<ImageLibraryContractOptions, ImagePickerContractResult> {
   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?) =