AxolotlManager.java

 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}