only show one error at once

This commit is contained in:
Daniel Gultsch 2018-02-18 08:33:33 +01:00
parent f334349cd6
commit 1c441a57e8
1 changed files with 29 additions and 4 deletions

View File

@ -153,6 +153,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
final boolean registerNewAccount = mRegisterNew.isChecked() && !Config.DISALLOW_REGISTRATION_IN_UI;
if (mUsernameMode && mAccountJid.getText().toString().contains("@")) {
mAccountJidLayout.setError(getString(R.string.invalid_username));
removeErrorsOnAllBut(mAccountJidLayout);
mAccountJid.requestFocus();
return;
}
@ -186,6 +187,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
mAccountJidLayout.setError(getString(R.string.invalid_jid));
}
mAccountJid.requestFocus();
removeErrorsOnAllBut(mAccountJidLayout);
return;
}
String hostname = null;
@ -196,18 +198,21 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
if (hostname.contains(" ")) {
mHostnameLayout.setError(getString(R.string.not_valid_hostname));
mHostname.requestFocus();
removeErrorsOnAllBut(mHostnameLayout);
return;
}
try {
numericPort = Integer.parseInt(port);
if (numericPort < 0 || numericPort > 65535) {
mPortLayout.setError(getString(R.string.not_a_valid_port));
removeErrorsOnAllBut(mPortLayout);
mPort.requestFocus();
return;
}
} catch (NumberFormatException e) {
mPortLayout.setError(getString(R.string.not_a_valid_port));
removeErrorsOnAllBut(mPortLayout);
mPort.requestFocus();
return;
}
@ -219,6 +224,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
} else {
mAccountJidLayout.setError(getString(R.string.invalid_jid));
}
removeErrorsOnAllBut(mAccountJidLayout);
mAccountJid.requestFocus();
return;
}
@ -239,6 +245,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
} else {
if (xmppConnectionService.findAccountByJid(jid) != null) {
mAccountJidLayout.setError(getString(R.string.account_already_exists));
removeErrorsOnAllBut(mAccountJidLayout);
mAccountJid.requestFocus();
return;
}
@ -1061,8 +1068,8 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
keysCard.setVisibility(View.GONE);
}
} else {
final TextInputLayout errorLayout;
if (this.mAccount.errorStatus()) {
final TextInputLayout errorLayout;
if (this.mAccount.getStatus() == Account.State.UNAUTHORIZED) {
errorLayout = this.mPasswordLayout;
} else if (mShowOptions
@ -1077,14 +1084,32 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
errorLayout.requestFocus();
}
} else {
this.mAccountJidLayout.setError(null);
this.mPasswordLayout.setError(null);
this.mHostnameLayout.setError(null);
errorLayout = null;
}
removeErrorsOnAllBut(errorLayout);
this.mStats.setVisibility(View.GONE);
}
}
private void removeErrorsOnAllBut(TextInputLayout exception) {
if (this.mAccountJidLayout != exception){
this.mAccountJidLayout.setErrorEnabled(false);
this.mAccountJidLayout.setError(null);
}
if (this.mPasswordLayout != exception) {
this.mPasswordLayout.setErrorEnabled(false);
this.mPasswordLayout.setError(null);
}
if (this.mHostnameLayout != exception) {
this.mHostnameLayout.setErrorEnabled(false);
this.mHostnameLayout.setError(null);
}
if (this.mPortLayout != exception) {
this.mPortLayout.setErrorEnabled(false);
this.mPortLayout.setError(null);
}
}
private void showDeletePgpDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.unpublish_pgp);