diff --git a/app/src/main/java/eu/faircode/email/ApplicationEx.java b/app/src/main/java/eu/faircode/email/ApplicationEx.java index 0459d798e3..980fdaddc6 100644 --- a/app/src/main/java/eu/faircode/email/ApplicationEx.java +++ b/app/src/main/java/eu/faircode/email/ApplicationEx.java @@ -636,8 +636,13 @@ public class ApplicationEx extends Application editor.putBoolean("auto_identity", true); } else if (version < 1931) editor.remove("button_force_light").remove("fake_dark"); - else if (version < 1933) + else if (version < 1933) { editor.putBoolean("lt_enabled", true); + if (prefs.contains("disable_top")) { + editor.putBoolean("use_top", !prefs.getBoolean("disable_top", false)); + editor.remove("disable_top"); + } + } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !BuildConfig.DEBUG) editor.remove("background_service"); diff --git a/app/src/main/java/eu/faircode/email/EmailService.java b/app/src/main/java/eu/faircode/email/EmailService.java index 451dc7480a..96a5931117 100644 --- a/app/src/main/java/eu/faircode/email/EmailService.java +++ b/app/src/main/java/eu/faircode/email/EmailService.java @@ -190,14 +190,14 @@ public class EmailService implements AutoCloseable { boolean auth_ntlm = prefs.getBoolean("auth_ntlm", true); boolean auth_sasl = prefs.getBoolean("auth_sasl", true); boolean auth_apop = prefs.getBoolean("auth_apop", false); - boolean disable_top = prefs.getBoolean("disable_top", false); + boolean use_top = prefs.getBoolean("use_top", true); Log.i("Authenticate" + " plain=" + auth_plain + " login=" + auth_login + " ntlm=" + auth_ntlm + " sasl=" + auth_sasl + " apop=" + auth_apop + - " disable_top=" + disable_top); + " use_top=" + use_top); properties.put("mail.event.scope", "folder"); properties.put("mail.event.executor", executor); @@ -210,7 +210,7 @@ public class EmailService implements AutoCloseable { properties.put("mail." + protocol + ".auth.ntlm.disable", "true"); if (auth_apop) properties.put("mail." + protocol + ".apop.enable", "true"); - if (disable_top) + if (!use_top) properties.put("mail." + protocol + ".disabletop", "true"); // SASL is attempted before other authentication methods diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java index 410158fb94..57ae7cdb99 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java @@ -177,7 +177,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc private SwitchCompat swAuthNtlm; private SwitchCompat swAuthSasl; private SwitchCompat swAuthApop; - private SwitchCompat swDisableTop; + private SwitchCompat swUseTop; private SwitchCompat swKeepAlivePoll; private SwitchCompat swEmptyPool; private SwitchCompat swIdleDone; @@ -227,7 +227,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc "webview_legacy", "browser_zoom", "fake_dark", "show_recent", "use_modseq", "uid_command", "perform_expunge", "uid_expunge", - "auth_plain", "auth_login", "auth_ntlm", "auth_sasl", "auth_apop", "disable_top", + "auth_plain", "auth_login", "auth_ntlm", "auth_sasl", "auth_apop", "use_top", "keep_alive_poll", "empty_pool", "idle_done", "logarithmic_backoff", "exact_alarms", "infra", "dkim_verify", "dup_msgids", "test_iab" }; @@ -362,7 +362,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc swAuthNtlm = view.findViewById(R.id.swAuthNtlm); swAuthSasl = view.findViewById(R.id.swAuthSasl); swAuthApop = view.findViewById(R.id.swAuthApop); - swDisableTop = view.findViewById(R.id.swDisableTop); + swUseTop = view.findViewById(R.id.swUseTop); swKeepAlivePoll = view.findViewById(R.id.swKeepAlivePoll); swEmptyPool = view.findViewById(R.id.swEmptyPool); swIdleDone = view.findViewById(R.id.swIdleDone); @@ -1180,10 +1180,10 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc } }); - swDisableTop.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + swUseTop.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { - prefs.edit().putBoolean("disable_top", checked).apply(); + prefs.edit().putBoolean("use_top", checked).apply(); } }); @@ -1847,7 +1847,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc swAuthNtlm.setChecked(prefs.getBoolean("auth_ntlm", true)); swAuthSasl.setChecked(prefs.getBoolean("auth_sasl", true)); swAuthApop.setChecked(prefs.getBoolean("auth_apop", false)); - swDisableTop.setChecked(prefs.getBoolean("disable_top", false)); + swUseTop.setChecked(prefs.getBoolean("use_top", true)); swKeepAlivePoll.setChecked(prefs.getBoolean("keep_alive_poll", false)); swEmptyPool.setChecked(prefs.getBoolean("empty_pool", true)); swIdleDone.setChecked(prefs.getBoolean("idle_done", true)); diff --git a/app/src/main/res/layout/fragment_options_misc.xml b/app/src/main/res/layout/fragment_options_misc.xml index 46efc0342e..c610b6e98c 100644 --- a/app/src/main/res/layout/fragment_options_misc.xml +++ b/app/src/main/res/layout/fragment_options_misc.xml @@ -1232,11 +1232,12 @@ app:switchPadding="12dp" /> NTLM SASL APOP - Disable TOP + Use TOP IDLE/DONE Logarithmic back-off Turning this off can result in a significant increase in battery usage!