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 &&
- 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);
- }
+ toggleChangePasswordCheckbox();
}
};
+
+ private void toggleChangePasswordCheckbox() {
+ final boolean registrationReady = mAccount != null &&
+ mAccount.isOnlineAndConnected() &&
+ mAccount.getXmppConnection().getFeatures().register();
+ 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 @@
Contact blocked
Would you like to remove %s as a bookmark? The conversation associated with this bookmark will not be removed.
Register new account on server
- Change password
+ Change password on server
Share with
Start Conversation
Invite Contact