From 1901abd05fc051b776e2bbb10295f936408a0843 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 22 Apr 2016 21:25:06 +0200 Subject: expert setting to manually change presence --- .../eu/siacs/conversations/entities/Account.java | 35 +++++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) (limited to 'src/main/java/eu/siacs/conversations/entities/Account.java') diff --git a/src/main/java/eu/siacs/conversations/entities/Account.java b/src/main/java/eu/siacs/conversations/entities/Account.java index 2356ffb9..c172f0e7 100644 --- a/src/main/java/eu/siacs/conversations/entities/Account.java +++ b/src/main/java/eu/siacs/conversations/entities/Account.java @@ -43,6 +43,8 @@ public class Account extends AbstractEntity { public static final String DISPLAY_NAME = "display_name"; public static final String HOSTNAME = "hostname"; public static final String PORT = "port"; + public static final String STATUS = "status"; + public static final String STATUS_MESSAGE = "status_message"; public static final String PINNED_MECHANISM_KEY = "pinned_mechanism"; @@ -168,15 +170,18 @@ public class Account extends AbstractEntity { private final Roster roster = new Roster(this); private List bookmarks = new CopyOnWriteArrayList<>(); private final Collection blocklist = new CopyOnWriteArraySet<>(); + private Presence.Status presenceStatus = Presence.Status.ONLINE; + private String presenceStatusMessage = null; public Account(final Jid jid, final String password) { this(java.util.UUID.randomUUID().toString(), jid, - password, 0, null, "", null, null, null, 5222); + password, 0, null, "", null, null, null, 5222, Presence.Status.ONLINE, null); } private Account(final String uuid, final Jid jid, - final String password, final int options, final String rosterVersion, final String keys, - final String avatar, String displayName, String hostname, int port) { + final String password, final int options, final String rosterVersion, final String keys, + final String avatar, String displayName, String hostname, int port, + final Presence.Status status, String statusMessage) { this.uuid = uuid; this.jid = jid; if (jid.isBareJid()) { @@ -194,6 +199,8 @@ public class Account extends AbstractEntity { this.displayName = displayName; this.hostname = hostname; this.port = port; + this.presenceStatus = status; + this.presenceStatusMessage = statusMessage; } public static Account fromCursor(final Cursor cursor) { @@ -212,7 +219,9 @@ public class Account extends AbstractEntity { cursor.getString(cursor.getColumnIndex(AVATAR)), cursor.getString(cursor.getColumnIndex(DISPLAY_NAME)), cursor.getString(cursor.getColumnIndex(HOSTNAME)), - cursor.getInt(cursor.getColumnIndex(PORT))); + cursor.getInt(cursor.getColumnIndex(PORT)), + Presence.Status.fromShowString(cursor.getString(cursor.getColumnIndex(STATUS))), + cursor.getString(cursor.getColumnIndex(STATUS_MESSAGE))); } public boolean isOptionSet(final int option) { @@ -287,6 +296,22 @@ public class Account extends AbstractEntity { return getXmppConnection() != null && getStatus().isError() && getXmppConnection().getAttempt() >= 3; } + public void setPresenceStatus(Presence.Status status) { + this.presenceStatus = status; + } + + public Presence.Status getPresenceStatus() { + return this.presenceStatus; + } + + public void setPresenceStatusMessage(String message) { + this.presenceStatusMessage = message; + } + + public String getPresenceStatusMessage() { + return this.presenceStatusMessage; + } + public String getResource() { return jid.getResourcepart(); } @@ -347,6 +372,8 @@ public class Account extends AbstractEntity { values.put(DISPLAY_NAME, displayName); values.put(HOSTNAME, hostname); values.put(PORT, port); + values.put(STATUS, presenceStatus.toShowString()); + values.put(STATUS_MESSAGE, presenceStatusMessage); return values; } -- cgit v1.2.3 From 9c3e910dc4c5605e0edad5ca876fff085f2150cb Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Tue, 26 Apr 2016 23:23:48 +0200 Subject: prevent user from accidentally changing password after using magic create --- src/main/java/eu/siacs/conversations/entities/Account.java | 1 + 1 file changed, 1 insertion(+) (limited to 'src/main/java/eu/siacs/conversations/entities/Account.java') diff --git a/src/main/java/eu/siacs/conversations/entities/Account.java b/src/main/java/eu/siacs/conversations/entities/Account.java index c172f0e7..2c0ec7ff 100644 --- a/src/main/java/eu/siacs/conversations/entities/Account.java +++ b/src/main/java/eu/siacs/conversations/entities/Account.java @@ -52,6 +52,7 @@ public class Account extends AbstractEntity { public static final int OPTION_DISABLED = 1; public static final int OPTION_REGISTER = 2; public static final int OPTION_USECOMPRESSION = 3; + public static final int OPTION_MAGIC_CREATE = 4; public final HashSet> inProgressDiscoFetches = new HashSet<>(); public boolean httpUploadAvailable(long filesize) { -- cgit v1.2.3 From 6e0ec9b924173bd2afe3b87646e3b1f4e907b7c1 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 5 May 2016 13:17:04 +0200 Subject: republish pgp signature when changing status --- src/main/java/eu/siacs/conversations/entities/Account.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main/java/eu/siacs/conversations/entities/Account.java') diff --git a/src/main/java/eu/siacs/conversations/entities/Account.java b/src/main/java/eu/siacs/conversations/entities/Account.java index 2c0ec7ff..1bcb15c0 100644 --- a/src/main/java/eu/siacs/conversations/entities/Account.java +++ b/src/main/java/eu/siacs/conversations/entities/Account.java @@ -478,10 +478,10 @@ public class Account extends AbstractEntity { try { return keys.getLong(KEY_PGP_ID); } catch (JSONException e) { - return -1; + return 0; } } else { - return -1; + return 0; } } -- cgit v1.2.3 From a7cd05bd4e5e350a91361da18f5437ca7f64e1bd Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 5 May 2016 20:22:47 +0200 Subject: report bind failure as account state --- src/main/java/eu/siacs/conversations/entities/Account.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/main/java/eu/siacs/conversations/entities/Account.java') diff --git a/src/main/java/eu/siacs/conversations/entities/Account.java b/src/main/java/eu/siacs/conversations/entities/Account.java index 1bcb15c0..1a7798b2 100644 --- a/src/main/java/eu/siacs/conversations/entities/Account.java +++ b/src/main/java/eu/siacs/conversations/entities/Account.java @@ -93,7 +93,8 @@ public class Account extends AbstractEntity { REGISTRATION_NOT_SUPPORTED(true), SECURITY_ERROR(true), INCOMPATIBLE_SERVER(true), - TOR_NOT_AVAILABLE(true); + TOR_NOT_AVAILABLE(true), + BIND_FAILURE(true); private final boolean isError; @@ -139,6 +140,8 @@ public class Account extends AbstractEntity { return R.string.account_status_incompatible_server; case TOR_NOT_AVAILABLE: return R.string.account_status_tor_unavailable; + case BIND_FAILURE: + return R.string.account_status_bind_failure; default: return R.string.account_status_unknown; } -- cgit v1.2.3 From 549be9bb3df86dfd7aea819b8f64508ec55d9322 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Tue, 10 May 2016 10:29:02 +0200 Subject: report host-account as account state in UI --- src/main/java/eu/siacs/conversations/entities/Account.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/main/java/eu/siacs/conversations/entities/Account.java') diff --git a/src/main/java/eu/siacs/conversations/entities/Account.java b/src/main/java/eu/siacs/conversations/entities/Account.java index 1a7798b2..c6b655d0 100644 --- a/src/main/java/eu/siacs/conversations/entities/Account.java +++ b/src/main/java/eu/siacs/conversations/entities/Account.java @@ -94,7 +94,8 @@ public class Account extends AbstractEntity { SECURITY_ERROR(true), INCOMPATIBLE_SERVER(true), TOR_NOT_AVAILABLE(true), - BIND_FAILURE(true); + BIND_FAILURE(true), + HOST_UNKNOWN(true); private final boolean isError; @@ -142,6 +143,8 @@ public class Account extends AbstractEntity { return R.string.account_status_tor_unavailable; case BIND_FAILURE: return R.string.account_status_bind_failure; + case HOST_UNKNOWN: + return R.string.account_status_host_unknown; default: return R.string.account_status_unknown; } -- cgit v1.2.3 From b756d61c45f5cd3a3c69dd93115ad558f41de216 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 13 May 2016 10:45:30 +0200 Subject: show presence of other resources as template --- src/main/java/eu/siacs/conversations/entities/Account.java | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/main/java/eu/siacs/conversations/entities/Account.java') diff --git a/src/main/java/eu/siacs/conversations/entities/Account.java b/src/main/java/eu/siacs/conversations/entities/Account.java index c6b655d0..1cdf0d67 100644 --- a/src/main/java/eu/siacs/conversations/entities/Account.java +++ b/src/main/java/eu/siacs/conversations/entities/Account.java @@ -79,6 +79,10 @@ public class Account extends AbstractEntity { } } + public Contact getSelfContact() { + return getRoster().getContact(jid); + } + public enum State { DISABLED, OFFLINE, -- cgit v1.2.3 From cf5ca27a069b3f87b879c2b5c58bee3f0635b9a9 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sun, 15 May 2016 12:35:31 +0200 Subject: escape HTML in OTR messages if other client is Pidgin --- src/main/java/eu/siacs/conversations/entities/Account.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/eu/siacs/conversations/entities/Account.java') diff --git a/src/main/java/eu/siacs/conversations/entities/Account.java b/src/main/java/eu/siacs/conversations/entities/Account.java index 1cdf0d67..a708b0ce 100644 --- a/src/main/java/eu/siacs/conversations/entities/Account.java +++ b/src/main/java/eu/siacs/conversations/entities/Account.java @@ -450,7 +450,7 @@ public class Account extends AbstractEntity { } public int countPresences() { - return this.getRoster().getContact(this.getJid().toBareJid()).getPresences().size(); + return this.getSelfContact().getPresences().size(); } public String getPgpSignature() { -- cgit v1.2.3