1 package com.moiseum.wolnelektury.view.player.playlist;
3 import android.os.Bundle;
4 import android.support.v7.widget.LinearLayoutManager;
5 import android.view.View;
7 import com.moiseum.wolnelektury.R;
8 import com.moiseum.wolnelektury.base.mvp.PresenterFragment;
9 import com.moiseum.wolnelektury.components.ProgressRecyclerView;
10 import com.moiseum.wolnelektury.components.recycler.RecyclerAdapter;
11 import com.moiseum.wolnelektury.connection.models.MediaModel;
13 import org.parceler.Parcels;
15 import java.util.List;
17 import butterknife.BindView;
20 * Created by Piotr Ostrowski on 28.05.2018.
22 public class PlayerPlaylistFragment extends PresenterFragment<PlayerPlaylistPresenter> implements PlayerPlaylistView {
24 private static final String MEDIA_FILES_KEY = "MediaFilesKey";
26 @BindView(R.id.rvPlayerPlaylist)
27 ProgressRecyclerView<MediaModel> rvPlayerPlaylist;
29 private PlayerPlaylistAdapter adapter;
31 public static PlayerPlaylistFragment newInstance(List<MediaModel> mediaFiles) {
32 PlayerPlaylistFragment fragment = new PlayerPlaylistFragment();
33 Bundle args = new Bundle();
34 args.putParcelable(MEDIA_FILES_KEY, Parcels.wrap(mediaFiles));
35 fragment.setArguments(args);
40 protected PlayerPlaylistPresenter createPresenter() {
41 if (getArguments() == null || getArguments().getParcelable(MEDIA_FILES_KEY) == null) {
42 throw new IllegalStateException("Media files object is required at this point.");
44 return new PlayerPlaylistPresenter(Parcels.unwrap(getArguments().getParcelable(MEDIA_FILES_KEY)), this, getContext());
48 public int getLayoutResourceId() {
49 return R.layout.fragment_player_playlist;
53 public void prepareView(View view, Bundle savedInstanceState) {
54 initList(rvPlayerPlaylist);
58 public void setCurrentPlaylistItem(int position) {
59 adapter.selectItem(adapter.getItem(position));
62 public void initList(ProgressRecyclerView<MediaModel> rvList) {
63 adapter = new PlayerPlaylistAdapter(getContext());
64 adapter.setOnItemClickListener((item, view, position) -> getPresenter().onPlaylistItemClick(position));
65 rvList.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
66 rvList.setAdapter(adapter);
69 public void setPlaylist(List<MediaModel> item) {
70 rvPlayerPlaylist.setItems(item);