From df90a94e7b47629b47bb111759fccafc698c0968 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 8 Aug 2021 12:42:20 +0200 Subject: [PATCH] Added option to check DBL for suspicious links --- .../eu/faircode/email/FragmentDialogOpenLink.java | 5 +++-- .../eu/faircode/email/FragmentOptionsPrivacy.java | 14 +++++++++++++- .../main/res/layout/fragment_options_privacy.xml | 14 +++++++++++++- app/src/main/res/values/strings.xml | 1 + 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java b/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java index 33af42aa2b..f36e4ff624 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java @@ -127,6 +127,8 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { final Context context = getContext(); final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + boolean check_links_dbl = prefs.getBoolean("check_links_dbl", BuildConfig.PLAY_STORE_RELEASE); + boolean disconnect_links = prefs.getBoolean("disconnect_links", true); // Preload web view Helper.customTabsWarmup(context); @@ -403,7 +405,7 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { tvSuspicious.setVisibility(Helper.isSingleScript(host) ? View.GONE : View.VISIBLE); } - if (BuildConfig.DEBUG && + if (check_links_dbl && tvSuspicious.getVisibility() != View.VISIBLE) { Bundle args = new Bundle(); args.putString("host", host); @@ -432,7 +434,6 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { host == null || thost == null || host.equalsIgnoreCase(thost) ? View.GONE : View.VISIBLE); - boolean disconnect_links = prefs.getBoolean("disconnect_links", true); List categories = null; if (disconnect_links) categories = DisconnectBlacklist.getCategories(uri.getHost()); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java b/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java index 24948623db..bfe2dddc97 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java @@ -60,6 +60,7 @@ import java.text.SimpleDateFormat; public class FragmentOptionsPrivacy extends FragmentBase implements SharedPreferences.OnSharedPreferenceChangeListener { private SwitchCompat swConfirmLinks; + private SwitchCompat swCheckLinksDbl; private SwitchCompat swBrowseLinks; private SwitchCompat swConfirmImages; private SwitchCompat swConfirmHtml; @@ -88,7 +89,7 @@ public class FragmentOptionsPrivacy extends FragmentBase implements SharedPrefer private Group grpSafeBrowsing; private final static String[] RESET_OPTIONS = new String[]{ - "confirm_links", "browse_links", "confirm_images", "confirm_html", + "confirm_links", "check_links_dbl", "browse_links", "confirm_images", "confirm_html", "disable_tracking", "hide_timezone", "pin", "biometrics", "biometrics_timeout", "client_id", "display_hidden", "incognito_keyboard", "secure", @@ -107,6 +108,7 @@ public class FragmentOptionsPrivacy extends FragmentBase implements SharedPrefer // Get controls swConfirmLinks = view.findViewById(R.id.swConfirmLinks); + swCheckLinksDbl = view.findViewById(R.id.swCheckLinksDbl); swBrowseLinks = view.findViewById(R.id.swBrowseLinks); swConfirmImages = view.findViewById(R.id.swConfirmImages); swConfirmHtml = view.findViewById(R.id.swConfirmHtml); @@ -144,10 +146,18 @@ public class FragmentOptionsPrivacy extends FragmentBase implements SharedPrefer @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { prefs.edit().putBoolean("confirm_links", checked).apply(); + swCheckLinksDbl.setEnabled(checked); swBrowseLinks.setEnabled(!checked); } }); + swCheckLinksDbl.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("check_links_dbl", checked).apply(); + } + }); + swBrowseLinks.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -397,6 +407,8 @@ public class FragmentOptionsPrivacy extends FragmentBase implements SharedPrefer SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); swConfirmLinks.setChecked(prefs.getBoolean("confirm_links", true)); + swCheckLinksDbl.setChecked(prefs.getBoolean("check_links_dbl", BuildConfig.PLAY_STORE_RELEASE)); + swCheckLinksDbl.setEnabled(swConfirmLinks.isChecked()); swBrowseLinks.setChecked(prefs.getBoolean("browse_links", false)); swBrowseLinks.setEnabled(!swConfirmLinks.isChecked()); swConfirmImages.setChecked(prefs.getBoolean("confirm_images", true)); diff --git a/app/src/main/res/layout/fragment_options_privacy.xml b/app/src/main/res/layout/fragment_options_privacy.xml index 0bdd921984..eb60741c33 100644 --- a/app/src/main/res/layout/fragment_options_privacy.xml +++ b/app/src/main/res/layout/fragment_options_privacy.xml @@ -88,6 +88,18 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/swConfirmLinks" /> + + S/MIME Confirm opening links + Check domain block lists for suspicious links Delegate opening links to Android Confirm showing images Show reformatted messages by default