diff --git a/src/main/java/org/thoughtcrime/securesms/ProxySettingsActivity.java b/src/main/java/org/thoughtcrime/securesms/ProxySettingsActivity.java
index 8471e84cb..0c049172a 100644
--- a/src/main/java/org/thoughtcrime/securesms/ProxySettingsActivity.java
+++ b/src/main/java/org/thoughtcrime/securesms/ProxySettingsActivity.java
@@ -90,6 +90,12 @@ public class ProxySettingsActivity extends BaseActionBarActivity {
saveConfig();
}
+ @Override
+ public void onPause() {
+ super.onPause();
+ saveConfig();
+ }
+
private void focusListener(View view, boolean focused, VerificationType type) {
if (!focused) {
diff --git a/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java b/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java
index f41c22896..8a5eb6f9e 100644
--- a/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java
+++ b/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java
@@ -96,7 +96,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
Spinner certCheck;
private SwitchCompat proxySwitch;
- private Group proxyGroup;
@Override
public void onCreate(Bundle bundle) {
@@ -127,15 +126,11 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
authMethod = findViewById(R.id.auth_method);
certCheck = findViewById(R.id.cert_check);
- proxyGroup = findViewById(R.id.socks5_group);
- proxySwitch = findViewById(R.id.socks5_switch);
- proxySwitch.setOnCheckedChangeListener((buttonView, isChecked) -> {
- proxyGroup.setVisibility(isChecked? advancedGroup.getVisibility() : View.GONE);
+ proxySwitch = findViewById(R.id.proxy_settings);
+ proxySwitch.setOnClickListener(l -> {
+ proxySwitch.setChecked(!proxySwitch.isChecked()); // revert toggle
+ startActivity(new Intent(this, ProxySettingsActivity.class));
});
- TextInputEditText proxyHostInput = findViewById(R.id.socks5_host_text);
- TextInputEditText proxyPortInput = findViewById(R.id.socks5_port_text);
- proxyHostInput.setOnFocusChangeListener((view, focused) -> focusListener(view, focused, VerificationType.SERVER));
- proxyPortInput.setOnFocusChangeListener((view, focused) -> focusListener(view, focused, VerificationType.PORT));
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
@@ -161,7 +156,16 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
advancedIcon.setOnClickListener(l -> onAdvancedSettings());
advancedIcon.setRotation(45);
viewLogText.setOnClickListener((view) -> showLog());
+
boolean isConfigured = DcHelper.isConfigured(getApplicationContext());
+ boolean expandAdvanced = false;
+ String strVal;
+ int intVal;
+
+ intVal = DcHelper.getInt(this, CONFIG_SOCKS5_ENABLED);
+ proxySwitch.setChecked(intVal == 1);
+ expandAdvanced = expandAdvanced || intVal == 1;
+
if (isConfigured) {
String email = DcHelper.get(this, CONFIG_ADDRESS);
emailInput.setText(email);
@@ -170,10 +174,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
}
passwordInput.setText(DcHelper.get(this, CONFIG_MAIL_PASSWORD));
- 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);
@@ -213,17 +213,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
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);
- TextInputEditText proxyPasswordInput = findViewById(R.id.socks5_password_text);
- proxyUserInput.setText(DcHelper.get(this, CONFIG_SOCKS5_USER));
- proxyPasswordInput.setText(DcHelper.get(this, CONFIG_SOCKS5_PASSWORD));
-
int serverFlags = DcHelper.getInt(this, CONFIG_SERVER_FLAGS);
int sel = 0;
if((serverFlags&DcContext.DC_LP_AUTH_OAUTH2)!=0) {
@@ -242,8 +231,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
int certCheckFlags = DcHelper.getInt(this, "imap_certificate_checks");
certCheck.setSelection(certCheckFlags);
expandAdvanced = expandAdvanced || certCheckFlags != 0;
-
- 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);
@@ -261,6 +248,7 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
}
}
+ if (expandAdvanced) { onAdvancedSettings(); }
registerForEvents();
}
@@ -272,6 +260,7 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
public void onResume() {
super.onResume();
dynamicTheme.onResume(this);
+ proxySwitch.setChecked(DcHelper.getInt(this, CONFIG_SOCKS5_ENABLED) == 1);
}
private void showLog() {
@@ -574,12 +563,10 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
private void onAdvancedSettings() {
boolean advancedViewVisible = advancedGroup.getVisibility() == View.VISIBLE;
if (advancedViewVisible) {
- proxyGroup.setVisibility(View.GONE);
advancedGroup.setVisibility(View.GONE);
advancedIcon.setRotation(45);
} else {
advancedGroup.setVisibility(View.VISIBLE);
- if (proxySwitch.isChecked()) proxyGroup.setVisibility(View.VISIBLE);
advancedIcon.setRotation(0);
}
}
@@ -621,15 +608,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
setConfig(R.id.smtp_port_text, CONFIG_SEND_PORT, true);
setConfig(R.id.smtp_login_text, CONFIG_SEND_USER, false);
setConfig(R.id.smtp_password_text, CONFIG_SEND_PASSWORD, false);
- if (proxySwitch.isChecked()) {
- DcHelper.getContext(this).setConfigInt(CONFIG_SOCKS5_ENABLED, 1);
- setConfig(R.id.socks5_host_text, CONFIG_SOCKS5_HOST, true);
- setConfig(R.id.socks5_port_text, CONFIG_SOCKS5_PORT, true);
- setConfig(R.id.socks5_user_text, CONFIG_SOCKS5_USER, true);
- setConfig(R.id.socks5_password_text, CONFIG_SOCKS5_PASSWORD, false);
- } else {
- DcHelper.getContext(this).setConfigInt(CONFIG_SOCKS5_ENABLED, 0);
- }
DcHelper.getContext(this).setConfigInt(CONFIG_MAIL_SECURITY, imapSecurity.getSelectedItemPosition());
DcHelper.getContext(this).setConfigInt(CONFIG_SEND_SECURITY, smtpSecurity.getSelectedItemPosition());
diff --git a/src/main/res/layout/registration_activity.xml b/src/main/res/layout/registration_activity.xml
index eae1b7be8..0a8007c83 100644
--- a/src/main/res/layout/registration_activity.xml
+++ b/src/main/res/layout/registration_activity.xml
@@ -123,7 +123,7 @@
android:visibility="gone"
tools:visibility="visible"
app:constraint_referenced_ids="inbox, imap_login, imap_server, imap_port, imap_security_label, imap_security, outbox_view_spacer_top,
- outbox, smtp_login, smtp_password, smtp_server, smtp_port, smtp_security_label, smtp_security, auth_method_label, auth_method, cert_check_label, cert_check, view_log_button, socks5_switch" />
+ outbox, smtp_login, smtp_password, smtp_server, smtp_port, smtp_security_label, smtp_security, auth_method_label, auth_method, cert_check_label, cert_check, view_log_button, proxy_settings" />
+
+
+ app:layout_constraintTop_toBottomOf="@id/proxy_settings" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ app:layout_constraintTop_toBottomOf="@id/cert_check" />