From 38e9af5320ff424178699003369f690181cfbb68 Mon Sep 17 00:00:00 2001 From: Joe Steele Date: Thu, 17 Jul 2014 11:58:46 -0400 Subject: [PATCH] Don't clear widgets when removing The user may toggle the checkbox, and then decide to toggle it again. This also fixes a problem when restoring the activity state. When the checkbox was restored as checked, the listener was firing and wiping the the restored alias. --- .../k9/activity/setup/AccountSetupBasics.java | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/com/fsck/k9/activity/setup/AccountSetupBasics.java b/src/com/fsck/k9/activity/setup/AccountSetupBasics.java index 0abbc8a76..0189347ed 100644 --- a/src/com/fsck/k9/activity/setup/AccountSetupBasics.java +++ b/src/com/fsck/k9/activity/setup/AccountSetupBasics.java @@ -148,20 +148,10 @@ public class AccountSetupBasics extends K9Activity @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { - // clear password field - mPasswordView.removeTextChangedListener(this); - mPasswordView.setText(""); - mPasswordView.addTextChangedListener(this); - // hide password fields, show client certificate spinner mPasswordView.setVisibility(View.GONE); mClientCertificateSpinner.setVisibility(View.VISIBLE); } else { - // clear client certificate spinner - mClientCertificateSpinner.setOnClientCertificateChangedListener(null); - mClientCertificateSpinner.setAlias(null); - mClientCertificateSpinner.setOnClientCertificateChangedListener(this); - // show password fields, hide client certificate spinner mPasswordView.setVisibility(View.VISIBLE); mClientCertificateSpinner.setVisibility(View.GONE); @@ -175,9 +165,9 @@ public class AccountSetupBasics extends K9Activity String email = mEmailView.getText().toString(); boolean valid = Utility.requiredFieldValid(mEmailView) - && (Utility.requiredFieldValid(mPasswordView) - || (clientCertificateChecked && clientCertificateAlias != null)) - && mEmailValidator.isValidAddressOnly(email); + && ((!clientCertificateChecked && Utility.requiredFieldValid(mPasswordView)) + || (clientCertificateChecked && clientCertificateAlias != null)) + && mEmailValidator.isValidAddressOnly(email); mNextButton.setEnabled(valid); mManualSetupButton.setEnabled(valid);