diff --git a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoRatchet.java b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoRatchet.java index f82f6acc5..d1bfafbcb 100644 --- a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoRatchet.java +++ b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoRatchet.java @@ -68,7 +68,7 @@ public class SignalOmemoRatchet SessionCipher> store) { super(omemoManager, store); - this.storeConnector = new SignalOmemoStoreConnector(omemoManager.getOwnDevice(), store); + this.storeConnector = new SignalOmemoStoreConnector(omemoManager, store); } @Override diff --git a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoService.java b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoService.java index 67ab3769e..78221c5fc 100644 --- a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoService.java +++ b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoService.java @@ -92,12 +92,12 @@ public final class SignalOmemoService } @Override - protected void processBundle(OmemoDevice userDevice, + protected void processBundle(OmemoManager omemoManager, PreKeyBundle contactsBundle, OmemoDevice contactsDevice) throws CorruptedOmemoKeyException { - SignalOmemoStoreConnector connector = new SignalOmemoStoreConnector(userDevice, getOmemoStoreBackend()); + SignalOmemoStoreConnector connector = new SignalOmemoStoreConnector(omemoManager, getOmemoStoreBackend()); SessionBuilder builder = new SessionBuilder(connector, connector, connector, connector, SignalOmemoStoreConnector.asAddress(contactsDevice)); try { diff --git a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoStoreConnector.java b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoStoreConnector.java index 1a7772e08..bfb1a20d9 100644 --- a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoStoreConnector.java +++ b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoStoreConnector.java @@ -26,6 +26,7 @@ import java.util.TreeMap; import java.util.logging.Level; import java.util.logging.Logger; +import org.jivesoftware.smackx.omemo.OmemoManager; import org.jivesoftware.smackx.omemo.OmemoStore; import org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException; import org.jivesoftware.smackx.omemo.internal.OmemoDevice; @@ -61,17 +62,17 @@ public class SignalOmemoStoreConnector private final OmemoStore omemoStore; - private final OmemoDevice userDevice; + private final OmemoManager omemoManager; - public SignalOmemoStoreConnector(OmemoDevice userDevice, OmemoStore store) { - this.userDevice = userDevice; + this.omemoManager = omemoManager; this.omemoStore = store; } OmemoDevice getOurDevice() { - return userDevice; + return omemoManager.getOwnDevice(); } @Override diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java index 1d463a429..bfa62e14e 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java @@ -351,6 +351,8 @@ public abstract class OmemoService undecidedDevices = getUndecidedDevices(userDevice, manager.getTrustCallback(), contactsDevices); if (!undecidedDevices.isEmpty()) { throw new UndecidedOmemoIdentityException(undecidedDevices); @@ -757,7 +759,8 @@ public abstract class OmemoService(bundlesList.values()).get(randomIndex); // build the session - processBundle(userDevice, randomPreKeyBundle, contactsDevice); + OmemoManager omemoManager = OmemoManager.getInstanceFor(connection, userDevice.getDeviceId()); + processBundle(omemoManager, randomPreKeyBundle, contactsDevice); } /** @@ -865,6 +868,7 @@ public abstract class OmemoService