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