From 26a15ea06d4c00d4abb0c7d82040f19426535a70 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 5 Jan 2019 19:17:34 +0000 Subject: [PATCH] Improved error handling --- app/src/main/java/eu/faircode/email/ActivityView.java | 4 +++- .../main/java/eu/faircode/email/FragmentCompose.java | 10 ++++++++-- app/src/main/java/eu/faircode/email/FragmentSetup.java | 8 ++++++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 1b947bd972..735d3d03bf 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -1376,8 +1376,10 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB long id = args.getLong("id"); Uri uri = args.getParcelable("uri"); - if ("file".equals(uri.getScheme())) + if ("file".equals(uri.getScheme())) { + Log.w("Save attachment uri=" + uri); throw new IllegalArgumentException(context.getString(R.string.title_no_stream)); + } File file = EntityAttachment.getFile(context, id); diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 8086679da1..8e8d311b30 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -1112,8 +1112,10 @@ public class FragmentCompose extends FragmentEx { private static EntityAttachment addAttachment(Context context, long id, Uri uri, boolean image) throws IOException { - if ("file".equals(uri.getScheme())) + if ("file".equals(uri.getScheme())) { + Log.w("Add attachment uri=" + uri); throw new IllegalArgumentException(context.getString(R.string.title_no_stream)); + } EntityAttachment attachment = new EntityAttachment(); @@ -1661,7 +1663,11 @@ public class FragmentCompose extends FragmentEx { @Override protected void onException(Bundle args, Throwable ex) { - Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex); + // External app sending absolute file + if (ex instanceof IllegalArgumentException) + Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show(); + else + Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex); } }; diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java index 09e7854b4e..8221538d0d 100644 --- a/app/src/main/java/eu/faircode/email/FragmentSetup.java +++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java @@ -1009,8 +1009,10 @@ public class FragmentSetup extends FragmentEx { Uri uri = args.getParcelable("uri"); String password = args.getString("password"); - if ("file".equals(uri.getScheme())) + if ("file".equals(uri.getScheme())) { + Log.w("Export uri=" + uri); throw new IllegalArgumentException(context.getString(R.string.title_no_stream)); + } OutputStream out = null; try { @@ -1113,8 +1115,10 @@ public class FragmentSetup extends FragmentEx { Uri uri = args.getParcelable("uri"); String password = args.getString("password"); - if ("file".equals(uri.getScheme())) + if ("file".equals(uri.getScheme())) { + Log.w("Import uri=" + uri); throw new IllegalArgumentException(context.getString(R.string.title_no_stream)); + } InputStream in = null; try {