package pct.droid.fragments; import android.annotation.TargetApi; import android.os.Build; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import pct.droid.R; import pct.droid.adapters.EpisodeListAdapter; import pct.droid.base.providers.media.models.Episode; import pct.droid.base.providers.media.models.Show; import pct.droid.base.utils.VersionUtils; import pct.droid.fragments.dialog.EpisodeDialogFragment; import pct.droid.fragments.base.BaseDetailFragment; import pct.droid.widget.LinearList; public class ShowDetailSeasonFragment extends BaseDetailFragment { protected static final String SEASON = "season", COLOR = "color"; private static Show sShow; private List<Episode> mEpisodes = new ArrayList<>(); public static ShowDetailSeasonFragment newInstance(Show show, int season) { sShow = show; Bundle b = new Bundle(); b.putInt(SEASON, season); b.putInt(COLOR, show.color); ShowDetailSeasonFragment showDetailFragment = new ShowDetailSeasonFragment(); showDetailFragment.setArguments(b); return showDetailFragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); int season = getArguments().getInt(SEASON); if(sShow == null) return; for (Episode episode : sShow.episodes) { if (episode.season == season) { mEpisodes.add(episode); } } Collections.sort(mEpisodes, new Comparator<Episode>() { @Override public int compare(Episode lhs, Episode rhs) { if (lhs.episode < rhs.episode) { return -1; } else if (lhs.episode > rhs.episode) { return 1; } return 0; } }); } public int getSeasonNumber() { return getArguments().getInt(SEASON); } @TargetApi(Build.VERSION_CODES.JELLY_BEAN) @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { mRoot = inflater.inflate(R.layout.fragment_showdetail_season, container, false); if (VersionUtils.isJellyBean() && container != null) { mRoot.setMinimumHeight(container.getMinimumHeight()); } int color = getResources().getColor(R.color.primary); if(getArguments().containsKey(COLOR)) { color = getArguments().getInt(COLOR, color); } EpisodeListAdapter adapter = new EpisodeListAdapter(inflater, mEpisodes, color); LinearList linearList = (LinearList) mRoot; linearList.setOnItemClickListener(mOnClickListener); linearList.setAdapter(adapter); return mRoot; } private View.OnClickListener mOnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { int position = ((LinearList) mRoot).indexOfChild(v); Episode episode = mEpisodes.get(position); EpisodeDialogFragment fragment = EpisodeDialogFragment.newInstance(sShow, episode); fragment.show(getFragmentManager(), "episode_dialog"); } }; }