package org.yuttadhammo.buddydroid.interfaces; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import org.yuttadhammo.buddydroid.R; import android.app.Activity; import android.content.Context; import android.database.DataSetObserver; import android.graphics.drawable.Drawable; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ExpandableListAdapter; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener; public class FiltersExpandableListAdapter implements ExpandableListAdapter { private ArrayList<Integer> filters; private Activity activity; private ArrayList<Integer> activities; public FiltersExpandableListAdapter(Activity _activity, ArrayList<Integer> _filters, ArrayList<Integer> _activities) { super(); activity = _activity; filters = _filters; activities = _activities; } @Override public boolean areAllItemsEnabled() { // TODO Auto-generated method stub return false; } @Override public Object getChild(int groupPosition, int childPosition) { int id = filters.get(groupPosition); String text = ""; switch(id) { case R.string.activity: text = activity.getString(BPStrings.getFilterDisplayString(activities.get(childPosition))); break; case R.string.friends: text = activity.getString(BPStrings.getFilterDisplayString(BPStrings.FRIENDS_ARRAY[childPosition])); break; case R.string.groups: text = activity.getString(BPStrings.getFilterDisplayString(BPStrings.GROUPS_ARRAY[childPosition])); break; case R.string.messages: text = activity.getString(BPStrings.getFilterDisplayString(BPStrings.MESSAGES_ARRAY[childPosition])); break; } return text; } @Override public long getChildId(int groupPosition, int childPosition) { // TODO Auto-generated method stub return childPosition; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { LayoutInflater inflater = activity.getLayoutInflater(); TextView tv = (TextView) inflater.inflate(R.layout.filter_child_item, null); tv.setText(getChild(groupPosition, childPosition).toString()); return tv; } @Override public int getChildrenCount(int groupPosition) { // TODO Auto-generated method stub int id = filters.get(groupPosition); int count = 0; switch(id) { case R.string.activity: count = activities.size(); break; case R.string.friends: count = BPStrings.FRIENDS_ARRAY.length; break; case R.string.groups: count = BPStrings.GROUPS_ARRAY.length; break; case R.string.messages: count = BPStrings.MESSAGES_ARRAY.length; break; } return count; } @Override public long getCombinedChildId(long groupId, long childId) { // TODO Auto-generated method stub return childId; } @Override public long getCombinedGroupId(long groupId) { // TODO Auto-generated method stub return groupId; } @Override public Object getGroup(int groupPosition) { // TODO Auto-generated method stub return activity.getString(filters.get(groupPosition)); } @Override public int getGroupCount() { // TODO Auto-generated method stub return filters.size(); } @Override public long getGroupId(int groupPosition) { // TODO Auto-generated method stub return groupPosition; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { LayoutInflater inflater = activity.getLayoutInflater(); TextView tv = (TextView) inflater.inflate(R.layout.filter_item, null); tv.setText(getGroup(groupPosition).toString()); Drawable left = null; switch(filters.get(groupPosition)) { case R.string.activity: left = activity.getResources().getDrawable(R.drawable.icon_rss); break; case R.string.friends: left = activity.getResources().getDrawable(R.drawable.icon_friends); break; case R.string.groups: left = activity.getResources().getDrawable(R.drawable.icon_groups); break; case R.string.messages: left = activity.getResources().getDrawable(R.drawable.icon_email); break; } left.setBounds(-12,2,12,26); tv.setCompoundDrawables(left, null,null,null); return tv; } @Override public boolean hasStableIds() { // TODO Auto-generated method stub return true; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { // TODO Auto-generated method stub return true; } @Override public boolean isEmpty() { // TODO Auto-generated method stub return false; } @Override public void onGroupCollapsed(int groupPosition) { // TODO Auto-generated method stub } @Override public void onGroupExpanded(int groupPosition) { // TODO Auto-generated method stub } @Override public void registerDataSetObserver(DataSetObserver observer) { // TODO Auto-generated method stub } @Override public void unregisterDataSetObserver(DataSetObserver observer) { // TODO Auto-generated method stub } }