Search in sources :

Example 11 with MUCUser

use of org.jivesoftware.smackx.muc.packet.MUCUser in project xabber-android by redsolution.

the class RoomChat method createOccupant.

/**
     * Warning: this method should be placed with packet provider.
     *
     * @return New occupant based on presence information.
     */
private Occupant createOccupant(String resource, Presence presence) {
    Occupant occupant = new Occupant(resource);
    String jid = null;
    Affiliation affiliation = Affiliation.none;
    Role role = Role.none;
    StatusMode statusMode = StatusMode.unavailable;
    String statusText = null;
    MUCUser mucUser = MUC.getMUCUserExtension(presence);
    if (mucUser != null) {
        MUCItem item = mucUser.getItem();
        if (item != null) {
            jid = item.getJid();
            try {
                affiliation = Affiliation.fromString(item.getAffiliation().toString());
            } catch (NoSuchElementException e) {
            }
            try {
                role = Role.fromString(item.getRole().toString());
            } catch (NoSuchElementException e) {
            }
            statusMode = StatusMode.createStatusMode(presence);
            statusText = presence.getStatus();
        }
    }
    if (statusText == null) {
        statusText = "";
    }
    occupant.setJid(jid);
    occupant.setAffiliation(affiliation);
    occupant.setRole(role);
    occupant.setStatusMode(statusMode);
    occupant.setStatusText(statusText);
    return occupant;
}
Also used : Role(com.xabber.xmpp.muc.Role) MUCItem(org.jivesoftware.smackx.muc.packet.MUCItem) StatusMode(com.xabber.android.data.account.StatusMode) MUCUser(org.jivesoftware.smackx.muc.packet.MUCUser) NoSuchElementException(java.util.NoSuchElementException) Affiliation(com.xabber.xmpp.muc.Affiliation)

Aggregations

MUCUser (org.jivesoftware.smackx.muc.packet.MUCUser)11 Message (org.jivesoftware.smack.packet.Message)8 Presence (org.jivesoftware.smack.packet.Presence)4 AccountItem (com.xabber.android.data.account.AccountItem)2 Map (java.util.Map)2 ExtensionElement (org.jivesoftware.smack.packet.ExtensionElement)2 MetaData (org.jivesoftware.smackx.workgroup.MetaData)2 SessionID (org.jivesoftware.smackx.workgroup.packet.SessionID)2 StatusMode (com.xabber.android.data.account.StatusMode)1 OTRUnencryptedException (com.xabber.android.data.extension.otr.OTRUnencryptedException)1 MessageItem (com.xabber.android.data.message.MessageItem)1 MucPrivateChatNotification (com.xabber.android.data.message.chat.MucPrivateChatNotification)1 Affiliation (com.xabber.xmpp.muc.Affiliation)1 Role (com.xabber.xmpp.muc.Role)1 Date (java.util.Date)1 HashMap (java.util.HashMap)1 NoSuchElementException (java.util.NoSuchElementException)1 OtrException (net.java.otr4j.OtrException)1 StandardExtensionElement (org.jivesoftware.smack.packet.StandardExtensionElement)1 MucAlreadyJoinedException (org.jivesoftware.smackx.muc.MultiUserChatException.MucAlreadyJoinedException)1