diff options
author | Scott Jackson <daneren2005@gmail.com> | 2015-10-30 17:37:42 -0700 |
---|---|---|
committer | Scott Jackson <daneren2005@gmail.com> | 2015-10-30 17:37:42 -0700 |
commit | 2f0a4aed12d8e1e18e22dabf358a4a27ae99247c (patch) | |
tree | e512901a228a6ffd1bbfcbdbe57826fdabeb3148 /app/src/main/java/github/daneren2005/dsub/adapter | |
parent | a227f8e48b7f14b08f1fcdbeed827ea4c68a91d5 (diff) | |
download | dsub-2f0a4aed12d8e1e18e22dabf358a4a27ae99247c.tar.gz dsub-2f0a4aed12d8e1e18e22dabf358a4a27ae99247c.tar.bz2 dsub-2f0a4aed12d8e1e18e22dabf358a4a27ae99247c.zip |
#590 Add toggle for showing more recent podcast episodes
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/adapter')
-rw-r--r-- | app/src/main/java/github/daneren2005/dsub/adapter/PodcastChannelAdapter.java | 70 |
1 files changed, 64 insertions, 6 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 875a4800..d9290f49 100644 --- a/app/src/main/java/github/daneren2005/dsub/adapter/PodcastChannelAdapter.java +++ b/app/src/main/java/github/daneren2005/dsub/adapter/PodcastChannelAdapter.java @@ -17,12 +17,14 @@ package github.daneren2005.dsub.adapter; import android.content.Context; import android.view.Menu; import android.view.MenuInflater; +import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; import github.daneren2005.dsub.R; -import github.daneren2005.dsub.domain.MusicDirectory; import github.daneren2005.dsub.domain.PodcastChannel; import github.daneren2005.dsub.domain.PodcastEpisode; +import github.daneren2005.dsub.util.DrawableTint; import github.daneren2005.dsub.util.ImageLoader; import github.daneren2005.dsub.util.Util; import github.daneren2005.dsub.view.BasicHeaderView; @@ -35,13 +37,18 @@ import java.io.Serializable; import java.util.List; 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; + public static final int VIEW_TYPE_PODCAST_LEGACY = 1; + public static final int VIEW_TYPE_PODCAST_LINE = 2; + public static final int VIEW_TYPE_PODCAST_CELL = 3; + public static final int VIEW_TYPE_PODCAST_EPISODE = 4; + + public static final String EPISODE_HEADER = "episodes"; + public static final String CHANNEL_HEADER = "channels"; private ImageLoader imageLoader; private boolean largeCell; + private int selectToggleAttr = R.attr.select_server; + private List<Serializable> extraEpisodes; public PodcastChannelAdapter(Context context, List<Serializable> podcasts, ImageLoader imageLoader, OnItemClickedListener listener, boolean largeCell) { super(context, podcasts); @@ -49,8 +56,9 @@ public class PodcastChannelAdapter extends SectionAdapter<Serializable> implemen this.onItemClickedListener = listener; this.largeCell = largeCell; } - public PodcastChannelAdapter(Context context, List<String> headers, List<List<Serializable>> sections, ImageLoader imageLoader, OnItemClickedListener listener, boolean largeCell) { + public PodcastChannelAdapter(Context context, List<String> headers, List<List<Serializable>> sections, List<Serializable> extraEpisodes, ImageLoader imageLoader, OnItemClickedListener listener, boolean largeCell) { super(context, headers, sections); + this.extraEpisodes = extraEpisodes; this.imageLoader = imageLoader; this.onItemClickedListener = listener; this.largeCell = largeCell; @@ -118,4 +126,54 @@ public class PodcastChannelAdapter extends SectionAdapter<Serializable> implemen menu.removeItem(R.id.menu_remove_playlist); menu.removeItem(R.id.menu_unstar); } + + @Override + public UpdateView.UpdateViewHolder onCreateHeaderHolder(ViewGroup parent) { + return new UpdateView.UpdateViewHolder(new BasicHeaderView(context, R.layout.newest_episode_header)); + } + + @Override + public void onBindHeaderHolder(UpdateView.UpdateViewHolder holder, String header) { + UpdateView view = holder.getUpdateView(); + ImageView toggleSelectionView = (ImageView) view.findViewById(R.id.item_select); + + String display; + if(EPISODE_HEADER.equals(header)) { + display = context.getResources().getString(R.string.main_albums_newest); + + if(extraEpisodes != null && !extraEpisodes.isEmpty()) { + toggleSelectionView.setVisibility(View.VISIBLE); + toggleSelectionView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // Update icon + if (selectToggleAttr == R.attr.select_server) { + selectToggleAttr = R.attr.select_tabs; + + // Update how many are displayed + sections.get(0).addAll(extraEpisodes); + notifyItemRangeInserted(4, extraEpisodes.size()); + } else { + selectToggleAttr = R.attr.select_server; + + // Update how many are displayed + sections.get(0).removeAll(extraEpisodes); + notifyItemRangeRemoved(4, extraEpisodes.size()); + } + + ((ImageView) v).setImageResource(DrawableTint.getDrawableRes(context, selectToggleAttr)); + + } + }); + toggleSelectionView.setImageResource(DrawableTint.getDrawableRes(context, selectToggleAttr)); + } + } else { + display = context.getResources().getString(R.string.select_podcasts_channels); + toggleSelectionView.setVisibility(View.GONE); + } + + if(view != null) { + view.setObject(display); + } + } } |