40 lines
2.4 KiB
Diff
40 lines
2.4 KiB
Diff
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));
|