diff options
author | dan <dan.abramov@gmail.com> | 2024-11-25 21:08:14 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-25 21:08:14 +0000 |
commit | 61e97d69626b90266a3e43f58d30e5e1333f2bd9 (patch) | |
tree | 6f518331e271f6a5acd564dae0731e094f52d60a /patches | |
parent | 9d3bdbb2b9df8bbee7fe8ed4df87226b2e498f03 (diff) | |
download | voidsky-61e97d69626b90266a3e43f58d30e5e1333f2bd9.tar.zst |
Fix camera orientation on Android (#6729)
Diffstat (limited to 'patches')
-rw-r--r-- | patches/react-native-image-crop-picker+0.41.2.patch | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/patches/react-native-image-crop-picker+0.41.2.patch b/patches/react-native-image-crop-picker+0.41.2.patch new file mode 100644 index 000000000..7f1865a5e --- /dev/null +++ b/patches/react-native-image-crop-picker+0.41.2.patch @@ -0,0 +1,39 @@ +diff --git a/node_modules/react-native-image-crop-picker/android/src/main/java/com/reactnative/ivpusic/imagepicker/PickerModule.java b/node_modules/react-native-image-crop-picker/android/src/main/java/com/reactnative/ivpusic/imagepicker/PickerModule.java +index 5de0845..fa477e7 100644 +--- a/node_modules/react-native-image-crop-picker/android/src/main/java/com/reactnative/ivpusic/imagepicker/PickerModule.java ++++ b/node_modules/react-native-image-crop-picker/android/src/main/java/com/reactnative/ivpusic/imagepicker/PickerModule.java +@@ -21,6 +21,7 @@ import android.webkit.MimeTypeMap; + + import androidx.core.app.ActivityCompat; + import androidx.core.content.FileProvider; ++import androidx.exifinterface.media.ExifInterface; + + import com.facebook.react.bridge.ActivityEventListener; + import com.facebook.react.bridge.Callback; +@@ -678,6 +679,15 @@ class PickerModule extends ReactContextBaseJavaModule implements ActivityEventLi + throw new Exception("Cannot select remote files"); + } + BitmapFactory.Options original = validateImage(path); ++ ExifInterface originalExif = new ExifInterface(path); ++ int orientation = originalExif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1); ++ boolean invertDimensions = ( ++ orientation == ExifInterface.ORIENTATION_ROTATE_90 || ++ orientation == ExifInterface.ORIENTATION_ROTATE_270 || ++ orientation == ExifInterface.ORIENTATION_TRANSPOSE || ++ orientation == ExifInterface.ORIENTATION_TRANSVERSE ++ ); ++ + + // if compression options are provided image will be compressed. If none options is provided, + // then original image will be returned +@@ -687,8 +697,8 @@ class PickerModule extends ReactContextBaseJavaModule implements ActivityEventLi + long modificationDate = new File(path).lastModified(); + + image.putString("path", "file://" + compressedImagePath); +- image.putInt("width", options.outWidth); +- image.putInt("height", options.outHeight); ++ image.putInt("width", invertDimensions ? options.outHeight : options.outWidth); ++ image.putInt("height", invertDimensions ? options.outWidth : options.outHeight); + image.putString("mime", options.outMimeType); + image.putInt("size", (int) new File(compressedImagePath).length()); + image.putString("modificationDate", String.valueOf(modificationDate)); |