diff --git a/res/values/strings.xml b/res/values/strings.xml index 6b22e0712..4705141bc 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -607,6 +607,8 @@ Send Copy to Self Automatic Moves to DeltaChat Folder Chat conversations are moved to avoid cluttering the Inbox + Only Fetch from DeltaChat Folder + Ignore other folders. Requires your server to move chat messages to the DeltaChat folder. Show Classic E-Mails No, chats only For accepted contacts diff --git a/res/xml/preferences_advanced.xml b/res/xml/preferences_advanced.xml index ee038ddee..8be9dc44e 100644 --- a/res/xml/preferences_advanced.xml +++ b/res/xml/preferences_advanced.xml @@ -36,6 +36,12 @@ android:title="@string/pref_auto_folder_moves" android:summary="@string/pref_auto_folder_moves_explain"/> + + diff --git a/src/org/thoughtcrime/securesms/connect/DcHelper.java b/src/org/thoughtcrime/securesms/connect/DcHelper.java index bac8e4841..42a7493d0 100644 --- a/src/org/thoughtcrime/securesms/connect/DcHelper.java +++ b/src/org/thoughtcrime/securesms/connect/DcHelper.java @@ -58,6 +58,7 @@ public class DcHelper { public static final String CONFIG_SENTBOX_WATCH = "sentbox_watch"; public static final String CONFIG_MVBOX_WATCH = "mvbox_watch"; public static final String CONFIG_MVBOX_MOVE = "mvbox_move"; + public static final String CONFIG_ONLY_FETCH_MVBOX = "only_fetch_mvbox"; public static final String CONFIG_BCC_SELF = "bcc_self"; public static final String CONFIG_SHOW_EMAILS = "show_emails"; public static final String CONFIG_MEDIA_QUALITY = "media_quality"; diff --git a/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java b/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java index 4ebfeb495..c650626bf 100644 --- a/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java +++ b/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java @@ -1,5 +1,13 @@ package org.thoughtcrime.securesms.preferences; +import static android.app.Activity.RESULT_OK; +import static android.text.InputType.TYPE_TEXT_VARIATION_URI; +import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_BCC_SELF; +import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_E2EE_ENABLED; +import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_MVBOX_MOVE; +import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_ONLY_FETCH_MVBOX; +import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SENTBOX_WATCH; + import android.Manifest; import android.content.Context; import android.content.DialogInterface; @@ -32,13 +40,6 @@ import org.thoughtcrime.securesms.util.ScreenLockUtil; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.views.ProgressDialog; -import static android.app.Activity.RESULT_OK; -import static android.text.InputType.TYPE_TEXT_VARIATION_URI; -import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_BCC_SELF; -import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_E2EE_ENABLED; -import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_MVBOX_MOVE; -import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SENTBOX_WATCH; - public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment implements DcEventCenter.DcEventDelegate @@ -52,6 +53,7 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment CheckBoxPreference sentboxWatchCheckbox; CheckBoxPreference bccSelfCheckbox; CheckBoxPreference mvboxMoveCheckbox; + CheckBoxPreference onlyFetchMvboxCheckbox; @Override public void onCreate(Bundle paramBundle) { @@ -82,10 +84,21 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment mvboxMoveCheckbox = (CheckBoxPreference) this.findPreference("pref_mvbox_move"); mvboxMoveCheckbox.setOnPreferenceChangeListener((preference, newValue) -> { boolean enabled = (Boolean) newValue; + DcHelper.getAccounts(getContext()).stopIo(); dcContext.setConfigInt(CONFIG_MVBOX_MOVE, enabled? 1 : 0); + DcHelper.getAccounts(getContext()).startIo(); return true; }); + 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; + })); + Preference manageKeys = this.findPreference("pref_manage_keys"); manageKeys.setOnPreferenceClickListener(new ManageKeysListener()); @@ -151,6 +164,7 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment sentboxWatchCheckbox.setChecked(0!=dcContext.getConfigInt(CONFIG_SENTBOX_WATCH)); bccSelfCheckbox.setChecked(0!=dcContext.getConfigInt(CONFIG_BCC_SELF)); mvboxMoveCheckbox.setChecked(0!=dcContext.getConfigInt(CONFIG_MVBOX_MOVE)); + onlyFetchMvboxCheckbox.setChecked(0!=dcContext.getConfigInt(CONFIG_ONLY_FETCH_MVBOX)); } @Override