don't throw assertion error when building session with same device id from other contact

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java | 7 
1 file changed, 6 insertions(+), 1 deletion(-)

Detailed changes

src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java 🔗

@@ -364,6 +364,10 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
 		return axolotlStore.getLocalRegistrationId();
 	}
 
+	public AxolotlAddress getOwnAxolotlAddress() {
+		return new AxolotlAddress(account.getJid().toBareJid().toPreppedString(),getOwnDeviceId());
+	}
+
 	public Set<Integer> getOwnDeviceIds() {
 		return this.deviceIds.get(account.getJid().toBareJid());
 	}
@@ -453,6 +457,7 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
 				} else {
 					Element item = mXmppConnectionService.getIqParser().getItem(packet);
 					Set<Integer> deviceIds = mXmppConnectionService.getIqParser().deviceIds(item);
+					Log.d(Config.LOGTAG,account.getJid().toBareJid()+": retrieved own device list: "+deviceIds);
 					registerDevices(account.getJid().toBareJid(),deviceIds);
 				}
 			}
@@ -822,7 +827,7 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
 
 	private void buildSessionFromPEP(final AxolotlAddress address) {
 		Log.i(Config.LOGTAG, AxolotlService.getLogprefix(account) + "Building new session for " + address.toString());
-		if (address.getDeviceId() == getOwnDeviceId()) {
+		if (address.equals(getOwnAxolotlAddress())) {
 			throw new AssertionError("We should NEVER build a session with ourselves. What happened here?!");
 		}