diff --git a/android/app/src/main/java/deckers/thibault/aves/channel/calls/ImageDecodeTask.java b/android/app/src/main/java/deckers/thibault/aves/channel/calls/ImageDecodeTask.java index ed8edb79c..17c021b8d 100644 --- a/android/app/src/main/java/deckers/thibault/aves/channel/calls/ImageDecodeTask.java +++ b/android/app/src/main/java/deckers/thibault/aves/channel/calls/ImageDecodeTask.java @@ -88,14 +88,19 @@ public class ImageDecodeTask extends AsyncTask= Build.VERSION_CODES.Q) { - bitmap = getThumbnailBytesByResolver(p); - } else { - bitmap = getThumbnailBytesByMediaStore(p); + // EXIF orientations with flipping are not well supported by the Media Store: + // the content resolver may return a thumbnail that is automatically rotated + // according to EXIF orientation, but not flip it when necessary + if (!p.isFlipped) { + try { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + bitmap = getThumbnailBytesByResolver(p); + } else { + bitmap = getThumbnailBytesByMediaStore(p); + } + } catch (Exception e) { + exception = e; } - } catch (Exception e) { - exception = e; } }