package com.mechinn.android.ouralliance.adapter; import android.content.Context; import android.util.SparseIntArray; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.SpinnerAdapter; import android.widget.TextView; import com.mechinn.android.ouralliance.R; import com.mechinn.android.ouralliance.data.EventTeam; import com.mechinn.android.ouralliance.data.TeamScouting; import java.util.List; public class MatchTeamSelectAdapter extends BaseAdapter implements SpinnerAdapter { public static final String TAG = "MatchTeamSelectAdapter"; private Context context; private List<EventTeam> teams; private LayoutInflater inflater; private int team; private SparseIntArray disabled; public MatchTeamSelectAdapter(Context context, List<EventTeam> teams, int team) { this.context = context; inflater = LayoutInflater.from(getContext()); swapList(teams); this.team = team; disabled = new SparseIntArray(5); } public void disablePosition(int team, int position) { if(this.team!=team) { disabled.put(team, position); } } public int getTeam() { return team; } @Override public boolean areAllItemsEnabled() { return false; } @Override public boolean isEnabled(int position) { for(int i=0;i<disabled.size();++i) { if(position==disabled.valueAt(i)) { return false; } } return true; } @Override public View getView(int position, View view, ViewGroup viewGroup) { if(!isEmpty() && isEnabled(position)) { view = (TextView) getInflater().inflate(android.R.layout.simple_spinner_dropdown_item, viewGroup, false); ((TextView)view).setText(getItem(position).getTeam().toString()); return view; } else { return getInflater().inflate(R.layout.null_item, null); } } public LayoutInflater getInflater() { return inflater; } public List<EventTeam> getTeams() { return teams; } public void setTeams(List<EventTeam> teams) { this.teams = teams; } public Context getContext() { return context; } public void setContext(Context context) { this.context = context; } public void swapList(List<EventTeam> teams) { this.teams = teams; this.notifyDataSetChanged(); } public boolean isEmpty() { if(null!=teams) { return teams.size()<1; } else { return true; } } @Override public int getCount() { if(isEmpty()) { return 0; } return teams.size(); } @Override public EventTeam getItem(int position) { if(isEmpty()) { return null; } return teams.get(position); } @Override public long getItemId(int position) { return position; } }