diff --git a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java index e84a8c230b9d3e30f026033809e3810f35f0d53d..140c326591a5be06757271e34f5580e4639d4eb9 100644 --- a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java +++ b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java @@ -763,7 +763,7 @@ public class FileBackend { } } - private InputStream openInputStream(Uri uri) throws IOException { + public InputStream openInputStream(Uri uri) throws IOException { if (uri != null && "data".equals(uri.getScheme())) { String[] parts = uri.getSchemeSpecificPart().split(",", 2); byte[] data; @@ -785,7 +785,7 @@ public class FileBackend { return is; } - private void copyFileToPrivateStorage(File file, Uri uri) throws FileCopyException { + public void copyFileToPrivateStorage(File file, Uri uri) throws FileCopyException { final var parentDirectory = file.getParentFile(); if (parentDirectory != null && parentDirectory.mkdirs()) { Log.d(Config.LOGTAG,"created directory "+parentDirectory.getAbsolutePath()); @@ -1909,7 +1909,7 @@ public class FileBackend { try { BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = calcSampleSize(image, size); - is = mXmppConnectionService.getContentResolver().openInputStream(image); + is = openInputStream(image); if (is == null) { return null; } @@ -1920,7 +1920,7 @@ public class FileBackend { input = rotate(input, getRotation(image)); return cropCenterSquare(input, size); } - } catch (FileNotFoundException | SecurityException e) { + } catch (SecurityException | IOException e) { Log.d(Config.LOGTAG, "unable to open file " + image.toString(), e); return null; } finally { @@ -1964,7 +1964,7 @@ public class FileBackend { return dest; } catch (SecurityException e) { return null; // android 6.0 with revoked permissions for example - } catch (FileNotFoundException e) { + } catch (IOException e) { return null; } finally { close(is); @@ -1993,11 +1993,10 @@ public class FileBackend { } private int calcSampleSize(Uri image, int size) - throws FileNotFoundException, SecurityException { + throws IOException, SecurityException { final BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; - final InputStream inputStream = - mXmppConnectionService.getContentResolver().openInputStream(image); + final InputStream inputStream = openInputStream(image); BitmapFactory.decodeStream(inputStream, null, options); close(inputStream); return calcSampleSize(options, size);