code cleanup for change password stuff

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java | 33 +
src/main/res/layout/activity_edit_account.xml                    |  2 
src/main/res/values/strings.xml                                  |  2 
3 files changed, 22 insertions(+), 15 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java 🔗

@@ -94,8 +94,7 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate
 			final String passwordConfirm = mPasswordConfirm.getText().toString();
 			if (registerNewAccount || changePassword) {
 				if (!password.equals(passwordConfirm)) {
-					mPasswordConfirm
-						.setError(getString(R.string.passwords_do_not_match));
+					mPasswordConfirm.setError(getString(R.string.passwords_do_not_match));
 					mPasswordConfirm.requestFocus();
 					return;
 				}
@@ -210,18 +209,26 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate
 
 		@Override
 		public void afterTextChanged(final Editable s) {
-			final boolean registrationReady = mAccount != null &&
+			toggleChangePasswordCheckbox();
+		}
+	};
+
+	private void toggleChangePasswordCheckbox() {
+		final boolean registrationReady = mAccount != null &&
 				mAccount.isOnlineAndConnected() &&
 				mAccount.getXmppConnection().getFeatures().register();
-			if (jidToEdit != null && mAccount != null && registrationReady &&
-					!mAccount.getPassword().equals(s.toString()) && !"".equals(s.toString())) {
-				mChangePassword.setVisibility(View.VISIBLE);
-			} else {
-				mChangePassword.setVisibility(View.INVISIBLE);
-				mChangePassword.setChecked(false);
-			}
+		if (passwordFieldEdited() && registrationReady) {
+			mChangePassword.setVisibility(View.VISIBLE);
+		} else {
+			mChangePassword.setVisibility(View.INVISIBLE);
+			mChangePassword.setChecked(false);
 		}
-	};
+	}
+
+	private boolean passwordFieldEdited() {
+		final String password = this.mPassword.getText().toString();
+		return jidToEdit != null && mAccount != null && !password.isEmpty() && !mAccount.getPassword().equals(password);
+	}
 	private final OnClickListener mAvatarClickListener = new OnClickListener() {
 		@Override
 		public void onClick(final View view) {
@@ -448,8 +455,8 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate
 			this.mChangePassword.setVisibility(View.GONE);
 			this.mChangePassword.setChecked(false);
 		}
-		if (this.mAccount.getStatus() == Account.State.ONLINE
-				&& !this.mFetchingAvatar) {
+		if (this.mAccount.isOnlineAndConnected() && !this.mFetchingAvatar) {
+			toggleChangePasswordCheckbox();
 			this.mStats.setVisibility(View.VISIBLE);
 			this.mSessionEst.setText(UIHelper.readableTimeDifferenceFull(this, this.mAccount.getXmppConnection()
 						.getLastSessionEstablished()));

src/main/res/layout/activity_edit_account.xml 🔗

@@ -84,7 +84,7 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="8dp"
-                    android:text="@string/change_password"
+                    android:text="@string/change_password_on_server"
                     android:textColor="@color/primarytext"
                     android:textSize="?attr/TextSizeBody" />
 

src/main/res/values/strings.xml 🔗

@@ -46,7 +46,7 @@
     <string name="contact_blocked">Contact blocked</string>
     <string name="remove_bookmark_text">Would you like to remove %s as a bookmark? The conversation associated with this bookmark will not be removed.</string>
     <string name="register_account">Register new account on server</string>
-    <string name="change_password">Change password</string>
+    <string name="change_password_on_server">Change password on server</string>
     <string name="share_with">Share with</string>
     <string name="start_conversation">Start Conversation</string>
     <string name="invite_contact">Invite Contact</string>