package com.sxit.dreamiya.adapter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.sxit.dreamiya.R;
import com.sxit.dreamiya.activity.chat.ContactActivity;
import com.sxit.dreamiya.common.Instance;
import com.sxit.dreamiya.entity.ContactInfo;
import com.sxit.dreamiya.utils.SOAP_UTILS;
import com.sxit.dreamiya.utils.pinyin.AssortPinyinList;
import com.sxit.dreamiya.utils.pinyin.LanguageComparator_CN;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.CheckBox;
import android.widget.ExpandableListView;
import android.widget.ImageView;
import android.widget.TextView;
public class PinyinAdapter extends BaseExpandableListAdapter {
private List<String> strList;
private AssortPinyinList assort = new AssortPinyinList();
private Context context;
ExpandableListView listview;
private LayoutInflater inflater;
private LanguageComparator_CN cnSort = new LanguageComparator_CN();
public PinyinAdapter(Context context, List<String> strList, ExpandableListView _listview) {
super();
this.context = context;
this.inflater = LayoutInflater.from(context);
this.strList = strList;
this.listview = _listview;
if (strList == null) {
strList = new ArrayList<String>();
}
sort();
}
private void sort() {
for (String str : strList) {
assort.getHashList().add(str);
}
assort.getHashList().sortKeyComparator(cnSort);
for (int i = 0, length = assort.getHashList().size(); i < length; i++) {
Collections.sort((assort.getHashList().getValueListIndex(i)),
cnSort);
}
}
public Object getChild(int group, int child) {
// TODO Auto-generated method stub
return assort.getHashList().getValueIndex(group, child);
}
public long getChildId(int group, int child) {
// TODO Auto-generated method stub
return child;
}
public View getChildView(int group, int child, boolean arg2,
View contentView, ViewGroup arg4) {
// TODO Auto-generated method stub
if (contentView == null) {
contentView = inflater.inflate(R.layout.row_contact_with_checkbox, null);
}
CheckBox checkBox = (CheckBox) contentView.findViewById(R.id.checkbox);
ImageView avatar = (ImageView) contentView.findViewById(R.id.avatar);
TextView nameTextview = (TextView) contentView.findViewById(R.id.name);
TextView typeTextview = (TextView) contentView.findViewById(R.id.type);
String[] user_array = assort.getHashList().getValueIndex(group, child).toString().split("%");
if (ContactActivity.contact_checked_arrayStrings.get(Integer.valueOf(user_array[1])).equals("0")) {
checkBox.setChecked(false);
}else{
checkBox.setChecked(true);
}
nameTextview.setText(user_array[0]);
typeTextview.setText(user_array[4].equals("1")?"家长":"老师");
String pic = user_array[3].startsWith("any")?"":user_array[3];
String headpic = SOAP_UTILS.PIC_FILE + pic;
avatar.setTag(headpic);
Instance.imageLoader.displayImage(headpic, avatar, Instance.user_options);
return contentView;
}
public int getChildrenCount(int group) {
// TODO Auto-generated method stub
return assort.getHashList().getValueListIndex(group).size();
}
public Object getGroup(int group) {
// TODO Auto-generated method stub
return assort.getHashList().getValueListIndex(group);
}
public int getGroupCount() {
// TODO Auto-generated method stub
return assort.getHashList().size();
}
public long getGroupId(int group) {
// TODO Auto-generated method stub
return group;
}
public View getGroupView(int group, boolean arg1, View contentView,
ViewGroup arg3) {
if (contentView == null) {
contentView = inflater.inflate(R.layout.list_group_item, null);
contentView.setClickable(true);
}
TextView textView = (TextView) contentView.findViewById(R.id.name);
textView.setText(assort.getFirstChar(assort.getHashList()
.getValueIndex(group, 0)));
return contentView;
}
public boolean hasStableIds() {
// TODO Auto-generated method stub
return true;
}
public boolean isChildSelectable(int arg0, int arg1) {
// TODO Auto-generated method stub
return true;
}
public AssortPinyinList getAssort() {
return assort;
}
}