1package eu.siacs.conversations.xmpp.manager;
2
3import android.content.Context;
4import android.util.Log;
5import eu.siacs.conversations.Config;
6import eu.siacs.conversations.crypto.axolotl.AxolotlService;
7import eu.siacs.conversations.services.XmppConnectionService;
8import eu.siacs.conversations.xmpp.Jid;
9import eu.siacs.conversations.xmpp.XmppConnection;
10import im.conversations.android.xmpp.model.axolotl.DeviceList;
11import im.conversations.android.xmpp.model.pubsub.Items;
12import java.util.HashSet;
13import java.util.Set;
14
15public class AxolotlManager extends AbstractManager {
16
17 public AxolotlManager(final XmppConnectionService context, final XmppConnection connection) {
18 super(context, connection);
19 }
20
21 public void handleItems(final Jid from, final Items items) {
22 final var account = getAccount();
23 final var deviceList = items.getFirstItem(DeviceList.class);
24 if (deviceList == null) {
25 return;
26 }
27 final Set<Integer> deviceIds = deviceList.getDeviceIds();
28 Log.d(
29 Config.LOGTAG,
30 AxolotlService.getLogprefix(account)
31 + "Received PEP device list "
32 + deviceIds
33 + " update from "
34 + from
35 + ", processing... ");
36 final AxolotlService axolotlService = account.getAxolotlService();
37 axolotlService.registerDevices(from, new HashSet<>(deviceIds));
38 }
39}