1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2024-11-27 00:32:07 +01:00

SMACK-305: fixed roster reload

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@11670 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
Günther Niess 2010-03-24 20:31:06 +00:00 committed by niess
parent 446a601b73
commit 31cd0ab088
2 changed files with 6 additions and 4 deletions

View file

@ -784,7 +784,7 @@ public class Roster {
RosterPacket rosterPacket = (RosterPacket) packet; RosterPacket rosterPacket = (RosterPacket) packet;
for (RosterPacket.Item item : rosterPacket.getRosterItems()) { for (RosterPacket.Item item : rosterPacket.getRosterItems()) {
RosterEntry entry = new RosterEntry(item.getUser(), item.getName(), RosterEntry entry = new RosterEntry(item.getUser(), item.getName(),
item.getItemType(), item.getItemStatus(), connection); item.getItemType(), item.getItemStatus(), Roster.this, connection);
// If the packet is of the type REMOVE then remove the entry // If the packet is of the type REMOVE then remove the entry
if (RosterPacket.ItemType.remove.equals(item.getItemType())) { if (RosterPacket.ItemType.remove.equals(item.getItemType())) {

View file

@ -37,7 +37,8 @@ public class RosterEntry {
private String name; private String name;
private RosterPacket.ItemType type; private RosterPacket.ItemType type;
private RosterPacket.ItemStatus status; private RosterPacket.ItemStatus status;
private Connection connection; final private Roster roster;
final private Connection connection;
/** /**
* Creates a new roster entry. * Creates a new roster entry.
@ -49,11 +50,12 @@ public class RosterEntry {
* @param connection a connection to the XMPP server. * @param connection a connection to the XMPP server.
*/ */
RosterEntry(String user, String name, RosterPacket.ItemType type, RosterEntry(String user, String name, RosterPacket.ItemType type,
RosterPacket.ItemStatus status, Connection connection) { RosterPacket.ItemStatus status, Roster roster, Connection connection) {
this.user = user; this.user = user;
this.name = name; this.name = name;
this.type = type; this.type = type;
this.status = status; this.status = status;
this.roster = roster;
this.connection = connection; this.connection = connection;
} }
@ -114,7 +116,7 @@ public class RosterEntry {
List<RosterGroup> results = new ArrayList<RosterGroup>(); List<RosterGroup> results = new ArrayList<RosterGroup>();
// Loop through all roster groups and find the ones that contain this // Loop through all roster groups and find the ones that contain this
// entry. This algorithm should be fine // entry. This algorithm should be fine
for (RosterGroup group: connection.getRoster().getGroups()) { for (RosterGroup group: roster.getGroups()) {
if (group.contains(this)) { if (group.contains(this)) {
results.add(group); results.add(group);
} }