/** * Returns a List of Presence objects for all of a user's current presences if no presence information is available, * such as when you are not subscribed to the user's presence updates. * * @param bareJid an XMPP ID, e.g. jdoe@example.com. * @return a List of Presence objects for all the user's current presences, or an unavailable presence if no * presence information is available. */ public List<Presence> getAllPresences(BareJid bareJid) { Map<Resourcepart, Presence> userPresences = getPresencesInternal(bareJid); List<Presence> res; if (userPresences == null) { // Create an unavailable presence if none was found Presence unavailable = new Presence(Presence.Type.unavailable); unavailable.setFrom(bareJid); res = new ArrayList<>(Arrays.asList(unavailable)); } else { res = new ArrayList<>(userPresences.values().size()); for (Presence presence : userPresences.values()) { res.add(presence.clone()); } } return res; }
continue; packetUnavailable.setFrom(JidCreate.fullFrom(bareUserJid, resource)); try { presencePacketListener.processStanza(packetUnavailable);
/** * Returns the presence info for a particular user's resource, or unavailable presence * if the user is offline or if no presence information is available, such as * when you are not subscribed to the user's presence updates. * * @param userWithResource a fully qualified XMPP ID including a resource (user@domain/resource). * @return the user's current presence, or unavailable presence if the user is offline * or if no presence information is available. */ public Presence getPresenceResource(FullJid userWithResource) { BareJid key = userWithResource.asBareJid(); Resourcepart resource = userWithResource.getResourcepart(); Map<Resourcepart, Presence> userPresences = getPresencesInternal(key); if (userPresences == null) { Presence presence = new Presence(Presence.Type.unavailable); presence.setFrom(userWithResource); return presence; } else { Presence presence = userPresences.get(resource); if (presence == null) { presence = new Presence(Presence.Type.unavailable); presence.setFrom(userWithResource); return presence; } else { return presence.clone(); } } }
presence.setFrom(ParserUtils.getJidAttribute(parser, "from")); presence.setStanzaId(parser.getAttributeValue("", "id"));
try { roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual); String userName = responders.getUsers().get(i).getUsername(); roster.createEntry("userB@domain", userName, null); Presence pres = new Presence(Presence.Type.subscribe); pres.setFrom("userA@domain"); connection.sendStanza(pres); } catch (Exception e) { android.util.Log.e("tag", "unable to add contact: ", e); }
try { roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual); String userName = responders.getUsers().get(i).getUsername(); roster.createEntry("userB@domain", userName, null); Presence pres = new Presence(Presence.Type.subscribe); pres.setFrom("userA@domain"); connection.sendStanza(pres); } catch (Exception e) { android.util.Log.e("tag", "unable to add contact: ", e); }
private void addEntry(String userName) { try { Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual); String jid=userName+Constants.ADVANTLPC__SMACK; commanInstance.roster.createEntry(jid, jid , null); Presence pres = new Presence(Presence.Type.subscribe); pres.setFrom(jid); commanInstance.connection.sendPacket(pres); commanInstance.loadFriendList(); } catch (Exception e) { Log.e("tag", "unable to add contact: ", e); } }
/** * Changes the presence of available contacts offline by simulating an unavailable * presence sent from the server. After a disconnection, every Presence is set * to offline. */ private void setOfflinePresences() { Presence packetUnavailable; for (String user : presenceMap.keySet()) { Map<String, Presence> resources = presenceMap.get(user); if (resources != null) { for (String resource : resources.keySet()) { packetUnavailable = new Presence(Presence.Type.unavailable); packetUnavailable.setFrom(user + "/" + resource); presencePacketListener.processPacket(packetUnavailable); } } } }
/** * Changes the presence of available contacts offline by simulating an unavailable * presence sent from the server. After a disconnection, every Presence is set * to offline. */ private void setOfflinePresences() { Presence packetUnavailable; for (String user : presenceMap.keySet()) { Map<String, Presence> resources = presenceMap.get(user); if (resources != null) { for (String resource : resources.keySet()) { packetUnavailable = new Presence(Presence.Type.unavailable); packetUnavailable.setFrom(user + "/" + resource); presencePacketListener.processPacket(packetUnavailable); } } } }
/** * Changes the presence of available contacts offline by simulating an unavailable * presence sent from the server. After a disconnection, every Presence is set * to offline. */ private void setOfflinePresences() { Presence packetUnavailable; for (String user : presenceMap.keySet()) { Map<String, Presence> resources = presenceMap.get(user); if (resources != null) { for (String resource : resources.keySet()) { packetUnavailable = new Presence(Presence.Type.unavailable); packetUnavailable.setFrom(user + "/" + resource); presencePacketListener.processPacket(packetUnavailable); } } } }
/** * Returns a List of Presence objects for all of a user's current presences if no presence information is available, * such as when you are not subscribed to the user's presence updates. * * @param bareJid an XMPP ID, e.g. jdoe@example.com. * @return a List of Presence objects for all the user's current presences, or an unavailable presence if no * presence information is available. */ public List<Presence> getAllPresences(BareJid bareJid) { Map<Resourcepart, Presence> userPresences = getPresencesInternal(bareJid); List<Presence> res; if (userPresences == null) { // Create an unavailable presence if none was found Presence unavailable = new Presence(Presence.Type.unavailable); unavailable.setFrom(bareJid); res = new ArrayList<>(Arrays.asList(unavailable)); } else { res = new ArrayList<>(userPresences.values().size()); for (Presence presence : userPresences.values()) { res.add(presence.clone()); } } return res; }
Presence presence = (Presence) packet; Presence presence_request = new Presence(Presence.Type.subscribed); presence_request.setTo(presence.getFrom()); presence_request.setType(Presence.Type.subscribed); presence_request.setFrom("current_logged_in_user"); connection.sendPacket(presence_request); roster.createEntry(presence.getFrom(), null, null);
/** * This method logs you out from this gateway by sending an unavailable presence * to directly to this gateway. */ public void logout(){ Presence presence = new Presence(Presence.Type.unavailable); presence.setTo(entityJID); presence.setFrom(connection.getUser()); connection.sendPacket(presence); }
/** * This method lets you send the presence direct to the gateway. Type, To and From * are modified. * @param presence the presence used to login to gateway */ public void login(Presence presence){ presence.setType(Presence.Type.available); presence.setTo(entityJID); presence.setFrom(connection.getUser()); connection.sendPacket(presence); }
/** * Returns the presence info for a particular user's resource, or unavailable presence * if the user is offline or if no presence information is available, such as * when you are not subscribed to the user's presence updates. * * @param userWithResource a fully qualified XMPP ID including a resource (user@domain/resource). * @return the user's current presence, or unavailable presence if the user is offline * or if no presence information is available. */ public Presence getPresenceResource(FullJid userWithResource) { BareJid key = userWithResource.asBareJid(); Resourcepart resource = userWithResource.getResourcepart(); Map<Resourcepart, Presence> userPresences = getPresencesInternal(key); if (userPresences == null) { Presence presence = new Presence(Presence.Type.unavailable); presence.setFrom(userWithResource); return presence; } else { Presence presence = userPresences.get(resource); if (presence == null) { presence = new Presence(Presence.Type.unavailable); presence.setFrom(userWithResource); return presence; } else { return presence.clone(); } } }
Presence np, packet = new Presence(); packet.setID(sessionManager.nextStreamID().toString()); packet.setFrom(server.createJID(operator, null)); if(!available) packet.setType(Presence.Type.unavailable); else packet.setType(null); // add the custom XML Element xml = DocumentHelper.createElement(QName.get("custom", "http://www.custom.com/xmpp")); xml.addAttribute("type", "presenceupdate"); packet.addExtension(new PacketExtension(xml));
public void processPacket(Packet packet) { if(packet instanceof Presence){ Presence presence = (Presence)packet; if(entityJID.equals(presence.getFrom()) && roster.contains(presence.getFrom()) && presence.getType().equals(Presence.Type.subscribe)){ Presence response = new Presence(Presence.Type.subscribed); response.setTo(presence.getFrom()); response.setFrom(StringUtils.parseBareAddress(connection.getUser())); connection.sendPacket(response); } } } }