1package eu.siacs.conversations.xmpp.manager;
2
3import android.util.Log;
4import eu.siacs.conversations.Config;
5import eu.siacs.conversations.entities.Bookmark;
6import eu.siacs.conversations.services.XmppConnectionService;
7import eu.siacs.conversations.xmpp.Jid;
8import eu.siacs.conversations.xmpp.XmppConnection;
9import im.conversations.android.xmpp.model.bookmark.Storage;
10import im.conversations.android.xmpp.model.pubsub.Items;
11import java.util.Map;
12
13public class LegacyBookmarkManager extends AbstractBookmarkManager {
14
15 public LegacyBookmarkManager(
16 final XmppConnectionService service, final XmppConnection connection) {
17 super(service, connection);
18 }
19
20 public void handleItems(final Items items) {
21 final var account = this.getAccount();
22 final var connection = this.connection;
23 if (connection.getFeatures().bookmarksConversion()) {
24 if (connection.getFeatures().bookmarks2()) {
25 Log.w(
26 Config.LOGTAG,
27 account.getJid().asBareJid()
28 + ": received storage:bookmark notification even though we"
29 + " opted into bookmarks:1");
30 }
31 final var storage = items.getFirstItem(Storage.class);
32 final Map<Jid, Bookmark> bookmarks = Bookmark.parseFromStorage(storage, account);
33 this.processBookmarksInitial(bookmarks, true);
34 Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": processing bookmark PEP event");
35 } else {
36 Log.d(
37 Config.LOGTAG,
38 account.getJid().asBareJid()
39 + ": ignoring bookmark PEP event because bookmark conversion was"
40 + " not detected");
41 }
42 }
43}