Added Android code
[wl-app.git] / Android / app / src / main / java / com / moiseum / wolnelektury / view / player / playlist / PlayerPlaylistFragment.java
diff --git a/Android/app/src/main/java/com/moiseum/wolnelektury/view/player/playlist/PlayerPlaylistFragment.java b/Android/app/src/main/java/com/moiseum/wolnelektury/view/player/playlist/PlayerPlaylistFragment.java
new file mode 100644 (file)
index 0000000..c1333db
--- /dev/null
@@ -0,0 +1,72 @@
+package com.moiseum.wolnelektury.view.player.playlist;
+
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.view.View;
+
+import com.moiseum.wolnelektury.R;
+import com.moiseum.wolnelektury.base.mvp.PresenterFragment;
+import com.moiseum.wolnelektury.components.ProgressRecyclerView;
+import com.moiseum.wolnelektury.components.recycler.RecyclerAdapter;
+import com.moiseum.wolnelektury.connection.models.MediaModel;
+
+import org.parceler.Parcels;
+
+import java.util.List;
+
+import butterknife.BindView;
+
+/**
+ * Created by Piotr Ostrowski on 28.05.2018.
+ */
+public class PlayerPlaylistFragment extends PresenterFragment<PlayerPlaylistPresenter> implements PlayerPlaylistView {
+
+       private static final String MEDIA_FILES_KEY = "MediaFilesKey";
+
+       @BindView(R.id.rvPlayerPlaylist)
+       ProgressRecyclerView<MediaModel> rvPlayerPlaylist;
+
+       private PlayerPlaylistAdapter adapter;
+
+       public static PlayerPlaylistFragment newInstance(List<MediaModel> mediaFiles) {
+               PlayerPlaylistFragment fragment = new PlayerPlaylistFragment();
+               Bundle args = new Bundle();
+               args.putParcelable(MEDIA_FILES_KEY, Parcels.wrap(mediaFiles));
+               fragment.setArguments(args);
+               return fragment;
+       }
+
+       @Override
+       protected PlayerPlaylistPresenter createPresenter() {
+               if (getArguments() == null || getArguments().getParcelable(MEDIA_FILES_KEY) == null) {
+                       throw new IllegalStateException("Media files object is required at this point.");
+               }
+               return new PlayerPlaylistPresenter(Parcels.unwrap(getArguments().getParcelable(MEDIA_FILES_KEY)), this, getContext());
+       }
+
+       @Override
+       public int getLayoutResourceId() {
+               return R.layout.fragment_player_playlist;
+       }
+
+       @Override
+       public void prepareView(View view, Bundle savedInstanceState) {
+               initList(rvPlayerPlaylist);
+       }
+
+       @Override
+       public void setCurrentPlaylistItem(int position) {
+               adapter.selectItem(adapter.getItem(position));
+       }
+
+       public void initList(ProgressRecyclerView<MediaModel> rvList) {
+               adapter = new PlayerPlaylistAdapter(getContext());
+               adapter.setOnItemClickListener((item, view, position) -> getPresenter().onPlaylistItemClick(position));
+               rvList.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
+               rvList.setAdapter(adapter);
+       }
+
+       public void setPlaylist(List<MediaModel> item) {
+               rvPlayerPlaylist.setItems(item);
+       }
+}