mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-22 22:32:06 +01:00
Add MamManager.isSupported()
Fixes SMACK-777.
This commit is contained in:
parent
7404bf8fe7
commit
b9ed22c732
2 changed files with 25 additions and 1 deletions
|
@ -50,6 +50,7 @@ import org.jivesoftware.smackx.rsm.packet.RSMSet;
|
||||||
import org.jivesoftware.smackx.xdata.FormField;
|
import org.jivesoftware.smackx.xdata.FormField;
|
||||||
import org.jivesoftware.smackx.xdata.packet.DataForm;
|
import org.jivesoftware.smackx.xdata.packet.DataForm;
|
||||||
|
|
||||||
|
import org.jxmpp.jid.BareJid;
|
||||||
import org.jxmpp.jid.EntityBareJid;
|
import org.jxmpp.jid.EntityBareJid;
|
||||||
import org.jxmpp.jid.EntityFullJid;
|
import org.jxmpp.jid.EntityFullJid;
|
||||||
import org.jxmpp.jid.Jid;
|
import org.jxmpp.jid.Jid;
|
||||||
|
@ -103,9 +104,12 @@ public final class MamManager extends Manager {
|
||||||
|
|
||||||
private final Jid archiveAddress;
|
private final Jid archiveAddress;
|
||||||
|
|
||||||
|
private final ServiceDiscoveryManager serviceDiscoveryManager;
|
||||||
|
|
||||||
private MamManager(XMPPConnection connection, Jid archiveAddress) {
|
private MamManager(XMPPConnection connection, Jid archiveAddress) {
|
||||||
super(connection);
|
super(connection);
|
||||||
this.archiveAddress = archiveAddress;
|
this.archiveAddress = archiveAddress;
|
||||||
|
serviceDiscoveryManager = ServiceDiscoveryManager.getInstanceFor(connection);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -586,6 +590,23 @@ public final class MamManager extends Manager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if MAM is supported for the XMPP connection managed by this MamManager.
|
||||||
|
*
|
||||||
|
* @return true if MAM is supported for the XMPP connection, <code>false</code>otherwhise.
|
||||||
|
*
|
||||||
|
* @throws NoResponseException
|
||||||
|
* @throws XMPPErrorException
|
||||||
|
* @throws NotConnectedException
|
||||||
|
* @throws InterruptedException
|
||||||
|
* @since 4.2.1
|
||||||
|
* @see <a href="https://xmpp.org/extensions/xep-0313.html#support">XEP-0313 § 7. Determining support</a>
|
||||||
|
*/
|
||||||
|
public boolean isSupported() throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
|
||||||
|
BareJid myBareJid = connection().getUser().asBareJid();
|
||||||
|
return serviceDiscoveryManager.supportsFeature(myBareJid, MamElements.NAMESPACE);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if Message Archive Management is supported by the server.
|
* Returns true if Message Archive Management is supported by the server.
|
||||||
*
|
*
|
||||||
|
@ -594,7 +615,10 @@ public final class MamManager extends Manager {
|
||||||
* @throws XMPPErrorException
|
* @throws XMPPErrorException
|
||||||
* @throws NoResponseException
|
* @throws NoResponseException
|
||||||
* @throws InterruptedException
|
* @throws InterruptedException
|
||||||
|
* @depreacted use {@link #isSupported()} instead.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
|
// TODO Remove in Smack 4.3
|
||||||
public boolean isSupportedByServer()
|
public boolean isSupportedByServer()
|
||||||
throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
|
throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
|
||||||
return ServiceDiscoveryManager.getInstanceFor(connection()).serverSupportsFeature(MamElements.NAMESPACE);
|
return ServiceDiscoveryManager.getInstanceFor(connection()).serverSupportsFeature(MamElements.NAMESPACE);
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class MamIntegrationTest extends AbstractSmackIntegrationTest {
|
||||||
|
|
||||||
mamManagerConTwo = MamManager.getInstanceFor(conTwo);
|
mamManagerConTwo = MamManager.getInstanceFor(conTwo);
|
||||||
|
|
||||||
if (!mamManagerConTwo.isSupportedByServer()) {
|
if (!mamManagerConTwo.isSupported()) {
|
||||||
throw new TestNotPossibleException("Message Archive Management (XEP-0313) is not supported by the server.");
|
throw new TestNotPossibleException("Message Archive Management (XEP-0313) is not supported by the server.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue