Search in sources :

Example 11 with RosterEntry

use of org.jivesoftware.smack.roster.RosterEntry in project xabber-android by redsolution.

the class RosterManager method removeGroup.

/**
     * Requests to remove group from all contacts in account.
     */
public void removeGroup(String account, String groupName) throws NetworkException {
    final Roster roster = getRoster(account);
    if (roster == null) {
        return;
    }
    final org.jivesoftware.smack.roster.RosterGroup group = roster.getGroup(groupName);
    if (group == null) {
        return;
    }
    Application.getInstance().runInBackground(new Runnable() {

        @Override
        public void run() {
            for (RosterEntry entry : group.getEntries()) {
                try {
                    group.removeEntry(entry);
                } catch (SmackException.NoResponseException e) {
                    Application.getInstance().onError(R.string.CONNECTION_FAILED);
                } catch (SmackException.NotConnectedException e) {
                    Application.getInstance().onError(R.string.NOT_CONNECTED);
                } catch (XMPPException.XMPPErrorException e) {
                    Application.getInstance().onError(R.string.XMPP_EXCEPTION);
                }
            }
        }
    });
}
Also used : Roster(org.jivesoftware.smack.roster.Roster) RosterEntry(org.jivesoftware.smack.roster.RosterEntry)

Example 12 with RosterEntry

use of org.jivesoftware.smack.roster.RosterEntry in project xabber-android by redsolution.

the class RosterManager method getRosterContact.

/**
     * @param account
     * @param user
     * @return <code>null</code> can be returned.
     */
public RosterContact getRosterContact(String account, String user) {
    final Roster roster = getRoster(account);
    if (roster == null) {
        return null;
    }
    final RosterEntry entry = roster.getEntry(user);
    if (entry == null) {
        return null;
    } else {
        return convertRosterEntryToRosterContact(account, roster, entry);
    }
}
Also used : Roster(org.jivesoftware.smack.roster.Roster) RosterEntry(org.jivesoftware.smack.roster.RosterEntry)

Example 13 with RosterEntry

use of org.jivesoftware.smack.roster.RosterEntry in project xabber-android by redsolution.

the class RosterManager method setGroups.

public void setGroups(String account, String bareAddress, Collection<String> groups) throws NetworkException {
    final Roster roster = getRoster(account);
    if (roster == null) {
        return;
    }
    final RosterEntry entry = roster.getEntry(bareAddress);
    if (entry == null) {
        return;
    }
    RosterPacket packet = new RosterPacket();
    packet.setType(IQ.Type.set);
    RosterPacket.Item item = new RosterPacket.Item(bareAddress, entry.getName());
    for (String group : groups) {
        item.addGroupName(group);
    }
    packet.addRosterItem(item);
    ConnectionManager.getInstance().sendStanza(account, packet);
}
Also used : AccountItem(com.xabber.android.data.account.AccountItem) ConnectionItem(com.xabber.android.data.connection.ConnectionItem) Roster(org.jivesoftware.smack.roster.Roster) RosterPacket(org.jivesoftware.smack.roster.packet.RosterPacket) RosterEntry(org.jivesoftware.smack.roster.RosterEntry)

Aggregations

RosterEntry (org.jivesoftware.smack.roster.RosterEntry)13 Roster (org.jivesoftware.smack.roster.Roster)11 SmackException (org.jivesoftware.smack.SmackException)5 XMPPException (org.jivesoftware.smack.XMPPException)3 AccountItem (com.xabber.android.data.account.AccountItem)2 ConnectionItem (com.xabber.android.data.connection.ConnectionItem)2 ArrayList (java.util.ArrayList)2 RosterPacket (org.jivesoftware.smack.roster.packet.RosterPacket)2 AccountJid (com.xabber.android.data.entity.AccountJid)1 UserJid (com.xabber.android.data.entity.UserJid)1 XMPPConnection (org.jivesoftware.smack.XMPPConnection)1 Message (org.jivesoftware.smack.packet.Message)1 RosterExchange (org.jivesoftware.smackx.xroster.packet.RosterExchange)1 BareJid (org.jxmpp.jid.BareJid)1 Jid (org.jxmpp.jid.Jid)1