aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/adapter
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2015-10-27 17:47:39 -0700
committerScott Jackson <daneren2005@gmail.com>2015-10-27 17:47:39 -0700
commitd9c624ad2396beb5a489193311f7275dfba2da48 (patch)
tree32ac19dae8e9056a92b904a9bb4fff6828120822 /app/src/main/java/github/daneren2005/dsub/adapter
parente1df606624d9a18fde6ecb33c0647c2939a9b508 (diff)
downloaddsub-d9c624ad2396beb5a489193311f7275dfba2da48.tar.gz
dsub-d9c624ad2396beb5a489193311f7275dfba2da48.tar.bz2
dsub-d9c624ad2396beb5a489193311f7275dfba2da48.zip
#508 Add podcast cover art for Subsonic 5.3+
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/adapter')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/adapter/PodcastChannelAdapter.java67
-rw-r--r--app/src/main/java/github/daneren2005/dsub/adapter/SectionAdapter.java11
2 files changed, 45 insertions, 33 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 e1ca4814..f637ce39 100644
--- a/app/src/main/java/github/daneren2005/dsub/adapter/PodcastChannelAdapter.java
+++ b/app/src/main/java/github/daneren2005/dsub/adapter/PodcastChannelAdapter.java
@@ -17,6 +17,7 @@ package github.daneren2005.dsub.adapter;
import android.content.Context;
import android.view.ViewGroup;
import github.daneren2005.dsub.domain.PodcastChannel;
+import github.daneren2005.dsub.util.ImageLoader;
import github.daneren2005.dsub.view.FastScroller;
import github.daneren2005.dsub.view.PodcastChannelView;
import github.daneren2005.dsub.view.UpdateView;
@@ -24,30 +25,48 @@ import github.daneren2005.dsub.view.UpdateView;
import java.util.List;
public class PodcastChannelAdapter extends SectionAdapter<PodcastChannel> implements FastScroller.BubbleTextGetter {
- public static int VIEW_TYPE_PODCAST = 1;
+ public static int VIEW_TYPE_PODCAST = 1;
+ public static int VIEW_TYPE_PODCAST_LINE = 2;
+ public static int VIEW_TYPE_PODCAST_CELL = 3;
- public PodcastChannelAdapter(Context context, List<PodcastChannel> podcasts, OnItemClickedListener listener) {
- super(context, podcasts);
+ private ImageLoader imageLoader;
+ private boolean largeCell;
+
+ public PodcastChannelAdapter(Context context, List<PodcastChannel> podcasts, ImageLoader imageLoader, OnItemClickedListener listener, boolean largeCell) {
+ super(context, podcasts);
this.onItemClickedListener = listener;
- }
-
- @Override
- public UpdateView.UpdateViewHolder onCreateSectionViewHolder(ViewGroup parent, int viewType) {
- return new UpdateView.UpdateViewHolder(new PodcastChannelView(context));
- }
-
- @Override
- public void onBindViewHolder(UpdateView.UpdateViewHolder holder, PodcastChannel item, int viewType) {
- holder.getUpdateView().setObject(item);
- }
-
- @Override
- public int getItemViewType(PodcastChannel item) {
- return VIEW_TYPE_PODCAST;
- }
-
- @Override
- public String getTextToShowInBubble(int position) {
- return getNameIndex(getItemForPosition(position).getName(), true);
- }
+ this.imageLoader = imageLoader;
+ this.largeCell = largeCell;
+ }
+
+ @Override
+ public UpdateView.UpdateViewHolder onCreateSectionViewHolder(ViewGroup parent, int viewType) {
+ PodcastChannelView view;
+ if(viewType == VIEW_TYPE_PODCAST) {
+ view = new PodcastChannelView(context);
+ } else {
+ view = new PodcastChannelView(context, imageLoader, viewType == VIEW_TYPE_PODCAST_CELL);
+ }
+
+ return new UpdateView.UpdateViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(UpdateView.UpdateViewHolder holder, PodcastChannel item, int viewType) {
+ 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;
+ } else {
+ return VIEW_TYPE_PODCAST;
+ }
+ }
+
+ @Override
+ public String getTextToShowInBubble(int position) {
+ return getNameIndex(getItemForPosition(position).getName(), true);
+ }
}
diff --git a/app/src/main/java/github/daneren2005/dsub/adapter/SectionAdapter.java b/app/src/main/java/github/daneren2005/dsub/adapter/SectionAdapter.java
index 4734e8d0..c2f3c804 100644
--- a/app/src/main/java/github/daneren2005/dsub/adapter/SectionAdapter.java
+++ b/app/src/main/java/github/daneren2005/dsub/adapter/SectionAdapter.java
@@ -23,7 +23,6 @@ import android.support.v7.view.ActionMode;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.util.TypedValue;
-import android.view.Gravity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -131,10 +130,7 @@ public abstract class SectionAdapter<T> extends RecyclerView.Adapter<UpdateViewH
}
});
- View moreButton = updateView.findViewById(R.id.more_button);
- if(moreButton == null) {
- moreButton = updateView.findViewById(R.id.item_more);
- }
+ View moreButton = updateView.findViewById(R.id.item_more);
if (moreButton != null) {
moreButton.setOnClickListener(new View.OnClickListener() {
@Override
@@ -223,10 +219,7 @@ public abstract class SectionAdapter<T> extends RecyclerView.Adapter<UpdateViewH
setChecked(updateView, selected.contains(item));
}
- View moreButton = updateView.findViewById(R.id.more_button);
- if(moreButton == null) {
- moreButton = updateView.findViewById(R.id.item_more);
- }
+ View moreButton = updateView.findViewById(R.id.item_more);
if(moreButton != null) {
if(onItemClickedListener != null) {
PopupMenu popup = new PopupMenu(context, moreButton);