write prepped string to db. use display version everywhere else
This commit is contained in:
parent
c3423d6ffe
commit
44ce5df359
|
@ -185,8 +185,8 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fillMap(SQLiteAxolotlStore store) {
|
private void fillMap(SQLiteAxolotlStore store) {
|
||||||
List<Integer> deviceIds = store.getSubDeviceSessions(account.getJid().toBareJid().toString());
|
List<Integer> deviceIds = store.getSubDeviceSessions(account.getJid().toBareJid().toPreppedString());
|
||||||
putDevicesForJid(account.getJid().toBareJid().toString(), deviceIds, store);
|
putDevicesForJid(account.getJid().toBareJid().toPreppedString(), deviceIds, store);
|
||||||
for (Contact contact : account.getRoster().getContacts()) {
|
for (Contact contact : account.getRoster().getContacts()) {
|
||||||
Jid bareJid = contact.getJid().toBareJid();
|
Jid bareJid = contact.getJid().toBareJid();
|
||||||
String address = bareJid.toString();
|
String address = bareJid.toString();
|
||||||
|
@ -220,7 +220,7 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
|
|
||||||
public void clearErrorFor(Jid jid) {
|
public void clearErrorFor(Jid jid) {
|
||||||
synchronized (MAP_LOCK) {
|
synchronized (MAP_LOCK) {
|
||||||
Map<Integer, FetchStatus> devices = this.map.get(jid.toBareJid().toString());
|
Map<Integer, FetchStatus> devices = this.map.get(jid.toBareJid().toPreppedString());
|
||||||
if (devices == null) {
|
if (devices == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -257,28 +257,28 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<IdentityKey> getKeysWithTrust(XmppAxolotlSession.Trust trust) {
|
public Set<IdentityKey> getKeysWithTrust(XmppAxolotlSession.Trust trust) {
|
||||||
return axolotlStore.getContactKeysWithTrust(account.getJid().toBareJid().toString(), trust);
|
return axolotlStore.getContactKeysWithTrust(account.getJid().toBareJid().toPreppedString(), trust);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<IdentityKey> getKeysWithTrust(XmppAxolotlSession.Trust trust, Jid jid) {
|
public Set<IdentityKey> getKeysWithTrust(XmppAxolotlSession.Trust trust, Jid jid) {
|
||||||
return axolotlStore.getContactKeysWithTrust(jid.toBareJid().toString(), trust);
|
return axolotlStore.getContactKeysWithTrust(jid.toBareJid().toPreppedString(), trust);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<IdentityKey> getKeysWithTrust(XmppAxolotlSession.Trust trust, List<Jid> jids) {
|
public Set<IdentityKey> getKeysWithTrust(XmppAxolotlSession.Trust trust, List<Jid> jids) {
|
||||||
Set<IdentityKey> keys = new HashSet<>();
|
Set<IdentityKey> keys = new HashSet<>();
|
||||||
for(Jid jid : jids) {
|
for(Jid jid : jids) {
|
||||||
keys.addAll(axolotlStore.getContactKeysWithTrust(jid.toString(), trust));
|
keys.addAll(axolotlStore.getContactKeysWithTrust(jid.toPreppedString(), trust));
|
||||||
}
|
}
|
||||||
return keys;
|
return keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getNumTrustedKeys(Jid jid) {
|
public long getNumTrustedKeys(Jid jid) {
|
||||||
return axolotlStore.getContactNumTrustedKeys(jid.toBareJid().toString());
|
return axolotlStore.getContactNumTrustedKeys(jid.toBareJid().toPreppedString());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean anyTargetHasNoTrustedKeys(List<Jid> jids) {
|
public boolean anyTargetHasNoTrustedKeys(List<Jid> jids) {
|
||||||
for(Jid jid : jids) {
|
for(Jid jid : jids) {
|
||||||
if (axolotlStore.getContactNumTrustedKeys(jid.toBareJid().toString()) == 0) {
|
if (axolotlStore.getContactNumTrustedKeys(jid.toBareJid().toPreppedString()) == 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -286,7 +286,7 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
}
|
}
|
||||||
|
|
||||||
private AxolotlAddress getAddressForJid(Jid jid) {
|
private AxolotlAddress getAddressForJid(Jid jid) {
|
||||||
return new AxolotlAddress(jid.toString(), 0);
|
return new AxolotlAddress(jid.toPreppedString(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Set<XmppAxolotlSession> findOwnSessions() {
|
private Set<XmppAxolotlSession> findOwnSessions() {
|
||||||
|
@ -359,7 +359,7 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
final XmppAxolotlSession.Trust from,
|
final XmppAxolotlSession.Trust from,
|
||||||
final XmppAxolotlSession.Trust to) {
|
final XmppAxolotlSession.Trust to) {
|
||||||
for (Integer deviceId : deviceIds) {
|
for (Integer deviceId : deviceIds) {
|
||||||
AxolotlAddress address = new AxolotlAddress(jid.toBareJid().toString(), deviceId);
|
AxolotlAddress address = new AxolotlAddress(jid.toBareJid().toPreppedString(), deviceId);
|
||||||
XmppAxolotlSession session = sessions.get(address);
|
XmppAxolotlSession session = sessions.get(address);
|
||||||
if (session != null && session.getFingerprint() != null
|
if (session != null && session.getFingerprint() != null
|
||||||
&& session.getTrust() == from) {
|
&& session.getTrust() == from) {
|
||||||
|
@ -381,13 +381,13 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
publishOwnDeviceId(deviceIds);
|
publishOwnDeviceId(deviceIds);
|
||||||
}
|
}
|
||||||
for (Integer deviceId : deviceIds) {
|
for (Integer deviceId : deviceIds) {
|
||||||
AxolotlAddress ownDeviceAddress = new AxolotlAddress(jid.toBareJid().toString(), deviceId);
|
AxolotlAddress ownDeviceAddress = new AxolotlAddress(jid.toBareJid().toPreppedString(), deviceId);
|
||||||
if (sessions.get(ownDeviceAddress) == null) {
|
if (sessions.get(ownDeviceAddress) == null) {
|
||||||
buildSessionFromPEP(ownDeviceAddress);
|
buildSessionFromPEP(ownDeviceAddress);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Set<Integer> expiredDevices = new HashSet<>(axolotlStore.getSubDeviceSessions(jid.toBareJid().toString()));
|
Set<Integer> expiredDevices = new HashSet<>(axolotlStore.getSubDeviceSessions(jid.toBareJid().toPreppedString()));
|
||||||
expiredDevices.removeAll(deviceIds);
|
expiredDevices.removeAll(deviceIds);
|
||||||
setTrustOnSessions(jid, expiredDevices, XmppAxolotlSession.Trust.TRUSTED,
|
setTrustOnSessions(jid, expiredDevices, XmppAxolotlSession.Trust.TRUSTED,
|
||||||
XmppAxolotlSession.Trust.INACTIVE_TRUSTED);
|
XmppAxolotlSession.Trust.INACTIVE_TRUSTED);
|
||||||
|
@ -759,7 +759,7 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void finishBuildingSessionsFromPEP(final AxolotlAddress address) {
|
private void finishBuildingSessionsFromPEP(final AxolotlAddress address) {
|
||||||
AxolotlAddress ownAddress = new AxolotlAddress(account.getJid().toBareJid().toString(), 0);
|
AxolotlAddress ownAddress = new AxolotlAddress(account.getJid().toBareJid().toPreppedString(), 0);
|
||||||
if (!fetchStatusMap.getAll(ownAddress).containsValue(FetchStatus.PENDING)
|
if (!fetchStatusMap.getAll(ownAddress).containsValue(FetchStatus.PENDING)
|
||||||
&& !fetchStatusMap.getAll(address).containsValue(FetchStatus.PENDING)) {
|
&& !fetchStatusMap.getAll(address).containsValue(FetchStatus.PENDING)) {
|
||||||
FetchStatus report = null;
|
FetchStatus report = null;
|
||||||
|
@ -873,7 +873,7 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
}
|
}
|
||||||
if (deviceIds.get(account.getJid().toBareJid()) != null) {
|
if (deviceIds.get(account.getJid().toBareJid()) != null) {
|
||||||
for (Integer ownId : this.deviceIds.get(account.getJid().toBareJid())) {
|
for (Integer ownId : this.deviceIds.get(account.getJid().toBareJid())) {
|
||||||
AxolotlAddress address = new AxolotlAddress(account.getJid().toBareJid().toString(), ownId);
|
AxolotlAddress address = new AxolotlAddress(account.getJid().toBareJid().toPreppedString(), ownId);
|
||||||
if (sessions.get(address) == null) {
|
if (sessions.get(address) == null) {
|
||||||
IdentityKey identityKey = axolotlStore.loadSession(address).getSessionState().getRemoteIdentityKey();
|
IdentityKey identityKey = axolotlStore.loadSession(address).getSessionState().getRemoteIdentityKey();
|
||||||
if (identityKey != null) {
|
if (identityKey != null) {
|
||||||
|
@ -933,12 +933,12 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasPendingKeyFetches(Account account, List<Jid> jids) {
|
public boolean hasPendingKeyFetches(Account account, List<Jid> jids) {
|
||||||
AxolotlAddress ownAddress = new AxolotlAddress(account.getJid().toBareJid().toString(), 0);
|
AxolotlAddress ownAddress = new AxolotlAddress(account.getJid().toBareJid().toPreppedString(), 0);
|
||||||
if (fetchStatusMap.getAll(ownAddress).containsValue(FetchStatus.PENDING)) {
|
if (fetchStatusMap.getAll(ownAddress).containsValue(FetchStatus.PENDING)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
for(Jid jid : jids) {
|
for(Jid jid : jids) {
|
||||||
AxolotlAddress foreignAddress = new AxolotlAddress(jid.toBareJid().toString(), 0);
|
AxolotlAddress foreignAddress = new AxolotlAddress(jid.toBareJid().toPreppedString(), 0);
|
||||||
if (fetchStatusMap.getAll(foreignAddress).containsValue(FetchStatus.PENDING)) {
|
if (fetchStatusMap.getAll(foreignAddress).containsValue(FetchStatus.PENDING)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -196,7 +196,7 @@ public class Contact implements ListItem, Blockable {
|
||||||
values.put(ACCOUNT, accountUuid);
|
values.put(ACCOUNT, accountUuid);
|
||||||
values.put(SYSTEMNAME, systemName);
|
values.put(SYSTEMNAME, systemName);
|
||||||
values.put(SERVERNAME, serverName);
|
values.put(SERVERNAME, serverName);
|
||||||
values.put(JID, jid.toString());
|
values.put(JID, jid.toPreppedString());
|
||||||
values.put(OPTIONS, subscription);
|
values.put(OPTIONS, subscription);
|
||||||
values.put(SYSTEMACCOUNT, systemAccount);
|
values.put(SYSTEMACCOUNT, systemAccount);
|
||||||
values.put(PHOTOURI, photoUri);
|
values.put(PHOTOURI, photoUri);
|
||||||
|
@ -209,10 +209,6 @@ public class Contact implements ListItem, Blockable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getSubscription() {
|
|
||||||
return this.subscription;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Account getAccount() {
|
public Account getAccount() {
|
||||||
return this.account;
|
return this.account;
|
||||||
}
|
}
|
||||||
|
|
|
@ -506,7 +506,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
|
||||||
values.put(NAME, name);
|
values.put(NAME, name);
|
||||||
values.put(CONTACT, contactUuid);
|
values.put(CONTACT, contactUuid);
|
||||||
values.put(ACCOUNT, accountUuid);
|
values.put(ACCOUNT, accountUuid);
|
||||||
values.put(CONTACTJID, contactJid.toString());
|
values.put(CONTACTJID, contactJid.toPreppedString());
|
||||||
values.put(CREATED, created);
|
values.put(CREATED, created);
|
||||||
values.put(STATUS, status);
|
values.put(STATUS, status);
|
||||||
values.put(MODE, mode);
|
values.put(MODE, mode);
|
||||||
|
|
|
@ -205,12 +205,12 @@ public class Message extends AbstractEntity {
|
||||||
if (counterpart == null) {
|
if (counterpart == null) {
|
||||||
values.putNull(COUNTERPART);
|
values.putNull(COUNTERPART);
|
||||||
} else {
|
} else {
|
||||||
values.put(COUNTERPART, counterpart.toString());
|
values.put(COUNTERPART, counterpart.toPreppedString());
|
||||||
}
|
}
|
||||||
if (trueCounterpart == null) {
|
if (trueCounterpart == null) {
|
||||||
values.putNull(TRUE_COUNTERPART);
|
values.putNull(TRUE_COUNTERPART);
|
||||||
} else {
|
} else {
|
||||||
values.put(TRUE_COUNTERPART, trueCounterpart.toString());
|
values.put(TRUE_COUNTERPART, trueCounterpart.toPreppedString());
|
||||||
}
|
}
|
||||||
values.put(BODY, body);
|
values.put(BODY, body);
|
||||||
values.put(TIME_SENT, timeSent);
|
values.put(TIME_SENT, timeSent);
|
||||||
|
|
|
@ -287,7 +287,7 @@ public class DatabaseBackend extends SQLiteOpenHelper {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
int ownDeviceId = Integer.valueOf(ownDeviceIdString);
|
int ownDeviceId = Integer.valueOf(ownDeviceIdString);
|
||||||
AxolotlAddress ownAddress = new AxolotlAddress(account.getJid().toBareJid().toString(), ownDeviceId);
|
AxolotlAddress ownAddress = new AxolotlAddress(account.getJid().toBareJid().toPreppedString(), ownDeviceId);
|
||||||
deleteSession(db, account, ownAddress);
|
deleteSession(db, account, ownAddress);
|
||||||
IdentityKeyPair identityKeyPair = loadOwnIdentityKeyPair(db, account);
|
IdentityKeyPair identityKeyPair = loadOwnIdentityKeyPair(db, account);
|
||||||
if (identityKeyPair != null) {
|
if (identityKeyPair != null) {
|
||||||
|
@ -345,7 +345,7 @@ public class DatabaseBackend extends SQLiteOpenHelper {
|
||||||
try {
|
try {
|
||||||
newJid = Jid.fromString(
|
newJid = Jid.fromString(
|
||||||
cursor.getString(cursor.getColumnIndex(Conversation.CONTACTJID))
|
cursor.getString(cursor.getColumnIndex(Conversation.CONTACTJID))
|
||||||
).toString();
|
).toPreppedString();
|
||||||
} catch (InvalidJidException ignored) {
|
} catch (InvalidJidException ignored) {
|
||||||
Log.e(Config.LOGTAG, "Failed to migrate Conversation CONTACTJID "
|
Log.e(Config.LOGTAG, "Failed to migrate Conversation CONTACTJID "
|
||||||
+ cursor.getString(cursor.getColumnIndex(Conversation.CONTACTJID))
|
+ cursor.getString(cursor.getColumnIndex(Conversation.CONTACTJID))
|
||||||
|
@ -370,7 +370,7 @@ public class DatabaseBackend extends SQLiteOpenHelper {
|
||||||
try {
|
try {
|
||||||
newJid = Jid.fromString(
|
newJid = Jid.fromString(
|
||||||
cursor.getString(cursor.getColumnIndex(Contact.JID))
|
cursor.getString(cursor.getColumnIndex(Contact.JID))
|
||||||
).toString();
|
).toPreppedString();
|
||||||
} catch (InvalidJidException ignored) {
|
} catch (InvalidJidException ignored) {
|
||||||
Log.e(Config.LOGTAG, "Failed to migrate Contact JID "
|
Log.e(Config.LOGTAG, "Failed to migrate Contact JID "
|
||||||
+ cursor.getString(cursor.getColumnIndex(Contact.JID))
|
+ cursor.getString(cursor.getColumnIndex(Contact.JID))
|
||||||
|
@ -578,8 +578,8 @@ public class DatabaseBackend extends SQLiteOpenHelper {
|
||||||
public Conversation findConversation(final Account account, final Jid contactJid) {
|
public Conversation findConversation(final Account account, final Jid contactJid) {
|
||||||
SQLiteDatabase db = this.getReadableDatabase();
|
SQLiteDatabase db = this.getReadableDatabase();
|
||||||
String[] selectionArgs = {account.getUuid(),
|
String[] selectionArgs = {account.getUuid(),
|
||||||
contactJid.toBareJid().toString() + "/%",
|
contactJid.toBareJid().toPreppedString() + "/%",
|
||||||
contactJid.toBareJid().toString()
|
contactJid.toBareJid().toPreppedString()
|
||||||
};
|
};
|
||||||
Cursor cursor = db.query(Conversation.TABLENAME, null,
|
Cursor cursor = db.query(Conversation.TABLENAME, null,
|
||||||
Conversation.ACCOUNT + "=? AND (" + Conversation.CONTACTJID
|
Conversation.ACCOUNT + "=? AND (" + Conversation.CONTACTJID
|
||||||
|
@ -691,7 +691,7 @@ public class DatabaseBackend extends SQLiteOpenHelper {
|
||||||
db.insert(Contact.TABLENAME, null, contact.getContentValues());
|
db.insert(Contact.TABLENAME, null, contact.getContentValues());
|
||||||
} else {
|
} else {
|
||||||
String where = Contact.ACCOUNT + "=? AND " + Contact.JID + "=?";
|
String where = Contact.ACCOUNT + "=? AND " + Contact.JID + "=?";
|
||||||
String[] whereArgs = {account.getUuid(), contact.getJid().toString()};
|
String[] whereArgs = {account.getUuid(), contact.getJid().toPreppedString()};
|
||||||
db.delete(Contact.TABLENAME, where, whereArgs);
|
db.delete(Contact.TABLENAME, where, whereArgs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1025,7 +1025,7 @@ public class DatabaseBackend extends SQLiteOpenHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
private IdentityKeyPair loadOwnIdentityKeyPair(SQLiteDatabase db, Account account) {
|
private IdentityKeyPair loadOwnIdentityKeyPair(SQLiteDatabase db, Account account) {
|
||||||
String name = account.getJid().toBareJid().toString();
|
String name = account.getJid().toBareJid().toPreppedString();
|
||||||
IdentityKeyPair identityKeyPair = null;
|
IdentityKeyPair identityKeyPair = null;
|
||||||
Cursor cursor = getIdentityKeyCursor(db, account, name, true);
|
Cursor cursor = getIdentityKeyCursor(db, account, name, true);
|
||||||
if (cursor.getCount() != 0) {
|
if (cursor.getCount() != 0) {
|
||||||
|
@ -1181,7 +1181,7 @@ public class DatabaseBackend extends SQLiteOpenHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void storeOwnIdentityKeyPair(Account account, IdentityKeyPair identityKeyPair) {
|
public void storeOwnIdentityKeyPair(Account account, IdentityKeyPair identityKeyPair) {
|
||||||
storeIdentityKey(account, account.getJid().toBareJid().toString(), true, identityKeyPair.getPublicKey().getFingerprint().replaceAll("\\s", ""), Base64.encodeToString(identityKeyPair.serialize(), Base64.DEFAULT), XmppAxolotlSession.Trust.TRUSTED);
|
storeIdentityKey(account, account.getJid().toBareJid().toPreppedString(), true, identityKeyPair.getPublicKey().getFingerprint().replaceAll("\\s", ""), Base64.encodeToString(identityKeyPair.serialize(), Base64.DEFAULT), XmppAxolotlSession.Trust.TRUSTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,10 @@ public final class Jid {
|
||||||
private final String domainpart;
|
private final String domainpart;
|
||||||
private final String resourcepart;
|
private final String resourcepart;
|
||||||
|
|
||||||
|
// It's much more efficient to store the ful JID as well as the parts instead of figuring them
|
||||||
|
// all out every time (since some characters are displayed but aren't used for comparisons).
|
||||||
|
private final String displayjid;
|
||||||
|
|
||||||
public String getLocalpart() {
|
public String getLocalpart() {
|
||||||
return localpart;
|
return localpart;
|
||||||
}
|
}
|
||||||
|
@ -69,6 +73,7 @@ public final class Jid {
|
||||||
|
|
||||||
Jid fromCache = Jid.cache.get(jid);
|
Jid fromCache = Jid.cache.get(jid);
|
||||||
if (fromCache != null) {
|
if (fromCache != null) {
|
||||||
|
displayjid = fromCache.displayjid;
|
||||||
localpart = fromCache.localpart;
|
localpart = fromCache.localpart;
|
||||||
domainpart = fromCache.domainpart;
|
domainpart = fromCache.domainpart;
|
||||||
resourcepart = fromCache.resourcepart;
|
resourcepart = fromCache.resourcepart;
|
||||||
|
@ -89,6 +94,8 @@ public final class Jid {
|
||||||
throw new InvalidJidException(InvalidJidException.INVALID_CHARACTER);
|
throw new InvalidJidException(InvalidJidException.INVALID_CHARACTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String finaljid;
|
||||||
|
|
||||||
final int domainpartStart;
|
final int domainpartStart;
|
||||||
final int atLoc = jid.indexOf("@");
|
final int atLoc = jid.indexOf("@");
|
||||||
final int slashLoc = jid.indexOf("/");
|
final int slashLoc = jid.indexOf("/");
|
||||||
|
@ -96,6 +103,7 @@ public final class Jid {
|
||||||
// or there are one or more "@" signs but they're all in the resourcepart (eg. "example.net/@/rp@"):
|
// or there are one or more "@" signs but they're all in the resourcepart (eg. "example.net/@/rp@"):
|
||||||
if (atCount == 0 || (atCount > 0 && slashLoc != -1 && atLoc > slashLoc)) {
|
if (atCount == 0 || (atCount > 0 && slashLoc != -1 && atLoc > slashLoc)) {
|
||||||
localpart = "";
|
localpart = "";
|
||||||
|
finaljid = "";
|
||||||
domainpartStart = 0;
|
domainpartStart = 0;
|
||||||
} else {
|
} else {
|
||||||
final String lp = jid.substring(0, atLoc);
|
final String lp = jid.substring(0, atLoc);
|
||||||
|
@ -108,6 +116,7 @@ public final class Jid {
|
||||||
throw new InvalidJidException(InvalidJidException.INVALID_PART_LENGTH);
|
throw new InvalidJidException(InvalidJidException.INVALID_PART_LENGTH);
|
||||||
}
|
}
|
||||||
domainpartStart = atLoc + 1;
|
domainpartStart = atLoc + 1;
|
||||||
|
finaljid = lp + "@";
|
||||||
}
|
}
|
||||||
|
|
||||||
final String dp;
|
final String dp;
|
||||||
|
@ -126,6 +135,7 @@ public final class Jid {
|
||||||
} catch (final StringprepException e) {
|
} catch (final StringprepException e) {
|
||||||
throw new InvalidJidException(InvalidJidException.STRINGPREP_FAIL, e);
|
throw new InvalidJidException(InvalidJidException.STRINGPREP_FAIL, e);
|
||||||
}
|
}
|
||||||
|
finaljid = finaljid + dp + "/" + rp;
|
||||||
} else {
|
} else {
|
||||||
resourcepart = "";
|
resourcepart = "";
|
||||||
try{
|
try{
|
||||||
|
@ -133,6 +143,7 @@ public final class Jid {
|
||||||
} catch (final StringprepException e) {
|
} catch (final StringprepException e) {
|
||||||
throw new InvalidJidException(InvalidJidException.STRINGPREP_FAIL, e);
|
throw new InvalidJidException(InvalidJidException.STRINGPREP_FAIL, e);
|
||||||
}
|
}
|
||||||
|
finaljid = finaljid + dp;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove trailing "." before storing the domain part.
|
// Remove trailing "." before storing the domain part.
|
||||||
|
@ -156,6 +167,8 @@ public final class Jid {
|
||||||
}
|
}
|
||||||
|
|
||||||
Jid.cache.put(jid, this);
|
Jid.cache.put(jid, this);
|
||||||
|
|
||||||
|
this.displayjid = finaljid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Jid toBareJid() {
|
public Jid toBareJid() {
|
||||||
|
@ -178,6 +191,10 @@ public final class Jid {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
return displayjid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toPreppedString() {
|
||||||
String out;
|
String out;
|
||||||
if (hasLocalpart()) {
|
if (hasLocalpart()) {
|
||||||
out = localpart + '@' + domainpart;
|
out = localpart + '@' + domainpart;
|
||||||
|
|
Loading…
Reference in New Issue