Search in sources :

Example 1 with VCardUpdate

use of com.xabber.xmpp.vcardupdate.VCardUpdate in project xabber-android by redsolution.

the class AvatarManager method onStanza.

@Override
public void onStanza(ConnectionItem connection, Stanza stanza) {
    if (!(stanza instanceof Presence)) {
        return;
    }
    AccountJid account = ((AccountItem) connection).getAccount();
    Presence presence = (Presence) stanza;
    if (presence.getType() == Presence.Type.error) {
        return;
    }
    for (ExtensionElement packetExtension : presence.getExtensions()) {
        if (packetExtension instanceof VCardUpdate) {
            VCardUpdate vCardUpdate = (VCardUpdate) packetExtension;
            if (vCardUpdate.isValid() && vCardUpdate.isPhotoReady()) {
                try {
                    onPhotoReady(account, UserJid.from(stanza.getFrom()), vCardUpdate);
                } catch (UserJid.UserJidCreateException e) {
                    LogManager.exception(this, e);
                }
            }
        }
    }
}
Also used : AccountItem(com.xabber.android.data.account.AccountItem) AccountJid(com.xabber.android.data.entity.AccountJid) ExtensionElement(org.jivesoftware.smack.packet.ExtensionElement) Presence(org.jivesoftware.smack.packet.Presence) UserJid(com.xabber.android.data.entity.UserJid) VCardUpdate(com.xabber.xmpp.vcardupdate.VCardUpdate)

Example 2 with VCardUpdate

use of com.xabber.xmpp.vcardupdate.VCardUpdate in project xabber-android by redsolution.

the class PresenceManager method sendVCardUpdatePresence.

public void sendVCardUpdatePresence(AccountJid account, String hash) throws NetworkException {
    LogManager.i(this, "sendVCardUpdatePresence: " + account);
    AccountItem accountItem = AccountManager.getInstance().getAccount(account);
    if (accountItem == null) {
        return;
    }
    final Presence presence = accountItem.getPresence();
    final VCardUpdate vCardUpdate = new VCardUpdate();
    vCardUpdate.setPhotoHash(hash);
    presence.addExtension(vCardUpdate);
    StanzaSender.sendStanza(account, presence);
}
Also used : AccountItem(com.xabber.android.data.account.AccountItem) Presence(org.jivesoftware.smack.packet.Presence) VCardUpdate(com.xabber.xmpp.vcardupdate.VCardUpdate)

Aggregations

AccountItem (com.xabber.android.data.account.AccountItem)2 VCardUpdate (com.xabber.xmpp.vcardupdate.VCardUpdate)2 Presence (org.jivesoftware.smack.packet.Presence)2 AccountJid (com.xabber.android.data.entity.AccountJid)1 UserJid (com.xabber.android.data.entity.UserJid)1 ExtensionElement (org.jivesoftware.smack.packet.ExtensionElement)1