mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-02 06:45:59 +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.packet.IQ;
|
||||
import org.jivesoftware.smack.util.StringUtils;
|
||||
import org.jivesoftware.smackx.vcardtemp.VCardManager;
|
||||
|
||||
/**
|
||||
* A VCard class for use with the
|
||||
|
@ -692,7 +693,7 @@ public class VCard extends IQ {
|
|||
}
|
||||
|
||||
public void write() {
|
||||
appendTag("vCard", "xmlns", "vcard-temp", hasContent(), new ContentBuilder() {
|
||||
appendTag(VCardManager.ELEMENT, "xmlns", VCardManager.NAMESPACE, hasContent(), new ContentBuilder() {
|
||||
public void addTagContent() {
|
||||
buildActualContent();
|
||||
}
|
||||
|
|
|
@ -11,5 +11,6 @@
|
|||
<className>org.jivesoftware.smackx.ping.PingManager</className>
|
||||
<className>org.jivesoftware.smackx.privacy.PrivacyListManager</className>
|
||||
<className>org.jivesoftware.smackx.time.EntityTimeManager</className>
|
||||
<className>org.jivesoftware.smackx.vcardtemp.VCardManager</className>
|
||||
</startupClasses>
|
||||
</smack>
|
Loading…
Reference in a new issue