diff options
author | Sam Whited <sam@samwhited.com> | 2014-11-15 11:19:42 -0500 |
---|---|---|
committer | Sam Whited <sam@samwhited.com> | 2014-11-15 11:21:47 -0500 |
commit | c09d450db815f51802caf0ea761ee01617a4ad19 (patch) | |
tree | 1ca77a5198c36d7f8b91c7ee40790dd081a96077 /src/main/java/eu/siacs | |
parent | d94b07c916757b351c5d85762b9441ad5e7354f0 (diff) |
Add security error status
Diffstat (limited to 'src/main/java/eu/siacs')
3 files changed, 21 insertions, 13 deletions
diff --git a/src/main/java/eu/siacs/conversations/entities/Account.java b/src/main/java/eu/siacs/conversations/entities/Account.java index ea6c0187..d5a316ab 100644 --- a/src/main/java/eu/siacs/conversations/entities/Account.java +++ b/src/main/java/eu/siacs/conversations/entities/Account.java @@ -42,17 +42,18 @@ public class Account extends AbstractEntity { public static final int OPTION_USECOMPRESSION = 3; public static enum State { - DISABLED, - OFFLINE, - CONNECTING, - ONLINE, - NO_INTERNET, + DISABLED, + OFFLINE, + CONNECTING, + ONLINE, + NO_INTERNET, UNAUTHORIZED(true), SERVER_NOT_FOUND(true), REGISTRATION_FAILED(true), REGISTRATION_CONFLICT(true), - REGISTRATION_SUCCESSFUL, - REGISTRATION_NOT_SUPPORTED(true); + REGISTRATION_SUCCESSFUL, + REGISTRATION_NOT_SUPPORTED(true), + SECURITY_ERROR(true); private boolean isError; @@ -92,6 +93,8 @@ public class Account extends AbstractEntity { return R.string.account_status_regis_success; case REGISTRATION_NOT_SUPPORTED: return R.string.account_status_regis_not_sup; + case SECURITY_ERROR: + return R.string.account_status_security_error; default: return R.string.account_status_unknown; } @@ -126,8 +129,8 @@ public class Account extends AbstractEntity { } public Account(final String uuid, final Jid jid, - final String password, final int options, final String rosterVersion, final String keys, - final String avatar) { + final String password, final int options, final String rosterVersion, final String keys, + final String avatar) { this.uuid = uuid; this.jid = jid; if (jid.isBareJid()) { @@ -293,7 +296,7 @@ public class Account extends AbstractEntity { if (this.otrFingerprint == null) { try { DSAPublicKey pubkey = (DSAPublicKey) this.otrEngine - .getPublicKey(); + .getPublicKey(); if (pubkey == null) { return null; } @@ -394,12 +397,12 @@ public class Account extends AbstractEntity { } public int getReadableStatusId() { - return this.getStatus().getReadableId(); + return this.getStatus().getReadableId(); } public void activateGracePeriod() { this.mEndGracePeriod = SystemClock.elapsedRealtime() - + (Config.CARBON_GRACE_PERIOD * 1000); + + (Config.CARBON_GRACE_PERIOD * 1000); } public void deactivateGracePeriod() { diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java index 25e0f99d..7404e161 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java @@ -92,6 +92,10 @@ public class AccountAdapter extends ArrayAdapter<Account> { R.string.account_status_regis_not_sup)); statusView.setTextColor(activity.getWarningTextColor()); break; + case SECURITY_ERROR: + statusView.setText(getContext().getString + (R.string.account_status_security_error)); + statusView.setTextColor(activity.getWarningTextColor()); default: statusView.setText(""); break; diff --git a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java index 16ef1b50..42a89610 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java @@ -649,7 +649,8 @@ public class XmppConnection implements Runnable { ") than pinned priority (" + keys.getInt(Account.PINNED_MECHANISM_KEY) + "). Possible downgrade attack?"); disconnect(true); - } + account.setStatus(Account.State.SECURITY_ERROR); + } } catch (final JSONException e) { Log.d(Config.LOGTAG, "Parse error while checking pinned auth mechanism"); } |