From dc8a55a71cdaaf7ad86aee8470a0c7b8284653c4 Mon Sep 17 00:00:00 2001 From: jcesarmobile Date: Tue, 17 Aug 2021 17:39:07 +0200 Subject: [PATCH] fix(camera): avoid error if image has no orientation (#554) --- .../plugins/camera/ImageUtils.java | 37 ++++--------------- 1 file changed, 7 insertions(+), 30 deletions(-) diff --git a/camera/android/src/main/java/com/capacitorjs/plugins/camera/ImageUtils.java b/camera/android/src/main/java/com/capacitorjs/plugins/camera/ImageUtils.java index 87e9fe14b..f54e25149 100644 --- a/camera/android/src/main/java/com/capacitorjs/plugins/camera/ImageUtils.java +++ b/camera/android/src/main/java/com/capacitorjs/plugins/camera/ImageUtils.java @@ -71,38 +71,15 @@ private static Bitmap transform(final Bitmap bitmap, final Matrix matrix) { * @return */ public static Bitmap correctOrientation(final Context c, final Bitmap bitmap, final Uri imageUri, ExifWrapper exif) throws IOException { - if (Build.VERSION.SDK_INT < 24) { - return correctOrientationOlder(c, bitmap, imageUri); - } else { - final int orientation = getOrientation(c, imageUri); - - if (orientation != 0) { - Matrix matrix = new Matrix(); - matrix.postRotate(orientation); - exif.resetOrientation(); - return transform(bitmap, matrix); - } else { - return bitmap; - } - } - } - - private static Bitmap correctOrientationOlder(final Context c, final Bitmap bitmap, final Uri imageUri) { - // TODO: To be tested on older phone using Android API < 24 - - String[] orientationColumn = { MediaStore.Images.Media.DATA, MediaStore.Images.Media.ORIENTATION }; - Cursor cur = c.getContentResolver().query(imageUri, orientationColumn, null, null, null); - int orientation = -1; - if (cur != null && cur.moveToFirst()) { - orientation = cur.getInt(cur.getColumnIndex(orientationColumn[0])); - } - Matrix matrix = new Matrix(); - - if (orientation != -1) { + final int orientation = getOrientation(c, imageUri); + if (orientation != 0) { + Matrix matrix = new Matrix(); matrix.postRotate(orientation); + exif.resetOrientation(); + return transform(bitmap, matrix); + } else { + return bitmap; } - - return transform(bitmap, matrix); } private static int getOrientation(final Context c, final Uri imageUri) throws IOException {