diff options
-rw-r--r-- | src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java | 33 | ||||
-rw-r--r-- | src/main/res/layout/activity_edit_account.xml | 2 | ||||
-rw-r--r-- | src/main/res/values/strings.xml | 2 |
3 files changed, 22 insertions, 15 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java b/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java index 3bd4dd1eb..f8221f1b8 100644 --- a/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java +++ b/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())); diff --git a/src/main/res/layout/activity_edit_account.xml b/src/main/res/layout/activity_edit_account.xml index cb6267803..d29872530 100644 --- a/src/main/res/layout/activity_edit_account.xml +++ b/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" /> diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 6634c96a4..f75a698b9 100644 --- a/src/main/res/values/strings.xml +++ b/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> |