Prevent crash

This commit is contained in:
M66B 2020-03-18 07:53:57 +01:00
parent fc3d4a3d11
commit 66b6bea31d
1 changed files with 49 additions and 40 deletions

View File

@ -593,13 +593,7 @@ class ImageHelper {
while (options.outWidth / factor > scaleToPixels) while (options.outWidth / factor > scaleToPixels)
factor *= 2; factor *= 2;
Matrix rotation = null; Matrix rotation = getImageRotation(file);
try {
rotation = getImageRotation(file);
} catch (IOException ex) {
Log.w(ex);
}
if (factor > 1 || rotation != null) { if (factor > 1 || rotation != null) {
Log.i("Decode image factor=" + factor); Log.i("Decode image factor=" + factor);
options.inJustDecodeBounds = false; options.inJustDecodeBounds = false;
@ -618,7 +612,8 @@ class ImageHelper {
return BitmapFactory.decodeFile(file.getAbsolutePath()); return BitmapFactory.decodeFile(file.getAbsolutePath());
} }
static Matrix getImageRotation(File file) throws IOException { static Matrix getImageRotation(File file) {
try {
ExifInterface exif = new ExifInterface(file.getAbsolutePath()); ExifInterface exif = new ExifInterface(file.getAbsolutePath());
int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED); int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);
@ -653,6 +648,20 @@ class ImageHelper {
default: default:
return null; return null;
} }
} catch (Throwable ex /* IOException */) {
/*
java.lang.RuntimeException: setDataSourceCallback failed: status = 0x80000000
java.lang.RuntimeException: setDataSourceCallback failed: status = 0x80000000
at android.media.MediaMetadataRetriever._setDataSource(Native Method)
at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:226)
at androidx.exifinterface.media.ExifInterface.getHeifAttributes(SourceFile:5716)
at androidx.exifinterface.media.ExifInterface.loadAttributes(SourceFile:4556)
at androidx.exifinterface.media.ExifInterface.initForFilename(SourceFile:5195)
at androidx.exifinterface.media.ExifInterface.<init>(SourceFile:3926)
*/
Log.w(ex);
return null;
}
} }
static class AnnotatedSource { static class AnnotatedSource {