diff --git a/app/src/main/java/eu/faircode/email/AdapterCertificate.java b/app/src/main/java/eu/faircode/email/AdapterCertificate.java index 17b074dade..62772c86bd 100644 --- a/app/src/main/java/eu/faircode/email/AdapterCertificate.java +++ b/app/src/main/java/eu/faircode/email/AdapterCertificate.java @@ -21,11 +21,13 @@ package eu.faircode.email; import android.content.Context; import android.graphics.Typeface; +import android.net.Uri; import android.os.Bundle; import android.text.SpannableString; import android.text.TextUtils; import android.text.style.RelativeSizeSpan; import android.text.style.StyleSpan; +import android.util.Base64; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; @@ -105,7 +107,9 @@ public class AdapterCertificate extends RecyclerView.Adapter() { + @Override + protected String onExecute(Context context, Bundle args) throws CertificateException, IOException { + long id = args.getLong("id"); + + DB db = DB.getInstance(context); + EntityCertificate certificate = db.certificate().getCertificate(id); + if (certificate == null) + return null; + + return Base64.encodeToString(certificate.getCertificate().getEncoded(), Base64.URL_SAFE); + } + + @Override + protected void onExecuted(Bundle args, String cert) { + Helper.view(context, Uri.parse("https://lapo.it/asn1js/#" + cert), true); + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Log.unexpectedError(parentFragment.getParentFragmentManager(), ex); + } + }.execute(context, owner, args, "certificate:share"); + } + private void onActionDelete() { Bundle args = new Bundle(); args.putLong("id", certificate.id); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c00db56f23..c3a9d8b11f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1552,6 +1552,7 @@ Force light theme Rename Share + Analyze Share link Open message ZIP