package mobi.acpm.inspeckage.ui;
import android.content.Context;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.HashMap;
import java.util.List;
import mobi.acpm.inspeckage.R;
/**
* Created by acpm on 17/11/15.
*/
public class ExpandableListAdapter extends BaseExpandableListAdapter {
private Context mContext;
private List<String> mListDataHeader;
private HashMap<String, List<ExpandableListItem>> mListDataChild;
public ExpandableListAdapter(Context context, List<String> listDataHeader,
HashMap<String, List<ExpandableListItem>> listChildData) {
this.mContext = context;
this.mListDataHeader = listDataHeader;
this.mListDataChild = listChildData;
}
@Override
public Object getChild(int groupPosition, int childPosititon) {
return this.mListDataChild.get(this.mListDataHeader.get(groupPosition))
.get(childPosititon);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public View getChildView(int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
final ExpandableListItem childText = (ExpandableListItem) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this.mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_item, null);
}
ImageView iconImage = (ImageView)convertView.findViewById(R.id.imageViewIcon);
iconImage.setImageDrawable(childText.getIcon());
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(90, 90);
iconImage.setLayoutParams(layoutParams);
TextView txtListChild = (TextView) convertView.findViewById(R.id.txtListItem);
txtListChild.setText(childText.getAppName());
TextView txtListPkg = (TextView) convertView.findViewById(R.id.txtListPkg);
txtListPkg.setText(childText.getPckName());
/**
if(childText.isSelected()) {
txtListChild.setTextColor(0xFF00BFA5);
txtListPkg.setTextColor(0xFF00BFA5);
}else{
txtListChild.setTextColor(Color.BLACK);
txtListPkg.setTextColor(Color.BLACK);
txtListChild.setBackgroundColor(Color.WHITE);
txtListPkg.setBackgroundColor(Color.WHITE);
}**/
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
return this.mListDataChild.get(this.mListDataHeader.get(groupPosition))
.size();
}
@Override
public Object getGroup(int groupPosition) {
return this.mListDataHeader.get(groupPosition);
}
@Override
public int getGroupCount() {
return this.mListDataHeader.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
String headerTitle = (String) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this.mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_group, null);
}
TextView lblListHeader = (TextView) convertView
.findViewById(R.id.lblListHeader);
lblListHeader.setTypeface(null, Typeface.BOLD);
lblListHeader.setText(headerTitle);
return convertView;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}