package com.thebluealliance.androidclient.fragments.event;
import com.thebluealliance.androidclient.R;
import com.thebluealliance.androidclient.fragments.ListViewFragment;
import com.thebluealliance.androidclient.models.Award;
import com.thebluealliance.androidclient.models.NoDataViewParams;
import com.thebluealliance.androidclient.subscribers.AwardsListSubscriber;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.List;
import rx.Observable;
public class EventAwardsFragment extends ListViewFragment<List<Award>, AwardsListSubscriber> {
private static final String EVENT_KEY = "eventKey", TEAM_KEY = "teamKey";
private String mEventKey, mTeamKey;
public static EventAwardsFragment newInstance(String eventKey) {
EventAwardsFragment f = new EventAwardsFragment();
Bundle data = new Bundle();
data.putString(EVENT_KEY, eventKey);
f.setArguments(data);
return f;
}
public static EventAwardsFragment newInstance(String eventKey, String teamKey) {
EventAwardsFragment f = new EventAwardsFragment();
Bundle data = new Bundle();
data.putString(EVENT_KEY, eventKey);
data.putString(TEAM_KEY, teamKey);
f.setArguments(data);
return f;
}
@Override
public void onCreate(Bundle savedInstanceState) {
if (getArguments() != null) {
mEventKey = getArguments().getString(EVENT_KEY, "");
mTeamKey = getArguments().getString(TEAM_KEY, "");
}
super.onCreate(savedInstanceState);
mSubscriber.setTeamKey(mTeamKey);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
//disable touch feedback (you can't click the elements here...)
mListView.setCacheColorHint(getResources().getColor(android.R.color.transparent));
mListView.setSelector(R.drawable.transparent);
mListView.setPadding(0, (int) (8 * getResources().getDisplayMetrics().density), 0, 0);
mListView.setClipToPadding(false);
mListView.setDivider(null);
return view;
}
@Override
protected void inject() {
mComponent.inject(this);
}
@Override
protected Observable<List<Award>> getObservable(String tbaCacheHeader) {
if (mTeamKey == null || mTeamKey.isEmpty()) {
return mDatafeed.fetchEventAwards(mEventKey, tbaCacheHeader);
} else {
return mDatafeed.fetchTeamAtEventAwards(mTeamKey, mEventKey, tbaCacheHeader);
}
}
@Override
protected String getRefreshTag() {
return String.format("eventAwards_%1$s_%2$s", mEventKey, mTeamKey);
}
@Override public NoDataViewParams getNoDataParams() {
return new NoDataViewParams(R.drawable.ic_trophy_black_48dp, R.string.no_awards_data);
}
}