aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/entities/Account.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/entities/Account.java')
-rw-r--r--src/main/java/de/pixart/messenger/entities/Account.java56
1 files changed, 25 insertions, 31 deletions
diff --git a/src/main/java/de/pixart/messenger/entities/Account.java b/src/main/java/de/pixart/messenger/entities/Account.java
index 8b2eef3eb..4dcd028ba 100644
--- a/src/main/java/de/pixart/messenger/entities/Account.java
+++ b/src/main/java/de/pixart/messenger/entities/Account.java
@@ -3,6 +3,7 @@ package de.pixart.messenger.entities;
import android.content.ContentValues;
import android.database.Cursor;
import android.os.SystemClock;
+import android.util.Log;
import android.util.Pair;
import net.java.otr4j.crypto.OtrCryptoEngineImpl;
@@ -30,8 +31,7 @@ import de.pixart.messenger.crypto.axolotl.XmppAxolotlSession;
import de.pixart.messenger.services.XmppConnectionService;
import de.pixart.messenger.utils.XmppUri;
import de.pixart.messenger.xmpp.XmppConnection;
-import de.pixart.messenger.xmpp.jid.InvalidJidException;
-import de.pixart.messenger.xmpp.jid.Jid;
+import rocks.xmpp.addr.Jid;
public class Account extends AbstractEntity {
@@ -287,13 +287,16 @@ public class Account extends AbstractEntity {
}
public static Account fromCursor(final Cursor cursor) {
- Jid jid = null;
+ final Jid jid;
try {
- jid = Jid.fromParts(
+ String resource = cursor.getString(cursor.getColumnIndex(RESOURCE));
+ jid = Jid.of(
cursor.getString(cursor.getColumnIndex(USERNAME)),
cursor.getString(cursor.getColumnIndex(SERVER)),
- cursor.getString(cursor.getColumnIndex(RESOURCE)));
- } catch (final InvalidJidException ignored) {
+ resource == null || resource.trim().isEmpty() ? null : resource);
+ } catch (final IllegalArgumentException ignored) {
+ Log.d(Config.LOGTAG, cursor.getString(cursor.getColumnIndex(USERNAME)) + "@" + cursor.getString(cursor.getColumnIndex(SERVER)));
+ throw new AssertionError(ignored);
}
return new Account(cursor.getString(cursor.getColumnIndex(UUID)),
jid,
@@ -324,13 +327,13 @@ public class Account extends AbstractEntity {
}
public String getUsername() {
- return jid.getLocalpart();
+ return jid.getLocal();
}
public boolean setJid(final Jid next) {
final Jid previousFull = this.jid;
- final Jid prev = this.jid != null ? this.jid.toBareJid() : null;
- final boolean changed = prev == null || (next != null && !prev.equals(next.toBareJid()));
+ final Jid prev = this.jid != null ? this.jid.asBareJid() : null;
+ final boolean changed = prev == null || (next != null && !prev.equals(next.asBareJid()));
if (changed) {
final AxolotlService oldAxolotlService = this.axolotlService;
if (oldAxolotlService != null) {
@@ -340,11 +343,11 @@ public class Account extends AbstractEntity {
}
}
this.jid = next;
- return next != null && next.equals(previousFull);
+ return next != null && !next.equals(previousFull);
}
public Jid getServer() {
- return jid.toDomainJid();
+ return Jid.ofDomain(jid.getDomain());
}
public String getPassword() {
@@ -419,20 +422,11 @@ public class Account extends AbstractEntity {
}
public String getResource() {
- return jid.getResourcepart();
+ return jid.getResource();
}
- public boolean setResource(final String resource) {
- final String oldResource = jid.getResourcepart();
- if (oldResource == null || !oldResource.equals(resource)) {
- try {
- jid = Jid.fromParts(jid.getLocalpart(), jid.getDomainpart(), resource);
- return true;
- } catch (final InvalidJidException ignored) {
- return true;
- }
- }
- return false;
+ public void setResource(final String resource) {
+ this.jid = this.jid.withResource(resource);
}
public Jid getJid() {
@@ -481,8 +475,8 @@ public class Account extends AbstractEntity {
public ContentValues getContentValues() {
final ContentValues values = new ContentValues();
values.put(UUID, uuid);
- values.put(USERNAME, jid.getLocalpart());
- values.put(SERVER, jid.getDomainpart());
+ values.put(USERNAME, jid.getLocal());
+ values.put(SERVER, jid.getDomain());
values.put(PASSWORD, password);
values.put(OPTIONS, options);
synchronized (this.keys) {
@@ -495,7 +489,7 @@ public class Account extends AbstractEntity {
values.put(PORT, port);
values.put(STATUS, presenceStatus.toShowString());
values.put(STATUS_MESSAGE, presenceStatusMessage);
- values.put(RESOURCE, jid.getResourcepart());
+ values.put(RESOURCE, jid.getResource());
return values;
}
@@ -625,7 +619,7 @@ public class Account extends AbstractEntity {
public Bookmark getBookmark(final Jid jid) {
for (final Bookmark bookmark : this.bookmarks) {
- if (bookmark.getJid() != null && jid.toBareJid().equals(bookmark.getJid().toBareJid())) {
+ if (bookmark.getJid() != null && jid.asBareJid().equals(bookmark.getJid().asBareJid())) {
return bookmark;
}
}
@@ -659,7 +653,7 @@ public class Account extends AbstractEntity {
public String getShareableUri() {
List<XmppUri.Fingerprint> fingerprints = this.getFingerprints();
- String uri = "xmpp:" + this.getJid().toBareJid().toString();
+ String uri = "xmpp:" + this.getJid().asBareJid().toString();
if (fingerprints.size() > 0) {
return XmppUri.getFingerprintUri(uri,fingerprints,';');
} else {
@@ -668,7 +662,7 @@ public class Account extends AbstractEntity {
}
public String getShareableLink() {
List<XmppUri.Fingerprint> fingerprints = this.getFingerprints();
- String uri = Config.inviteUserURL+this.getJid().toBareJid().toString();
+ String uri = Config.inviteUserURL+this.getJid().asBareJid().toString();
if (fingerprints.size() > 0) {
return XmppUri.getFingerprintUri(uri,fingerprints,'&');
} else {
@@ -696,11 +690,11 @@ public class Account extends AbstractEntity {
public boolean isBlocked(final ListItem contact) {
final Jid jid = contact.getJid();
- return jid != null && (blocklist.contains(jid.toBareJid()) || blocklist.contains(jid.toDomainJid()));
+ return jid != null && (blocklist.contains(jid.asBareJid()) || blocklist.contains(Jid.ofDomain(jid.getDomain())));
}
public boolean isBlocked(final Jid jid) {
- return jid != null && blocklist.contains(jid.toBareJid());
+ return jid != null && blocklist.contains(jid.asBareJid());
}
public Collection<Jid> getBlocklist() {