aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/adapter
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2015-10-28 20:01:22 -0700
committerScott Jackson <daneren2005@gmail.com>2015-10-28 20:01:22 -0700
commit6d54b5ab69378efc3db83e67f5317f969e9dd0d9 (patch)
treebb8d8ca0ac5b13eeef61a867118b88a57ea1ed18 /app/src/main/java/github/daneren2005/dsub/adapter
parent9b17627f1b0aa12f9f8cd45cc7747080091069ef (diff)
downloaddsub-6d54b5ab69378efc3db83e67f5317f969e9dd0d9.tar.gz
dsub-6d54b5ab69378efc3db83e67f5317f969e9dd0d9.tar.bz2
dsub-6d54b5ab69378efc3db83e67f5317f969e9dd0d9.zip
#590 Display newest podcast episodes at top
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/adapter')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/adapter/PodcastChannelAdapter.java61
1 files changed, 46 insertions, 15 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/adapter/PodcastChannelAdapter.java b/app/src/main/java/github/daneren2005/dsub/adapter/PodcastChannelAdapter.java
index f637ce39..6d995d56 100644
--- a/app/src/main/java/github/daneren2005/dsub/adapter/PodcastChannelAdapter.java
+++ b/app/src/main/java/github/daneren2005/dsub/adapter/PodcastChannelAdapter.java
@@ -16,57 +16,88 @@ package github.daneren2005.dsub.adapter;
import android.content.Context;
import android.view.ViewGroup;
+
+import github.daneren2005.dsub.domain.MusicDirectory;
import github.daneren2005.dsub.domain.PodcastChannel;
+import github.daneren2005.dsub.domain.PodcastEpisode;
import github.daneren2005.dsub.util.ImageLoader;
import github.daneren2005.dsub.view.FastScroller;
import github.daneren2005.dsub.view.PodcastChannelView;
+import github.daneren2005.dsub.view.SongView;
import github.daneren2005.dsub.view.UpdateView;
+import java.io.Serializable;
import java.util.List;
-public class PodcastChannelAdapter extends SectionAdapter<PodcastChannel> implements FastScroller.BubbleTextGetter {
- public static int VIEW_TYPE_PODCAST = 1;
+public class PodcastChannelAdapter extends SectionAdapter<Serializable> implements FastScroller.BubbleTextGetter {
+ public static int VIEW_TYPE_PODCAST_LEGACY = 1;
public static int VIEW_TYPE_PODCAST_LINE = 2;
public static int VIEW_TYPE_PODCAST_CELL = 3;
+ public static int VIEW_TYPE_PODCAST_EPISODE = 4;
private ImageLoader imageLoader;
private boolean largeCell;
- public PodcastChannelAdapter(Context context, List<PodcastChannel> podcasts, ImageLoader imageLoader, OnItemClickedListener listener, boolean largeCell) {
+ public PodcastChannelAdapter(Context context, List<Serializable> podcasts, ImageLoader imageLoader, OnItemClickedListener listener, boolean largeCell) {
super(context, podcasts);
+ this.imageLoader = imageLoader;
this.onItemClickedListener = listener;
+ this.largeCell = largeCell;
+ }
+ public PodcastChannelAdapter(Context context, List<String> headers, List<List<Serializable>> sections, ImageLoader imageLoader, OnItemClickedListener listener, boolean largeCell) {
+ super(context, headers, sections);
this.imageLoader = imageLoader;
+ this.onItemClickedListener = listener;
this.largeCell = largeCell;
}
@Override
public UpdateView.UpdateViewHolder onCreateSectionViewHolder(ViewGroup parent, int viewType) {
- PodcastChannelView view;
- if(viewType == VIEW_TYPE_PODCAST) {
- view = new PodcastChannelView(context);
+ UpdateView updateView;
+ if(viewType == VIEW_TYPE_PODCAST_EPISODE) {
+ updateView = new SongView(context);
+ } else if(viewType == VIEW_TYPE_PODCAST_LEGACY) {
+ updateView = new PodcastChannelView(context);
} else {
- view = new PodcastChannelView(context, imageLoader, viewType == VIEW_TYPE_PODCAST_CELL);
+ updateView = new PodcastChannelView(context, imageLoader, viewType == VIEW_TYPE_PODCAST_CELL);
}
- return new UpdateView.UpdateViewHolder(view);
+ return new UpdateView.UpdateViewHolder(updateView);
}
@Override
- public void onBindViewHolder(UpdateView.UpdateViewHolder holder, PodcastChannel item, int viewType) {
- holder.getUpdateView().setObject(item);
+ public void onBindViewHolder(UpdateView.UpdateViewHolder holder, Serializable item, int viewType) {
+ if(viewType == VIEW_TYPE_PODCAST_EPISODE) {
+ PodcastEpisode episode = (PodcastEpisode) item;
+ holder.getUpdateView().setObject(item, !episode.isVideo());
+ } else {
+ holder.getUpdateView().setObject(item);
+ }
}
@Override
- public int getItemViewType(PodcastChannel item) {
- if(imageLoader != null && item.getCoverArt() != null) {
- return largeCell ? VIEW_TYPE_PODCAST_CELL : VIEW_TYPE_PODCAST_LINE;
+ public int getItemViewType(Serializable item) {
+ if(item instanceof PodcastChannel) {
+ PodcastChannel channel = (PodcastChannel) item;
+
+ if (imageLoader != null && channel.getCoverArt() != null) {
+ return largeCell ? VIEW_TYPE_PODCAST_CELL : VIEW_TYPE_PODCAST_LINE;
+ } else {
+ return VIEW_TYPE_PODCAST_LEGACY;
+ }
} else {
- return VIEW_TYPE_PODCAST;
+ return VIEW_TYPE_PODCAST_EPISODE;
}
}
@Override
public String getTextToShowInBubble(int position) {
- return getNameIndex(getItemForPosition(position).getName(), true);
+ Serializable item = getItemForPosition(position);
+ if(item instanceof PodcastChannel) {
+ PodcastChannel channel = (PodcastChannel) item;
+ return getNameIndex(channel.getName(), true);
+ } else {
+ return null;
+ }
}
}