From 355d026e7d727ea41e773b7ea72b841c1758b8bc Mon Sep 17 00:00:00 2001 From: adbenitez Date: Wed, 10 Jul 2024 19:06:40 +0200 Subject: [PATCH] expand advanced settings if they are modified this helps avoid issues like user changing email address and password and pressing "configure" button without realizing they have custom imap, smpt, etc. settings --- .../securesms/RegistrationActivity.java | 70 ++++++++++++++----- 1 file changed, 53 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java b/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java index d84a83c0f..b5fff107f 100644 --- a/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java @@ -14,9 +14,9 @@ import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SEND_USER; import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SERVER_FLAGS; import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SOCKS5_ENABLED; import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SOCKS5_HOST; +import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SOCKS5_PASSWORD; import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SOCKS5_PORT; import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SOCKS5_USER; -import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SOCKS5_PASSWORD; import static org.thoughtcrime.securesms.connect.DcHelper.getContext; import static org.thoughtcrime.securesms.service.IPCAddAccountsService.ACCOUNT_DATA; @@ -55,7 +55,6 @@ import com.b44t.messenger.DcProvider; import com.b44t.messenger.util.concurrent.ListenableFuture; import com.b44t.messenger.util.concurrent.SettableFuture; import com.google.android.material.textfield.TextInputEditText; -import com.google.android.material.textfield.TextInputLayout; import org.thoughtcrime.securesms.connect.AccountManager; import org.thoughtcrime.securesms.connect.DcEventCenter; @@ -169,28 +168,60 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve viewLogText.setOnClickListener((view) -> showLog()); boolean isConfigured = DcHelper.isConfigured(getApplicationContext()); if (isConfigured) { - TextInputEditText imapLoginInput = findViewById(R.id.imap_login_text); - String email = DcHelper.get(this, CONFIG_ADDRESS); emailInput.setText(email); if(!TextUtils.isEmpty(email)) { emailInput.setSelection(email.length(), email.length()); } - passwordInput.setText(DcHelper.get(this, CONFIG_MAIL_PASSWORD)); - imapLoginInput.setText(DcHelper.get(this, CONFIG_MAIL_USER)); - imapServerInput.setText(DcHelper.get(this, CONFIG_MAIL_SERVER)); - imapPortInput.setText(DcHelper.get(this, CONFIG_MAIL_PORT)); - imapSecurity.setSelection(DcHelper.getInt(this, CONFIG_MAIL_SECURITY)); - TextInputEditText smtpLoginInput = findViewById(R.id.smtp_login_text); - TextInputEditText smtpPasswordInput = findViewById(R.id.smtp_password_text); - smtpLoginInput.setText(DcHelper.get(this, CONFIG_SEND_USER)); - smtpPasswordInput.setText(DcHelper.get(this, CONFIG_SEND_PASSWORD)); - smtpServerInput.setText(DcHelper.get(this, CONFIG_SEND_SERVER)); - smtpPortInput.setText(DcHelper.get(this, CONFIG_SEND_PORT)); - smtpSecurity.setSelection(DcHelper.getInt(this, CONFIG_SEND_SECURITY)); - proxySwitch.setChecked(DcHelper.getInt(this, CONFIG_SOCKS5_ENABLED) == 1); + boolean expandAdvanced = false; + String strVal; + int intVal; + + TextInputEditText imapLoginInput = findViewById(R.id.imap_login_text); + strVal = DcHelper.get(this, CONFIG_MAIL_USER); + imapLoginInput.setText(strVal); + expandAdvanced = expandAdvanced || !TextUtils.isEmpty(strVal); + + strVal = DcHelper.get(this, CONFIG_MAIL_SERVER); + imapServerInput.setText(strVal); + expandAdvanced = expandAdvanced || !TextUtils.isEmpty(strVal); + + strVal = DcHelper.get(this, CONFIG_MAIL_PORT); + imapPortInput.setText(strVal); + expandAdvanced = expandAdvanced || !TextUtils.isEmpty(strVal); + + intVal = DcHelper.getInt(this, CONFIG_MAIL_SECURITY); + imapSecurity.setSelection(intVal); + expandAdvanced = expandAdvanced || intVal != 0; + + TextInputEditText smtpLoginInput = findViewById(R.id.smtp_login_text); + strVal = DcHelper.get(this, CONFIG_SEND_USER); + smtpLoginInput.setText(strVal); + expandAdvanced = expandAdvanced || !TextUtils.isEmpty(strVal); + + TextInputEditText smtpPasswordInput = findViewById(R.id.smtp_password_text); + strVal = DcHelper.get(this, CONFIG_SEND_PASSWORD); + smtpPasswordInput.setText(strVal); + expandAdvanced = expandAdvanced || !TextUtils.isEmpty(strVal); + + strVal = DcHelper.get(this, CONFIG_SEND_SERVER); + smtpServerInput.setText(strVal); + expandAdvanced = expandAdvanced || !TextUtils.isEmpty(strVal); + + strVal = DcHelper.get(this, CONFIG_SEND_PORT); + smtpPortInput.setText(strVal); + expandAdvanced = expandAdvanced || !TextUtils.isEmpty(strVal); + + intVal = DcHelper.getInt(this, CONFIG_SEND_SECURITY); + smtpSecurity.setSelection(intVal); + expandAdvanced = expandAdvanced || intVal != 0; + + intVal = DcHelper.getInt(this, CONFIG_SOCKS5_ENABLED); + proxySwitch.setChecked(intVal == 1); + expandAdvanced = expandAdvanced || intVal == 1; + proxyHostInput.setText(DcHelper.get(this, CONFIG_SOCKS5_HOST)); proxyPortInput.setText(DcHelper.get(this, CONFIG_SOCKS5_PORT)); TextInputEditText proxyUserInput = findViewById(R.id.socks5_user_text); @@ -202,12 +233,17 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve int sel = 0; if((serverFlags&DcContext.DC_LP_AUTH_OAUTH2)!=0) sel = 1; authMethod.setSelection(sel); + expandAdvanced = expandAdvanced || sel != 0; int certCheckFlags = DcHelper.getInt(this, "imap_certificate_checks"); certCheck.setSelection(certCheckFlags); + expandAdvanced = expandAdvanced || certCheckFlags != 0; + encryptCheckbox.setHeight(0); encryptCheckbox.setClickable(false); encryptCheckbox.setFocusable(false); + + if (expandAdvanced) { onAdvancedSettings(); } } else if (getIntent() != null && getIntent().getBundleExtra(ACCOUNT_DATA) != null) { // Companion app might have sent account data Bundle b = getIntent().getBundleExtra(ACCOUNT_DATA);