From a4efe7f47f5f31ffe5578a4bf8727a302d5decae Mon Sep 17 00:00:00 2001 From: Hocuri Date: Tue, 12 Apr 2022 17:58:53 +0200 Subject: [PATCH] Warn when enabling config "only_fetch_mvbox" --- res/values/strings.xml | 2 +- .../AdvancedPreferenceFragment.java | 24 +++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index f91c9da60..9abcba31c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -600,7 +600,7 @@ Use Default Image Select From Gallery IMAP Folder Handling - If you disable this option, make sure, your server and your other clients are configured accordingly.\n\nOtherwise things may not work at all. + If you change this option, make sure, your server and your other clients are configured accordingly.\n\nOtherwise things may not work at all. Watch Inbox Folder Watch Sent Folder Watch DeltaChat Folder diff --git a/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java b/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java index c650626bf..55476367f 100644 --- a/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java +++ b/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java @@ -92,11 +92,25 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment onlyFetchMvboxCheckbox = this.findPreference("pref_only_fetch_mvbox"); onlyFetchMvboxCheckbox.setOnPreferenceChangeListener(((preference, newValue) -> { - boolean enabled = (Boolean) newValue; - DcHelper.getAccounts(getContext()).stopIo(); - dcContext.setConfigInt(CONFIG_ONLY_FETCH_MVBOX, enabled? 1 : 0); - DcHelper.getAccounts(getContext()).startIo(); - return true; + final boolean enabled = (Boolean) newValue; + if (enabled) { + new AlertDialog.Builder(getContext()) + .setMessage(R.string.pref_imap_folder_warn_disable_defaults) + .setPositiveButton(R.string.ok, (dialogInterface, i) -> { + DcHelper.getAccounts(getContext()).stopIo(); + dcContext.setConfigInt(CONFIG_ONLY_FETCH_MVBOX, 1); + ((CheckBoxPreference)preference).setChecked(true); + DcHelper.getAccounts(getContext()).startIo(); + }) + .setNegativeButton(R.string.cancel, null) + .show(); + return false; + } else { + DcHelper.getAccounts(getContext()).stopIo(); + dcContext.setConfigInt(CONFIG_ONLY_FETCH_MVBOX, 0); + DcHelper.getAccounts(getContext()).startIo(); + return true; + } })); Preference manageKeys = this.findPreference("pref_manage_keys");