@Override public void processStanza(Stanza packet) { Presence presence = (Presence) packet; Presence.Mode mode = presence.getMode(); if (mode == null) return; switch (mode) { case available: case chat: // We assume that only a switch to available and chat indicates user activity // since other mode changes could be also a result of some sort of automatism resetIdleTime(); break; default: break; } } }, StanzaTypeFilter.PRESENCE);
Presence availability = roster.getPresence(user); Mode userMode = availability.getMode(); retrieveState_mode(availability.getMode(),availability.isAvailable()); public static int retrieveState_mode(Mode userMode, boolean isOnline) { int userState = 0; /** 0 for offline, 1 for online, 2 for away,3 for busy*/ if(userMode == Mode.dnd) { userState = 3; } else if (userMode == Mode.away || userMode == Mode.xa) { userState = 2; } else if (isOnline) { userState = 1; } return userState; }
mode1); presenceModeInConstructor.setStanzaId(null); assertEquals(mode1, presenceModeInConstructor.getMode()); assertXMLEqual(control, presenceModeInConstructor.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); assertEquals(mode2, presenceModeSet.getMode()); assertXMLEqual(control, presenceModeSet.toXML(StreamOpen.CLIENT_NAMESPACE).toString());
@Test public void validatePresenceOptionalElements() throws Exception { // CHECKSTYLE:OFF String stanza = "<presence xml:lang='en' type='unsubscribed'>" + "<show>dnd</show>" + "<status>Wooing Juliet</status>" + "<priority>1</priority>" + "</presence>"; Presence presence = PacketParserUtils.parsePresence(PacketParserUtils.getParserFor(stanza)); assertXMLEqual(stanza, presence.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); assertEquals(Presence.Type.unsubscribed, presence.getType()); assertEquals("dnd", presence.getMode().name()); assertEquals("en", presence.getLanguage()); assertEquals("Wooing Juliet", presence.getStatus()); assertEquals(1, presence.getPriority()); // CHECKSTYLE:ON }
public void processPacket(Packet packet) { Presence presence = (Presence) packet; Presence.Mode mode = presence.getMode(); if (mode == null) return; switch (mode) { case available: case chat: // We assume that only a switch to available and chat indicates user activity // since other mode changes could be also a result of some sort of automatism resetIdleTime(); } } }, new PacketTypeFilter(Presence.class));
Presence availability = roster.getPresence(user); Mode userMode = availability.getMode(); retrieveState_mode(availability.getMode(),availability.isAvailable()); public static int retrieveState_mode(Mode userMode, boolean isOnline) { int userState = 0; /** 0 for offline, 1 for online, 2 for away,3 for busy*/ if(userMode == Mode.dnd) { userState = 3; } else if (userMode == Mode.away || userMode == Mode.xa) { userState = 2; } else if (isOnline) { userState = 1; } return userState; }
@Override public void stopFlashing(Window window) { presence = Workspace.getInstance().getStatusBar().getPresence(); if (presence.getMode() == Presence.Mode.available) { trayIcon.setImage(availableIcon.getImage()); } else if (presence.getMode() == Presence.Mode.away || presence.getMode() == Presence.Mode.xa) { trayIcon.setImage(awayIcon.getImage()); } else if (presence.getMode() == Presence.Mode.dnd) { trayIcon.setImage(dndIcon.getImage()); } else { trayIcon.setImage(availableIcon.getImage()); } newMessage = false; chatMessageHandler.clearUnreadMessages(); }
@Override public void flashWindowStopWhenFocused(Window window) { presence = Workspace.getInstance().getStatusBar().getPresence(); if (presence.getMode() == Presence.Mode.available) { trayIcon.setImage(availableIcon.getImage()); } else if (presence.getMode() == Presence.Mode.away || presence.getMode() == Presence.Mode.xa) { trayIcon.setImage(awayIcon.getImage()); } else if (presence.getMode() == Presence.Mode.dnd) { trayIcon.setImage(dndIcon.getImage()); } else { trayIcon.setImage(availableIcon.getImage()); } newMessage = false; chatMessageHandler.clearUnreadMessages(); }
public void changeAvailability(final Presence presence) { // SPARK-1524: if we were reconnected because of the error // then we get presence with the mode == null. if (presence.getMode() == null) return; if ((presence.getMode() == currentPresence.getMode()) && (presence.getType() == currentPresence.getType()) && (presence.getStatus().equals(currentPresence.getStatus()))) { ExtensionElement pe = presence.getExtension("x", "vcard-temp:x:update"); if (pe != null) { // Update VCard loadVCard(); } return; } currentPresence = presence; SwingUtilities.invokeLater(changePresenceRunnable); }
@Override public void stateChanged(Chat chat, ChatState state, Message message) { presence = Workspace.getInstance().getStatusBar().getPresence(); if (ChatState.composing.equals(state)) { changeSysTrayIcon(); } else { if (!newMessage) { if (presence.getMode() == Presence.Mode.available) { trayIcon.setImage(availableIcon.getImage()); } else if (presence.getMode() == Presence.Mode.away || presence.getMode() == Presence.Mode.xa) { trayIcon.setImage(awayIcon.getImage()); } else if (presence.getMode() == Presence.Mode.dnd) { trayIcon.setImage(dndIcon.getImage()); } else { trayIcon.setImage(newMessageIcon.getImage()); } } } }
public static boolean isOnPhone(Presence presence) { Presence.Mode presenceMode = presence.getMode(); if (presenceMode == null) { presenceMode = Presence.Mode.available; } if (presence.getStatus() != null && presence.getStatus().contains(Res.getString("status.on.phone")) && presenceMode.equals(Presence.Mode.away)) { return true; } return false; }
public static boolean isInvisible(Presence presence) { return presence != null && presence.getType() == Presence.Type.unavailable && (Res.getString("status.invisible").equalsIgnoreCase(presence.getStatus()) || isNullOrEmpty(presence.getStatus())) && Presence.Mode.available == presence.getMode(); }
public static Presence copyPresence(Presence presence) { return new Presence(presence.getType(), presence.getStatus(), presence.getPriority(), presence.getMode()); }
SASLAuthentication.supportSASLMechanism("PLAIN"); ConnectionConfiguration config = new ConnectionConfiguration( "talk.google.com", 5222, "gmail.com"); XMPPConnection conn = new XMPPConnection(config); conn.connect(); conn.login("yourid@gmail.com", "password"); Roster roster = conn.getRoster(); Collection<RosterEntry> set = roster.getEntries(); for (RosterEntry re: set) { System.out.println(">> " + re.getUser()); Presence pres = roster.getPresence(re.getUser()); //This is the status. System.out.println("\t> " + pres.getMode()); }
/** * Returns the current ChatMode of this friend (e.g. away, busy, available). * * @see ChatMode * @return ChatMode of this friend */ public ChatMode getChatMode() { final Presence.Mode mode = con.getRoster().getPresence(getUserId()) .getMode(); for (final ChatMode c : ChatMode.values()) { if (c.mode == mode) { return c; } } return null; }
public static Presence copy(Presence presence) { if (presence == null) return null; Presence copy = new Presence(presence.getType()); copy.setMode(presence.getMode()); copy.setStatus(presence.getStatus()); copy.setPriority(presence.getPriority()); return copy; } }
/** * Send my presence for user * * @param jid * JID to send presence */ public void sendRealPresenceTo(Jid jid) throws SmackException.NotConnectedException { Presence presence = SparkManager.getWorkspace().getStatusBar().getPresence(); Presence pack = new Presence(presence.getType(), presence.getStatus(), 1, presence.getMode()); pack.setTo(jid); try { SparkManager.getConnection().sendStanza(pack); } catch (InterruptedException e) { throw new IllegalStateException(e); } }