103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
-
+
-
|
_contacts = [[OFMutableDictionary alloc] init];
rosterItems = roster.rosterItems;
for (OFString *bareJID in rosterItems) {
XMPPContact *contact = [[[XMPPContact alloc] init] autorelease];
contact.rosterItem = [rosterItems objectForKey: bareJID];
[_contacts setObject: contact
[_contacts setObject: contact forKey: bareJID];
forKey: bareJID];
[_delegates broadcastSelector: @selector(contactManager:
didAddContact:)
withObject: self
withObject: contact];
}
}
|
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
-
+
-
|
[_contacts removeObjectForKey: bareJID];
return;
}
if (contact == nil) {
contact = [[[XMPPContact alloc] init] autorelease];
contact.rosterItem = rosterItem;
[_contacts setObject: contact
[_contacts setObject: contact forKey: bareJID];
forKey: bareJID];
[_delegates broadcastSelector: @selector(contactManager:
didAddContact:)
withObject: self
withObject: contact];
} else {
[_delegates broadcastSelector: @selector(contact:
willUpdateWithRosterItem:)
|
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
|
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
-
+
-
|
contact = [_contacts objectForKey: JID.bareJID];
if (contact == nil)
return;
/* Available presence */
if ([type isEqual: @"available"]) {
[contact xmpp_setPresence: presence
[contact xmpp_setPresence: presence resource: JID.resource];
resource: JID.resource];
[_delegates broadcastSelector: @selector(contact:
didSendPresence:)
withObject: contact
withObject: presence];
return;
}
|