package com.thebluealliance.androidclient.listitems; import com.thebluealliance.androidclient.R; import com.thebluealliance.androidclient.listeners.ModelSettingsClickListener; import com.thebluealliance.androidclient.listeners.TeamClickListener; import com.thebluealliance.androidclient.models.Team; import com.thebluealliance.androidclient.types.ModelType; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import java.util.Locale; public class TeamListElement extends ListElement { public final int mTeamNumber; public final String mTeamName; public final String mTeamLocation; public final boolean mShowLinkToTeamDetails; public final boolean mShowMyTbaDetails; public TeamListElement(Team team) { super(team.getKey()); mTeamNumber = team.getTeamNumber(); mTeamName = team.getNickname(); mTeamLocation = team.getLocationName(); mShowLinkToTeamDetails = false; mShowMyTbaDetails = false; } public TeamListElement( String key, int number, String name, String location, boolean showLinkToTeamDetails, boolean showMyTbaDetails) { super(key); mTeamNumber = number; mTeamName = name; mTeamLocation = location; mShowLinkToTeamDetails = showLinkToTeamDetails; mShowMyTbaDetails = showMyTbaDetails; } @Override public View getView(final Context context, LayoutInflater inflater, View convertView) { ViewHolder holder; if (convertView == null || !(convertView.getTag() instanceof ViewHolder)) { convertView = inflater.inflate(R.layout.list_item_team, null); holder = new ViewHolder(); holder.teamNumber = (TextView) convertView.findViewById(R.id.team_number); holder.teamName = (TextView) convertView.findViewById(R.id.team_name); holder.teamLocation = (TextView) convertView.findViewById(R.id.team_location); holder.teamInfo = (ImageView) convertView.findViewById(R.id.team_info); holder.myTbaSettings = (ImageView) convertView.findViewById(R.id.model_settings); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.teamNumber.setText(String.format(Locale.US, "%1$d", mTeamNumber)); if (mTeamName == null || mTeamName.isEmpty()) { holder.teamName.setText(String.format(Locale.US, "Team %1$s", mTeamNumber)); } else { holder.teamName.setText(mTeamName); } holder.teamLocation.setText(mTeamLocation); if (mShowLinkToTeamDetails) { holder.teamInfo.setVisibility(View.VISIBLE); holder.teamInfo.setOnClickListener(new TeamClickListener(context, getKey())); } else { holder.teamInfo.setVisibility(View.GONE); } if (mShowMyTbaDetails) { holder.myTbaSettings.setVisibility(View.VISIBLE); holder.myTbaSettings.setOnClickListener(new ModelSettingsClickListener(context, getKey(), ModelType.TEAM)); convertView.setOnClickListener(new TeamClickListener(context, getKey())); } else { holder.myTbaSettings.setVisibility(View.GONE); } return convertView; } private static class ViewHolder { TextView teamNumber; TextView teamName; TextView teamLocation; ImageView teamInfo; ImageView myTbaSettings; } }