mirror of
https://github.com/vanitasvitae/Smack.git
synced 2024-11-23 04:22:05 +01:00
Announce support for vcard-temp/XEP-54
Add VCardManager to setup the vcard-temp feature. Fixes SMACK-414.
This commit is contained in:
parent
b9f07046d3
commit
7341421ca9
3 changed files with 51 additions and 1 deletions
|
@ -0,0 +1,48 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Copyright 2014 Florian Schmaus
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.jivesoftware.smackx.vcardtemp;
|
||||||
|
|
||||||
|
import org.jivesoftware.smack.ConnectionCreationListener;
|
||||||
|
import org.jivesoftware.smack.XMPPConnection;
|
||||||
|
import org.jivesoftware.smack.XMPPException;
|
||||||
|
import org.jivesoftware.smackx.disco.ServiceDiscoveryManager;
|
||||||
|
|
||||||
|
public class VCardManager {
|
||||||
|
public static final String NAMESPACE = "vcard-temp";
|
||||||
|
public static final String ELEMENT = "vCard";
|
||||||
|
|
||||||
|
static {
|
||||||
|
XMPPConnection.addConnectionCreationListener(new ConnectionCreationListener() {
|
||||||
|
@Override
|
||||||
|
public void connectionCreated(XMPPConnection connection) {
|
||||||
|
ServiceDiscoveryManager.getInstanceFor(connection).addFeature(NAMESPACE);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if the given entity understands the vCard-XML format and allows the exchange of such.
|
||||||
|
*
|
||||||
|
* @param jid
|
||||||
|
* @param connection
|
||||||
|
* @return true if the given entity understands the vCard-XML format and exchange.
|
||||||
|
* @throws XMPPException If there was an exception while determining the support.
|
||||||
|
*/
|
||||||
|
public static boolean isSupported(String jid, XMPPConnection connection) throws XMPPException {
|
||||||
|
return ServiceDiscoveryManager.getInstanceFor(connection).supportsFeature(jid, NAMESPACE);
|
||||||
|
}
|
||||||
|
}
|
|
@ -37,6 +37,7 @@ import org.jivesoftware.smack.XMPPConnection;
|
||||||
import org.jivesoftware.smack.XMPPException;
|
import org.jivesoftware.smack.XMPPException;
|
||||||
import org.jivesoftware.smack.packet.IQ;
|
import org.jivesoftware.smack.packet.IQ;
|
||||||
import org.jivesoftware.smack.util.StringUtils;
|
import org.jivesoftware.smack.util.StringUtils;
|
||||||
|
import org.jivesoftware.smackx.vcardtemp.VCardManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A VCard class for use with the
|
* A VCard class for use with the
|
||||||
|
@ -692,7 +693,7 @@ public class VCard extends IQ {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void write() {
|
public void write() {
|
||||||
appendTag("vCard", "xmlns", "vcard-temp", hasContent(), new ContentBuilder() {
|
appendTag(VCardManager.ELEMENT, "xmlns", VCardManager.NAMESPACE, hasContent(), new ContentBuilder() {
|
||||||
public void addTagContent() {
|
public void addTagContent() {
|
||||||
buildActualContent();
|
buildActualContent();
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,5 +11,6 @@
|
||||||
<className>org.jivesoftware.smackx.ping.PingManager</className>
|
<className>org.jivesoftware.smackx.ping.PingManager</className>
|
||||||
<className>org.jivesoftware.smackx.privacy.PrivacyListManager</className>
|
<className>org.jivesoftware.smackx.privacy.PrivacyListManager</className>
|
||||||
<className>org.jivesoftware.smackx.time.EntityTimeManager</className>
|
<className>org.jivesoftware.smackx.time.EntityTimeManager</className>
|
||||||
|
<className>org.jivesoftware.smackx.vcardtemp.VCardManager</className>
|
||||||
</startupClasses>
|
</startupClasses>
|
||||||
</smack>
|
</smack>
|
Loading…
Reference in a new issue