package xmpp.client.service.user.group;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import org.jivesoftware.smack.RosterGroup;
import xmpp.client.service.user.contact.Contact;
import xmpp.client.service.user.contact.ContactList;
import android.os.Parcel;
import android.os.Parcelable;
public class GroupList extends ArrayList<String> implements Parcelable {
/**
*
*/
private static final long serialVersionUID = 1L;
public static final Parcelable.Creator<GroupList> CREATOR = new Parcelable.Creator<GroupList>() {
@Override
public GroupList createFromParcel(Parcel in) {
return new GroupList(in);
}
@Override
public GroupList[] newArray(int size) {
return new GroupList[size];
}
};
public GroupList() {
super();
}
public GroupList(Collection<RosterGroup> groups) {
this();
for (final RosterGroup rosterGroup2 : groups) {
final RosterGroup rosterGroup = rosterGroup2;
add(rosterGroup.getName());
}
}
private GroupList(Parcel in) {
super();
final int size = in.readInt();
for (int i = 0; i < size; i++) {
add(in.readString());
}
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public boolean equals(Object o) {
if (o instanceof GroupList) {
if (((GroupList) o).size() == size()) {
if (((GroupList) o).containsAll(this)) {
return true;
}
}
}
return false;
}
public void fillFromContactList(ContactList contactList) {
clear();
for (final Contact Contact : contactList) {
for (final String group : Contact.getGroups()) {
if (!contains(group)) {
add(group);
}
}
}
sort();
}
public void sort() {
Collections.sort(this);
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(size());
for (int i = 0; i < size(); i++) {
dest.writeString(get(i));
}
}
}