Package org.jivesoftware.smack.packet

Examples of org.jivesoftware.smack.packet.Presence


            throw new IllegalStateException("Must be logged into the room to change nickname.");
        }
        // We change the nickname by sending a presence packet where the "to"
        // field is in the form "roomName@service/nickname"
        // We don't have to signal the MUC support again
        Presence joinPresence = new Presence(Presence.Type.available);
        joinPresence.setTo(room + "/" + nickname);
        // Invoke presence interceptors so that extra information can be dynamically added
        for (PacketInterceptor packetInterceptor : presenceInterceptors) {
            packetInterceptor.interceptPacket(joinPresence);
        }

        // Wait for a presence packet back from the server.
        PacketFilter responseFilter =
            new AndFilter(
                new FromMatchesFilter(room + "/" + nickname),
                new PacketTypeFilter(Presence.class));
        PacketCollector response = connection.createPacketCollector(responseFilter);
        // Send join packet.
        connection.sendPacket(joinPresence);
        // Wait up to a certain number of seconds for a reply.
        Presence presence =
            (Presence) response.nextResult(SmackConfiguration.getPacketReplyTimeout());
        // Stop queuing results
        response.cancel();

        if (presence == null) {
            throw new XMPPException("No response from server.");
        }
        else if (presence.getError() != null) {
            throw new XMPPException(presence.getError());
        }
        this.nickname = nickname;
    }
View Full Code Here


            throw new IllegalStateException(
                "Must be logged into the room to change the " + "availability status.");
        }
        // We change the availability status by sending a presence packet to the room with the
        // new presence status and mode
        Presence joinPresence = new Presence(Presence.Type.available);
        joinPresence.setStatus(status);
        joinPresence.setMode(mode);
        joinPresence.setTo(room + "/" + nickname);
        // Invoke presence interceptors so that extra information can be dynamically added
        for (PacketInterceptor packetInterceptor : presenceInterceptors) {
            packetInterceptor.interceptPacket(joinPresence);
        }
View Full Code Here

     * @param user the room occupant to search for his presence. The format of user must
     * be: roomName@service/nickname (e.g. darkcave@macbeth.shakespeare.lit/thirdwitch).
     * @return the Occupant or <tt>null</tt> if the user is unavailable (i.e. not in the room).
     */
    public Occupant getOccupant(String user) {
        Presence presence = occupantsMap.get(user);
        if (presence != null) {
            return new Occupant(presence);
        }
        return null;
    }
