package com.ihateflyingbugs.kidsm.menu;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import com.ihateflyingbugs.kidsm.ImageMaker;
import com.ihateflyingbugs.kidsm.R;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Parcel;
import android.os.Parcelable;
public class Profile implements Parcelable {
public String member_srl;
public String member_name;
public String member_type;
public String member_org_srl;
public String member_point;
public String member_email;
public String member_picture_uri;
public String member_device_type;
public String member_device_uuid;
public String parent_srl;
public String org_name;
public String org_manager_member_srl;
public String org_manager_name;
public ArrayList<Children> childrenList;
public Map<String, Children> childrens;
public ArrayList<OrgClass> classList;
public Map<String, OrgClass> classes;
public Bitmap member_picture;
public int selected_index;
// Parcelling part
public Profile(Parcel in){
String[] data = new String[13];
in.readStringArray(data);
this.member_srl = data[0];
this.member_name = data[1];
this.member_type = data[2];
this.member_org_srl = data[3];
this.member_point = data[4];
this.member_email = data[5];
this.member_picture_uri = data[6];
this.member_device_type = data[7];
this.member_device_uuid = data[8];
this.parent_srl = data[9];
this.org_name = data[10];
this.org_manager_member_srl = data[11];
this.org_manager_name = data[12];
switch(member_type.charAt(0)) {
case 'P':
childrenList = new ArrayList<Children>();
in.readTypedList(childrenList, Children.CREATOR);
childrens = new HashMap<String, Children>();
for(int i = 0; i < childrenList.size(); i++)
childrens.put(childrenList.get(i).student_member_srl, childrenList.get(i));
break;
case 'T':
case 'M':
classList = new ArrayList<OrgClass>();
in.readTypedList(classList, OrgClass.CREATOR);
classes = new HashMap<String, OrgClass>();
for(int i = 0; i < classList.size(); i++)
classes.put(classList.get(i).getClass_srl(), classList.get(i));
break;
}
this.selected_index = in.readInt();
}
public static final Parcelable.Creator<Profile> CREATOR = new Parcelable.Creator<Profile>() {
public Profile createFromParcel(Parcel in) {
return new Profile(in);
}
public Profile[] newArray(int size) {
return new Profile[size];
}
};
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeStringArray(new String[] {member_srl,
member_name, member_type, member_org_srl, member_point, member_email, member_picture_uri, member_device_type, member_device_uuid
, parent_srl, org_name, org_manager_member_srl, org_manager_name});
switch(member_type.charAt(0)) {
case 'P':
dest.writeTypedList(childrenList);
break;
case 'T':
case 'M':
dest.writeTypedList(classList);
break;
}
dest.writeInt(selected_index);
}
public Profile( String member_srl, String member_name, String member_type, String member_org_srl, String member_point,
String member_email, String member_picture_uri, String member_device_type, String member_device_uuid, String parent_srl) {
this.member_srl = member_srl;
this.setMember_name(member_name);
this.member_type = member_type;
this.member_org_srl = member_org_srl;
this.member_point = member_point;
this.member_email = member_email;
this.member_picture_uri = member_picture_uri;
this.member_device_type = member_device_type;
this.member_device_uuid = member_device_uuid;
this.parent_srl = parent_srl;
childrens = new HashMap<String, Children>();
childrenList = new ArrayList<Children>();
classes = new HashMap<String, OrgClass>();
classList = new ArrayList<OrgClass>();
}
public Children getCurrentChildren() {
return childrenList.get(selected_index);
}
public OrgClass getCurrentClass() {
return classList.get(selected_index);
}
public Children getChildren(String student_member_srl) {
return childrens.get(student_member_srl);
}
public Children getChildren(int index) {
return childrenList.get(index);
}
public void addChildren(String student_member_srl, Children child) {
childrens.put(student_member_srl, child);
childrenList.add(child);
}
public void addChildrenByRequest(String student_member_srl, Children child) {
childrens.put(student_member_srl, child);
childrenList.add(childrenList.size()-1, child);
}
public OrgClass getClass(String class_srl) {
return classes.get(class_srl);
}
public void addClass(String class_srl, OrgClass orgClass) {
classes.put(class_srl, orgClass);
classList.add(orgClass);
}
public void addClassByRequest(String class_srl, OrgClass orgClass) {
classes.put(class_srl, orgClass);
classList.add(classList.size()-1, orgClass);
}
public String getMember_name() {
return member_name;
}
public void setMember_name(String member_name) {
this.member_name = member_name;
}
public String getParent_srl() {
return parent_srl;
}
public void setParent_srl(String parent_srl) {
this.parent_srl = parent_srl;
}
}