private void processChannels(ChatChannels chatChannels)
{
List<string> channels = new List<string> ();
foreach (ChatChannel chatChannel in chatChannels.chatChannel) {
channels.Add (chatChannel.name);
subscribers [chatChannel.name] = chatChannel.subscribers.subscriberId;
}
foreach (string name in channels.Except(channelSubscriptions)) {
channelSubscriptions.Add (name);
if (name.StartsWith ("priv_")) {
privateChannelSubscriptions.Add (name);
}
if (channelJoined != null) {
channelJoined (name);
}
}
List<string> channelsToRemove = channelSubscriptions.Except (channels).ToList ();
foreach (string name in channelsToRemove) {
channelSubscriptions.Remove (name);
if (name.StartsWith ("priv_")) {
privateChannelSubscriptions.Remove (name);
}
if (channelLeft != null) {
channelLeft (name);
}
}
}