diff --git a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalFileBasedOmemoStore.java b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalFileBasedOmemoStore.java index f952dbe44..c7ff2ffe3 100644 --- a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalFileBasedOmemoStore.java +++ b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalFileBasedOmemoStore.java @@ -46,10 +46,6 @@ public class SignalFileBasedOmemoStore SignalProtocolAddress, ECPublicKey, PreKeyBundle, SessionCipher> { - public SignalFileBasedOmemoStore() { - super(); - } - public SignalFileBasedOmemoStore(File base) { super(base); } diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/FileBasedOmemoStore.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/FileBasedOmemoStore.java index 430701d77..9adb6f5ba 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/FileBasedOmemoStore.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/FileBasedOmemoStore.java @@ -52,10 +52,6 @@ public abstract class FileBasedOmemoStore omemoMessageListeners = new HashSet<>(); private final HashSet omemoMucMessageListeners = new HashSet<>(); - private TrustCallback trustCallback; + private OmemoTrustCallback trustCallback; private BareJid ownJid; private Integer deviceId; @@ -206,7 +206,7 @@ public final class OmemoManager extends Manager { * * @param callback trustCallback. */ - public void setTrustCallback(TrustCallback callback) { + public void setTrustCallback(OmemoTrustCallback callback) { if (trustCallback != null) { throw new IllegalStateException("TrustCallback can only be set once."); } @@ -217,7 +217,7 @@ public final class OmemoManager extends Manager { * Return the TrustCallback of this manager. * @return */ - TrustCallback getTrustCallback() { + OmemoTrustCallback getTrustCallback() { return trustCallback; } @@ -266,12 +266,19 @@ public final class OmemoManager extends Manager { }); } - public List getDevicesOf(BareJid recipient) { - OmemoCachedDeviceList list = getOmemoService().getOmemoStoreBackend().loadCachedDeviceList(getOwnDevice(), recipient); + /** + * Return a list of all OMEMO capable devices of a contact. + * Note, that this method does not explicitly refresh the device list of the contact, so it might be outdated. + * @see #requestDeviceListUpdateFor(BareJid) + * @param contact contact we want to get a list of device of. + * @return list of known devices of that contact. + */ + public List getDevicesOf(BareJid contact) { + OmemoCachedDeviceList list = getOmemoService().getOmemoStoreBackend().loadCachedDeviceList(getOwnDevice(), contact); ArrayList devices = new ArrayList<>(); for (int deviceId : list.getActiveDevices()) { - devices.add(new OmemoDevice(recipient, deviceId)); + devices.add(new OmemoDevice(contact, deviceId)); } return devices; @@ -353,7 +360,7 @@ public final class OmemoManager extends Manager { SmackException.NotLoggedInException { synchronized (LOCK) { - if (!multiUserChatSupportsOmemo(muc.getRoom())) { + if (!multiUserChatSupportsOmemo(muc)) { throw new NoOmemoSupportException(); } @@ -492,18 +499,19 @@ public final class OmemoManager extends Manager { * Returns true, if the MUC with the EntityBareJid multiUserChat is non-anonymous and members only (prerequisite * for OMEMO encryption in MUC). * - * @param multiUserChat EntityBareJid of the MUC + * @param multiUserChat MUC * @return true if chat supports OMEMO * @throws XMPPException.XMPPErrorException if * @throws SmackException.NotConnectedException something * @throws InterruptedException goes * @throws SmackException.NoResponseException wrong */ - public boolean multiUserChatSupportsOmemo(EntityBareJid multiUserChat) + public boolean multiUserChatSupportsOmemo(MultiUserChat multiUserChat) throws XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException { - RoomInfo roomInfo = MultiUserChatManager.getInstanceFor(connection()).getRoomInfo(multiUserChat); + EntityBareJid jid = multiUserChat.getRoom(); + RoomInfo roomInfo = MultiUserChatManager.getInstanceFor(connection()).getRoomInfo(jid); return roomInfo.isNonanonymous() && roomInfo.isMembersOnly(); } 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 a8c647b09..753436101 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 @@ -68,7 +68,7 @@ import org.jivesoftware.smackx.omemo.internal.OmemoDevice; import org.jivesoftware.smackx.omemo.internal.listener.OmemoCarbonCopyStanzaReceivedListener; import org.jivesoftware.smackx.omemo.internal.listener.OmemoMessageStanzaReceivedListener; import org.jivesoftware.smackx.omemo.trust.OmemoFingerprint; -import org.jivesoftware.smackx.omemo.trust.TrustCallback; +import org.jivesoftware.smackx.omemo.trust.OmemoTrustCallback; import org.jivesoftware.smackx.omemo.trust.TrustState; import org.jivesoftware.smackx.omemo.util.OmemoConstants; import org.jivesoftware.smackx.omemo.util.OmemoMessageBuilder; @@ -857,7 +857,7 @@ public abstract class OmemoService getUndecidedDevices(OmemoDevice userDevice, TrustCallback callback, List devices) { + private ArrayList getUndecidedDevices(OmemoDevice userDevice, OmemoTrustCallback callback, List devices) { ArrayList undecidedDevices = new ArrayList<>(); for (OmemoDevice device : devices) { @@ -880,7 +880,7 @@ public abstract class OmemoService getUntrustedDeviced(OmemoDevice userDevice, TrustCallback trustCallback, List devices) { + private ArrayList getUntrustedDeviced(OmemoDevice userDevice, OmemoTrustCallback trustCallback, List devices) { ArrayList untrustedDevices = new ArrayList<>(); for (OmemoDevice device : devices) { @@ -1060,7 +1060,7 @@ public abstract class OmemoService ratchet; - private final TrustCallback trustCallback; + private final OmemoTrustCallback trustCallback; private byte[] messageKey; private final byte[] initializationVector; @@ -100,7 +100,7 @@ public class OmemoMessageBuilder ratchet, byte[] aesKey, byte[] iv, @@ -134,7 +134,7 @@ public class OmemoMessageBuilder ratchet, String message) throws NoSuchPaddingException, BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, diff --git a/smack-omemo/src/test/java/org/jivesoftware/smackx/omemo/OmemoConfigurationTest.java b/smack-omemo/src/test/java/org/jivesoftware/smackx/omemo/OmemoConfigurationTest.java index f6bb78323..15bb7a236 100644 --- a/smack-omemo/src/test/java/org/jivesoftware/smackx/omemo/OmemoConfigurationTest.java +++ b/smack-omemo/src/test/java/org/jivesoftware/smackx/omemo/OmemoConfigurationTest.java @@ -18,11 +18,8 @@ package org.jivesoftware.smackx.omemo; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import java.io.File; - import junit.framework.TestCase; import org.junit.Test; @@ -34,13 +31,6 @@ public class OmemoConfigurationTest { @Test public void omemoConfigurationTest() { @SuppressWarnings("unused") OmemoConfiguration configuration = new OmemoConfiguration(); - // Default Store Path - File storePath = new File("test"); - assertNull("getFileBasedOmemoStoreDefaultPath MUST return null at this point.", - OmemoConfiguration.getFileBasedOmemoStoreDefaultPath()); - OmemoConfiguration.setFileBasedOmemoStoreDefaultPath(storePath); - assertEquals("FileBasedOmemoStoreDefaultPath must equal the one we set.", storePath.getAbsolutePath(), - OmemoConfiguration.getFileBasedOmemoStoreDefaultPath().getAbsolutePath()); // Body hint OmemoConfiguration.setAddOmemoHintBody(false); diff --git a/smack-omemo/src/test/java/org/jivesoftware/smackx/omemo/util/EphemeralTrustCallback.java b/smack-omemo/src/test/java/org/jivesoftware/smackx/omemo/util/EphemeralTrustCallback.java index 79b2c894f..9b3f393ea 100644 --- a/smack-omemo/src/test/java/org/jivesoftware/smackx/omemo/util/EphemeralTrustCallback.java +++ b/smack-omemo/src/test/java/org/jivesoftware/smackx/omemo/util/EphemeralTrustCallback.java @@ -20,13 +20,13 @@ import java.util.HashMap; import org.jivesoftware.smackx.omemo.internal.OmemoDevice; import org.jivesoftware.smackx.omemo.trust.OmemoFingerprint; -import org.jivesoftware.smackx.omemo.trust.TrustCallback; +import org.jivesoftware.smackx.omemo.trust.OmemoTrustCallback; import org.jivesoftware.smackx.omemo.trust.TrustState; /** * Ephemera Trust Callback used to make trust decisions in tests. */ -public class EphemeralTrustCallback implements TrustCallback { +public class EphemeralTrustCallback implements OmemoTrustCallback { private final HashMap> trustStates = new HashMap<>();