aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Straub <andy@strb.org>2015-07-07 19:32:52 +0200
committerAndreas Straub <andy@strb.org>2015-07-19 21:32:27 +0200
commit968410ae33f7ed341868847f3fedbd03ebd54f2b (patch)
treec0c2850fe2dfee91469e6ada8eca595b55d72774
parent7a962e51801cdf3e0ababc8f740a5d73afce0857 (diff)
Fix devicelist update handling
No longer store own device ID (so that we don't encrypt messages for ourselves), verify that own device ID is present in update list (otherwise republish), reflect update in UI.
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java5
-rw-r--r--src/main/java/eu/siacs/conversations/parser/MessageParser.java1
2 files changed, 6 insertions, 0 deletions
diff --git a/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java b/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java
index faa0e5add..2b0954c6d 100644
--- a/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java
+++ b/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java
@@ -640,10 +640,15 @@ public class AxolotlService {
}
public void registerDevices(final Jid jid, @NonNull final Set<Integer> deviceIds) {
+ if(deviceIds.contains(getOwnDeviceId())) {
+ Log.d(Config.LOGTAG, "Skipping own Device ID:"+ jid + ":"+getOwnDeviceId());
+ deviceIds.remove(getOwnDeviceId());
+ }
for(Integer i:deviceIds) {
Log.d(Config.LOGTAG, "Adding Device ID:"+ jid + ":"+i);
}
this.deviceIds.put(jid, deviceIds);
+ publishOwnDeviceIdIfNeeded();
}
public void publishOwnDeviceIdIfNeeded() {
diff --git a/src/main/java/eu/siacs/conversations/parser/MessageParser.java b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
index cc878e7fb..0dc8d5215 100644
--- a/src/main/java/eu/siacs/conversations/parser/MessageParser.java
+++ b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
@@ -194,6 +194,7 @@ public class MessageParser extends AbstractParser implements
Set<Integer> deviceIds = mXmppConnectionService.getIqParser().deviceIds(item);
AxolotlService axolotlService = account.getAxolotlService();
axolotlService.registerDevices(from, deviceIds);
+ mXmppConnectionService.updateAccountUi();
}
}