From 603a049a9236ea4a440594cefd63b8e32e8d03c0 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 10 Aug 2021 17:46:29 +0200 Subject: [PATCH] Added default apps button --- .../faircode/email/FragmentDialogOpenLink.java | 17 +++++++++++++++-- .../main/res/drawable/twotone_android_24.xml | 10 ++++++++++ app/src/main/res/layout/dialog_open_link.xml | 16 ++++++++++++++-- app/src/main/res/values/strings.xml | 1 + 4 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/drawable/twotone_android_24.xml diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java b/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java index 30357c03a2..b2201ca93c 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java @@ -30,7 +30,9 @@ import android.content.SharedPreferences; import android.graphics.Paint; import android.graphics.Typeface; import android.net.Uri; +import android.os.Build; import android.os.Bundle; +import android.provider.Settings; import android.text.Editable; import android.text.SpannableStringBuilder; import android.text.Spanned; @@ -115,6 +117,7 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { private TextView tvOwner; private Group grpOwner; private Button btnSettings; + private Button btnDefault; private TextView tvReset; @NonNull @@ -144,8 +147,7 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { if ("http".equals(scheme)) scheme = "https"; uri = Uri.parse(scheme + "://" + _uri.toString()); - } - else + } else uri = _uri; } else uri = _uri; @@ -192,6 +194,7 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { tvOwner = dview.findViewById(R.id.tvOwner); grpOwner = dview.findViewById(R.id.grpOwner); btnSettings = dview.findViewById(R.id.btnSettings); + btnDefault = dview.findViewById(R.id.btnDefault); tvReset = dview.findViewById(R.id.tvReset); final Group grpDifferent = dview.findViewById(R.id.grpDifferent); @@ -410,6 +413,14 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { } }); + final Intent manage = new Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS); + btnDefault.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + v.getContext().startActivity(manage); + } + }); + tvReset.setPaintFlags(tvReset.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); tvReset.setOnClickListener(new View.OnClickListener() { @Override @@ -520,12 +531,14 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { } private void setMore(boolean show) { + boolean n = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N); ibMore.setImageLevel(show ? 0 : 1); btnOwner.setVisibility(show ? View.VISIBLE : View.GONE); pbWait.setVisibility(View.GONE); tvOwnerRemark.setVisibility(show ? View.VISIBLE : View.GONE); grpOwner.setVisibility(View.GONE); btnSettings.setVisibility(show ? View.VISIBLE : View.GONE); + btnDefault.setVisibility(show && n ? View.VISIBLE : View.GONE); tvReset.setVisibility(show ? View.VISIBLE : View.GONE); } diff --git a/app/src/main/res/drawable/twotone_android_24.xml b/app/src/main/res/drawable/twotone_android_24.xml new file mode 100644 index 0000000000..28c533f86e --- /dev/null +++ b/app/src/main/res/drawable/twotone_android_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/dialog_open_link.xml b/app/src/main/res/layout/dialog_open_link.xml index 9e058c7855..5dfea15468 100644 --- a/app/src/main/res/layout/dialog_open_link.xml +++ b/app/src/main/res/layout/dialog_open_link.xml @@ -299,6 +299,18 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/tvOwner" /> +