package com.thebluealliance.androidclient.adapters; import com.thebluealliance.androidclient.interfaces.RenderableModel; import com.thebluealliance.androidclient.listitems.LabelValueListItem; import com.thebluealliance.androidclient.listitems.ListGroup; import com.thebluealliance.androidclient.listitems.ListItem; import com.thebluealliance.androidclient.models.Match; import com.thebluealliance.androidclient.renderers.ModelRendererSupplier; import android.app.Activity; import android.view.View; import android.view.ViewGroup; import java.util.List; public class MatchListAdapter extends ExpandableListViewAdapter { private String mTeamKey; public MatchListAdapter( Activity a, ModelRendererSupplier supplier, List<ListGroup> groups, String selectedTeam) { super(a, supplier, groups); mTeamKey = selectedTeam; } public void setTeamKey(String teamKey) { if (teamKey != null) { mTeamKey = teamKey; } } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if (groupPosition >= mGroups.size() || childPosition >= mGroups.get(groupPosition).children.size()) { // Can't render due to bounds errors return new LabelValueListItem("Match", "Unable to render").getView(mActivity, mInflater, convertView); } RenderableModel child = mGroups.get(groupPosition).children.get(childPosition); if (child instanceof Match) { ((Match) child).setSelectedTeam(mTeamKey); } ListItem renderedChild = child.render(mRendererSupplier); if (renderedChild != null) { return renderedChild.getView(mActivity, mInflater, convertView); } else { return new LabelValueListItem("Match", "Unable to render").getView(mActivity, mInflater, convertView); } } }