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..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,12 +180,17 @@ 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); } } + @UiThread + void onSaveImageError() { + saveState.setEvent(true); + } + /** * Saves the attachment on external storage, * assuming the permission was granted during install time.