From 5037be126d97f85c3eea14787be32479a80dcc83 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 29 Jun 2022 16:51:29 +0200 Subject: [PATCH] Open link chooser --- .../eu/faircode/email/FragmentDialogOpenLink.java | 9 +++++++++ app/src/main/java/eu/faircode/email/Helper.java | 11 ++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java b/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java index a6a18cfecf..d222bfe200 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java @@ -587,6 +587,15 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { } } + Drawable android = context.getDrawable(R.drawable.twotone_android_24); + android.setBounds(0, 0, dp24, dp24); + pkgs.add(new Package( + android, + context.getString(R.string.title_select_app), + "chooser", + false, + true)); + return pkgs; } diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 60eaa044b5..30afd425c0 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -916,7 +916,16 @@ public class Helper { " task=" + task + " pkg=" + open_with_pkg + ":" + open_with_tabs); - if (browse || !open_with_tabs) { + if ("chooser".equals(open_with_pkg)) { + Intent view = new Intent(Intent.ACTION_VIEW, uri); + Intent chooser = Intent.createChooser(view, context.getString(R.string.title_select_app)); + try { + context.startActivity(chooser); + } catch (ActivityNotFoundException ex) { + Log.w(ex); + reportNoViewer(context, uri, ex); + } + } else if (browse || !open_with_tabs) { try { Intent view = new Intent(Intent.ACTION_VIEW); if (mimeType == null)