From bc013296f62c707a71f4bee4e0a1b4e4a3607883 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Sun, 17 Apr 2022 11:59:00 +0100 Subject: [PATCH 1/2] Catch ActivityNotFoundException when saving image. --- .../briar/android/conversation/ImageActivity.java | 7 ++++++- .../briar/android/conversation/ImageViewModel.java | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java index 3a0b289a0..641b1cf90 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java @@ -1,5 +1,6 @@ package org.briarproject.briar.android.conversation; +import android.content.ActivityNotFoundException; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.net.Uri; @@ -263,7 +264,11 @@ public class ImageActivity extends BriarActivity if (SDK_INT >= 19) { String name = viewModel.getFileName() + "." + getVisibleAttachment().getExtension(); - launcher.launch(name); + try { + launcher.launch(name); + } catch (ActivityNotFoundException e) { + viewModel.onSaveImageError(); + } } else { viewModel.saveImage(getVisibleAttachment()); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java index 823151fca..5260785af 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java @@ -186,6 +186,11 @@ public class ImageViewModel extends DbViewModel implements EventListener { } } + @UiThread + void onSaveImageError() { + saveState.setEvent(true); + } + /** * Saves the attachment on external storage, * assuming the permission was granted during install time. From 961af66c8e4b324179231ff8ad904f32d62499af Mon Sep 17 00:00:00 2001 From: akwizgran Date: Mon, 18 Apr 2022 13:33:09 +0100 Subject: [PATCH 2/2] Use new onSaveImageError() method for readability. --- .../briarproject/briar/android/conversation/ImageViewModel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java index 5260785af..b8a7ff902 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java @@ -180,7 +180,7 @@ public class ImageViewModel extends DbViewModel implements EventListener { @UiThread void saveImage(AttachmentItem attachment, @Nullable Uri uri) { if (uri == null) { - saveState.setEvent(true); + onSaveImageError(); } else { saveImage(attachment, () -> getOutputStream(uri), null); }