View Full Code Here

        };

        // Create a listener for all presence updates.
        PacketListener presenceListener = new PacketListener() {
            public void processPacket(Packet packet) {
                Presence presence = (Presence) packet;
                String from = presence.getFrom();
                String myRoomJID = room + "/" + nickname;
                boolean isUserStatusModification = presence.getFrom().equals(myRoomJID);
                if (presence.getType() == Presence.Type.available) {
                    Presence oldPresence = occupantsMap.put(from, presence);
                    if (oldPresence != null) {
                        // Get the previous occupant's affiliation & role
                        MUCUser mucExtension = getMUCUserExtension(oldPresence);
                        String oldAffiliation = mucExtension.getItem().getAffiliation();
                        String oldRole = mucExtension.getItem().getRole();
View Full Code Here

        if (active == newValue || connection == null) {
            return;
        }
        active = newValue;

        Presence presence = new Presence(Presence.Type.available);
        if (active) {
            presence.setMode(Presence.Mode.available);
            presence.setStatus(Messages.LocalPresenceTracker_eclipse_active);
        } else {
            presence.setMode(Presence.Mode.away);
            presence.setStatus(Messages.LocalPresenceTracker_eclipse_background);
        }
        connection.sendPacket(presence);
    }
View Full Code Here

            : RosterUtils.getDisplayableName(rosterEntry));

        /*
         * Append presence information if available. Otherwise append presence.
         */
        final Presence presence = roster.getPresence(this.jid.getBase());
        if (rosterEntry != null
            && rosterEntry.getStatus() == RosterPacket.ItemStatus.SUBSCRIPTION_PENDING) {
            styledString.append(" (" + subscription_pending + ")", //$NON-NLS-1$ //$NON-NLS-2$
                StyledString.COUNTER_STYLER);
        } else if (presence != null && presence.getType() != Type.available
            && presence.getType() != Type.unavailable) {
            styledString.append(" (" + presence.getType() + ")", //$NON-NLS-1$ //$NON-NLS-2$
                StyledString.COUNTER_STYLER);
        }

        /*
         * Append DataTransfer state information if debug mode is enabled.
         */
        if (presence != null && presence.isAvailable()) {
            final NetTransferMode transferMode = dataTransferManager
                .getTransferMode(jid);

            if (transferMode != NetTransferMode.NONE) {
                styledString.append(
View Full Code Here

    @Override
    public Image getImage() {
        if (this.roster == null)
            return null;

        final Presence presence = this.roster.getPresence(jid.getBase());
        boolean sarosSupported = isSarosSupported();

        if (presence.isAvailable()) {
            if (presence.isAway()) {
                return sarosSupported ? ImageManager.ICON_BUDDY_SAROS_AWAY
                    : ImageManager.ICON_BUDDY_AWAY;
            } else {
                return sarosSupported ? ImageManager.ICON_BUDDY_SAROS
                    : ImageManager.ICON_BUDDY;
View Full Code Here

            return ImageManager.ICON_BUDDY_OFFLINE;
        }
    }

    public boolean isOnline() {
        Presence presence = this.roster.getPresence(this.jid.getBase());
        return presence.isAvailable() || presence.isAway();
    }
View Full Code Here

        assertEquals(0, roster.getGroupCount());

        Collection<RosterGroup> groups = roster.getGroups();
        assertEquals(0, groups.size());

        Presence presence = roster.getPresence("test");
        assertEquals(Presence.Type.unavailable, presence.getType());

        Presence presenceResource = roster.getPresenceResource("test");
        assertEquals(Presence.Type.unavailable, presenceResource.getType());

        Iterator<Presence> iterator = roster.getPresences("test");
        assertTrue(iterator.hasNext());
        assertEquals(Presence.Type.unavailable, iterator.next().getType());
        assertFalse(iterator.hasNext());
View Full Code Here

            MultiUserChat muc2 = new MultiUserChat(getConnection(1), room);
            muc2.join("testbot2");
            Thread.sleep(400);

            // User1 checks the presence of user2 in the room
            Presence presence = muc.getOccupantPresence(room + "/testbot2");
            assertNotNull("Presence of user2 in room is missing", presence);
            assertTrue(
                "Presence mode of user2 is wrong",
                presence.getMode() == null || presence.getMode() == Presence.Mode.available);

            // User2 changes his availability to AWAY
            muc2.changeAvailabilityStatus("Gone to have lunch", Presence.Mode.away);
            Thread.sleep(200);
            // User1 checks the presence of user2 in the room
            presence = muc.getOccupantPresence(room + "/testbot2");
            assertNotNull("Presence of user2 in room is missing", presence);
            assertEquals("Presence mode of user2 is wrong", Presence.Mode.away, presence.getMode());
            assertEquals(
                "Presence status of user2 is wrong",
                "Gone to have lunch",
                presence.getStatus());

            // User2 changes his nickname
            muc2.changeNickname("testbotII");
            Thread.sleep(200);
            // User1 checks the presence of user2 in the room
            presence = muc.getOccupantPresence(room + "/testbot2");
            assertNull("Presence of participant testbot2 still exists", presence);
            presence = muc.getOccupantPresence(room + "/testbotII");
            assertNotNull("Presence of participant testbotII does not exist", presence);
            assertEquals(
                "Presence of participant testbotII has a wrong from",
                room + "/testbotII",
                presence.getFrom());

            // User2 leaves the room
            muc2.leave();
            Thread.sleep(250);
            // User1 checks the presence of user2 in the room
View Full Code Here

TOP

Related Classes of org.jivesoftware.smack.packet.Presence

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.