From 6b7510ad36f8f5e671e0a51b91f90919b734ef19 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 5 Dec 2019 20:32:37 +0100 Subject: [PATCH] Fix no public key --- .../java/eu/faircode/email/FragmentCompose.java | 14 ++++++++++++-- .../java/eu/faircode/email/FragmentOptions.java | 2 ++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 92c47d76ef..b9277637a4 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -2027,7 +2027,7 @@ public class FragmentCompose extends FragmentBase { String email = ((InternetAddress) address).getAddress(); List e = db.certificate().getCertificateByEmail(email); if (e == null || e.size() < 1) - throw new IllegalArgumentException(context.getString(R.string.title_certificate_missing, email)); + throw new IllegalArgumentException(context.getString(R.string.title_certificate_missing, email), new IllegalStateException()); X509Certificate cert = (X509Certificate) CertificateFactory.getInstance("X.509") .generateCertificate(new ByteArrayInputStream(e.get(0).getEncoded())); certs.add(cert); @@ -2096,7 +2096,17 @@ public class FragmentCompose extends FragmentBase { protected void onException(Bundle args, Throwable ex) { if (ex instanceof IllegalArgumentException) { Log.i(ex); - Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show(); + Snackbar snackbar = Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG); + if (ex.getCause() instanceof IllegalStateException) + snackbar.setAction(R.string.title_fix, new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity( + new Intent(getContext(), ActivitySetup.class) + .putExtra("tab", "privacy")); + } + }); + snackbar.show(); } else Helper.unexpectedError(getParentFragmentManager(), ex); } diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java index 8357fdd374..dddfa5947e 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptions.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java @@ -74,6 +74,8 @@ public class FragmentOptions extends FragmentBase { pager.setCurrentItem(3); else if ("display".equals(tab)) pager.setCurrentItem(4); + else if ("privacy".equals(tab)) + pager.setCurrentItem(6); getActivity().getIntent().removeExtra("tab"); }