1package eu.siacs.conversations.xmpp.manager;
2
3import android.content.Context;
4import com.google.common.util.concurrent.Futures;
5import com.google.common.util.concurrent.ListenableFuture;
6import com.google.common.util.concurrent.MoreExecutors;
7import eu.siacs.conversations.xml.Namespace;
8import eu.siacs.conversations.xmpp.XmppConnection;
9import im.conversations.android.xmpp.model.offline.Offline;
10import im.conversations.android.xmpp.model.offline.Purge;
11import im.conversations.android.xmpp.model.stanza.Iq;
12
13public class OfflineMessagesManager extends AbstractManager {
14
15 public OfflineMessagesManager(Context context, XmppConnection connection) {
16 super(context, connection);
17 }
18
19 public ListenableFuture<Void> purge() {
20 final var iq = new Iq(Iq.Type.SET);
21 iq.addExtension(new Offline()).addExtension(new Purge());
22 final var future = connection.sendIqPacket(iq);
23 return Futures.transform(future, result -> null, MoreExecutors.directExecutor());
24 }
25
26 public boolean hasFeature() {
27 return getManager(DiscoManager.class)
28 .hasServerFeature(Namespace.FLEXIBLE_OFFLINE_MESSAGE_RETRIEVAL);
29 }
30}