package com.thebluealliance.androidclient.listeners;
import com.thebluealliance.androidclient.activities.ViewTeamActivity;
import com.thebluealliance.androidclient.helpers.AnalyticsHelper;
import com.thebluealliance.androidclient.helpers.TeamHelper;
import com.thebluealliance.androidclient.models.Team;
import com.thebluealliance.androidclient.subscribers.TeamListSubscriber;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.widget.AdapterView;
import java.util.List;
public class TeamClickListener implements AdapterView.OnItemClickListener, View.OnClickListener {
private final Context mContext;
private final String mTeamKey;
private final TeamListSubscriber mSubscriber;
/**
* Constructor to use with {@link com.thebluealliance.androidclient.fragments.TeamListFragment}
* Allows registering the click listener at the ListView level
*/
public TeamClickListener(Context c, TeamListSubscriber subscriber) {
super();
mContext = c;
mSubscriber = subscriber;
mTeamKey = null;
}
public TeamClickListener(Context c, String teamKey) {
super();
mContext = c;
mTeamKey = teamKey;
mSubscriber = null;
}
@Override
public void onClick(View v) {
String teamKey = mTeamKey;
if (TeamHelper.validateTeamKey(teamKey) ^ TeamHelper.validateMultiTeamKey(teamKey)) {
teamKey = TeamHelper.baseTeamKey(teamKey);
/* Track the call */
Intent intent = ViewTeamActivity.newInstance(mContext, teamKey);
AnalyticsHelper.sendClickUpdate(mContext, "TeamListElement", teamKey, "");
mContext.startActivity(intent);
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
List<Team> teams = mSubscriber.getApiData();
if (teams == null) {
return;
}
String teamKey = teams.get(position).getKey();
Intent i = ViewTeamActivity.newInstance(mContext, teamKey);
mContext.startActivity(i);
AnalyticsHelper.sendClickUpdate(mContext, "team_click", i.getDataString(), teamKey);
}
}