diff --git a/package.json b/package.json index ee5d276f4a..2d65c9e9c9 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,7 @@ "expo-image": "^2.4.0", "expo-image-crop-tool": "^0.1.8", "expo-image-manipulator": "~13.1.7", - "expo-image-picker": "~16.1.4", + "expo-image-picker": "^16.1.4", "expo-intent-launcher": "^12.1.5", "expo-linear-gradient": "~14.1.5", "expo-linking": "~7.1.5", diff --git a/patches/expo-image-picker+16.1.4.patch b/patches/expo-image-picker+16.1.4.patch deleted file mode 100644 index 0396fecbc1..0000000000 --- a/patches/expo-image-picker+16.1.4.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/MediaHandler.kt b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/MediaHandler.kt -index c863fb8..cde8859 100644 ---- a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/MediaHandler.kt -+++ b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/MediaHandler.kt -@@ -101,16 +101,30 @@ internal class MediaHandler( - val fileData = getAdditionalFileData(sourceUri) - val mimeType = getType(context.contentResolver, sourceUri) - -+ // Extract basic metadata -+ var width = metadataRetriever.extractInt(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH) -+ var height = metadataRetriever.extractInt(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT) -+ val rotation = metadataRetriever.extractInt(MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION) -+ -+ // Android returns the encoded width/height which do not take the display rotation into -+ // account. For videos recorded in portrait mode the encoded dimensions are often landscape -+ // (e.g. 1920x1080) paired with a 90°/270° rotation flag. iOS adjusts these values before -+ // reporting them, so to keep the behaviour consistent across platforms we swap the width -+ // and height when the rotation indicates the video should be displayed in portrait. -+ if (rotation % 180 != 0) { -+ width = height.also { height = width } -+ } -+ - return ImagePickerAsset( - type = MediaType.VIDEO, - uri = outputUri.toString(), -- width = metadataRetriever.extractInt(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH), -- height = metadataRetriever.extractInt(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT), -+ width = width, -+ height = height, - fileName = fileData?.fileName, - fileSize = fileData?.fileSize, - mimeType = mimeType, - duration = metadataRetriever.extractInt(MediaMetadataRetriever.METADATA_KEY_DURATION), -- rotation = metadataRetriever.extractInt(MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION), -+ rotation = rotation, - assetId = sourceUri.getMediaStoreAssetId() - ) - } catch (cause: FailedToExtractVideoMetadataException) { diff --git a/patches/expo-image-picker+16.1.4.patch.md b/patches/expo-image-picker+16.1.4.patch.md deleted file mode 100644 index 7855e86212..0000000000 --- a/patches/expo-image-picker+16.1.4.patch.md +++ /dev/null @@ -1,5 +0,0 @@ -# Expo Image Picker patch - -Cherry-picked https://github.com/expo/expo/pull/37849 - -Remove when we update to a version that includes this commit. diff --git a/yarn.lock b/yarn.lock index dc6489bf85..87ee1bee30 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11295,7 +11295,7 @@ expo-image-manipulator@~13.1.7: dependencies: expo-image-loader "~5.1.0" -expo-image-picker@~16.1.4: +expo-image-picker@^16.1.4: version "16.1.4" resolved "https://registry.yarnpkg.com/expo-image-picker/-/expo-image-picker-16.1.4.tgz#d4ac2d1f64f6ec9347c3f64f8435b40e6e4dcc40" integrity sha512-bTmmxtw1AohUT+HxEBn2vYwdeOrj1CLpMXKjvi9FKSoSbpcarT4xxI0z7YyGwDGHbrJqyyic3I9TTdP2J2b4YA==