diff options
author | Scott Jackson <daneren2005@gmail.com> | 2015-10-27 17:47:39 -0700 |
---|---|---|
committer | Scott Jackson <daneren2005@gmail.com> | 2015-10-27 17:47:39 -0700 |
commit | d9c624ad2396beb5a489193311f7275dfba2da48 (patch) | |
tree | 32ac19dae8e9056a92b904a9bb4fff6828120822 /app/src/main/java/github/daneren2005/dsub/view | |
parent | e1df606624d9a18fde6ecb33c0647c2939a9b508 (diff) | |
download | dsub-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/view')
7 files changed, 53 insertions, 10 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/view/AlbumView.java b/app/src/main/java/github/daneren2005/dsub/view/AlbumView.java index e521babf..343a36f7 100644 --- a/app/src/main/java/github/daneren2005/dsub/view/AlbumView.java +++ b/app/src/main/java/github/daneren2005/dsub/view/AlbumView.java @@ -37,7 +37,6 @@ public class AlbumView extends UpdateView2<MusicDirectory.Entry, ImageLoader> { private static final String TAG = AlbumView.class.getSimpleName(); private File file; - private View coverArtView; private TextView titleView; private TextView artistView; private boolean showArtist = true; @@ -59,7 +58,7 @@ public class AlbumView extends UpdateView2<MusicDirectory.Entry, ImageLoader> { ratingBar.setFocusable(false); starButton = (ImageButton) findViewById(R.id.album_star); starButton.setFocusable(false); - moreButton = (ImageView) findViewById(R.id.more_button); + moreButton = (ImageView) findViewById(R.id.item_more); checkable = true; } diff --git a/app/src/main/java/github/daneren2005/dsub/view/FastScroller.java b/app/src/main/java/github/daneren2005/dsub/view/FastScroller.java index ba83e46c..ee5900bd 100644 --- a/app/src/main/java/github/daneren2005/dsub/view/FastScroller.java +++ b/app/src/main/java/github/daneren2005/dsub/view/FastScroller.java @@ -264,9 +264,15 @@ public class FastScroller extends LinearLayout { private class ScrollListener extends OnScrollListener { @Override public void onScrolled(RecyclerView rv,int dx,int dy) { + if(recyclerView.getWidth() == 0) { + return; + } registerAdapter(); View firstVisibleView = recyclerView.getChildAt(0); + if(firstVisibleView == null) { + return; + } int firstVisiblePosition = recyclerView.getChildPosition(firstVisibleView); if(visibleRange == -1) { visibleRange = recyclerView.getChildCount(); diff --git a/app/src/main/java/github/daneren2005/dsub/view/PlaylistView.java b/app/src/main/java/github/daneren2005/dsub/view/PlaylistView.java index b8fa3b80..7d475262 100644 --- a/app/src/main/java/github/daneren2005/dsub/view/PlaylistView.java +++ b/app/src/main/java/github/daneren2005/dsub/view/PlaylistView.java @@ -36,17 +36,16 @@ import github.daneren2005.dsub.util.SyncUtil; public class PlaylistView extends UpdateView<Playlist> { private static final String TAG = PlaylistView.class.getSimpleName(); - private View coverArtView; private TextView titleView; private ImageLoader imageLoader; public PlaylistView(Context context, ImageLoader imageLoader, boolean largeCell) { super(context); - LayoutInflater.from(context).inflate(largeCell ? R.layout.playlist_cell_item : R.layout.playlist_list_item, this, true); + LayoutInflater.from(context).inflate(largeCell ? R.layout.basic_cell_item : R.layout.basic_art_item, this, true); - coverArtView = findViewById(R.id.playlist_coverart); - titleView = (TextView) findViewById(R.id.playlist_title); - moreButton = (ImageView) findViewById(R.id.more_button); + coverArtView = findViewById(R.id.item_art); + titleView = (TextView) findViewById(R.id.item_name); + moreButton = (ImageView) findViewById(R.id.item_more); this.imageLoader = imageLoader; } diff --git a/app/src/main/java/github/daneren2005/dsub/view/PodcastChannelView.java b/app/src/main/java/github/daneren2005/dsub/view/PodcastChannelView.java index 4878ad67..4b19eedd 100644 --- a/app/src/main/java/github/daneren2005/dsub/view/PodcastChannelView.java +++ b/app/src/main/java/github/daneren2005/dsub/view/PodcastChannelView.java @@ -19,6 +19,7 @@ package github.daneren2005.dsub.view; import android.content.Context; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageButton; @@ -26,6 +27,7 @@ import android.widget.ImageView; import android.widget.TextView; import github.daneren2005.dsub.R; import github.daneren2005.dsub.domain.PodcastChannel; +import github.daneren2005.dsub.util.ImageLoader; import github.daneren2005.dsub.util.SyncUtil; import github.daneren2005.dsub.util.FileUtil; import java.io.File; @@ -35,20 +37,33 @@ public class PodcastChannelView extends UpdateView<PodcastChannel> { private File file; private TextView titleView; + private ImageLoader imageLoader; public PodcastChannelView(Context context) { + this(context, null, false); + } + public PodcastChannelView(Context context, ImageLoader imageLoader, boolean largeCell) { super(context); - LayoutInflater.from(context).inflate(R.layout.basic_list_item, this, true); + + this.imageLoader = imageLoader; + if(imageLoader != null) { + LayoutInflater.from(context).inflate(largeCell ? R.layout.basic_cell_item : R.layout.basic_art_item, this, true); + } else { + LayoutInflater.from(context).inflate(R.layout.basic_list_item, this, true); + } titleView = (TextView) findViewById(R.id.item_name); starButton = (ImageButton) findViewById(R.id.item_star); - starButton.setFocusable(false); + if(starButton != null) { + starButton.setFocusable(false); + } moreButton = (ImageView) findViewById(R.id.item_more); moreButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { v.showContextMenu(); } }); + coverArtView = findViewById(R.id.item_art); } protected void setObjectImpl(PodcastChannel channel) { @@ -58,6 +73,10 @@ public class PodcastChannelView extends UpdateView<PodcastChannel> { titleView.setText(channel.getUrl()); } file = FileUtil.getPodcastDirectory(context, channel); + + if(imageLoader != null) { + imageTask = imageLoader.loadImage(coverArtView, channel, false, true); + } } @Override diff --git a/app/src/main/java/github/daneren2005/dsub/view/SongView.java b/app/src/main/java/github/daneren2005/dsub/view/SongView.java index dda86162..1027905a 100644 --- a/app/src/main/java/github/daneren2005/dsub/view/SongView.java +++ b/app/src/main/java/github/daneren2005/dsub/view/SongView.java @@ -79,7 +79,7 @@ public class SongView extends UpdateView2<MusicDirectory.Entry, Boolean> { starButton.setFocusable(false); bookmarkButton = (ImageButton) findViewById(R.id.song_bookmark); bookmarkButton.setFocusable(false); - moreButton = (ImageView) findViewById(R.id.more_button); + moreButton = (ImageView) findViewById(R.id.item_more); bottomRowView = findViewById(R.id.song_bottom); } diff --git a/app/src/main/java/github/daneren2005/dsub/view/UpdateView.java b/app/src/main/java/github/daneren2005/dsub/view/UpdateView.java index ef5edc00..d59f23d0 100644 --- a/app/src/main/java/github/daneren2005/dsub/view/UpdateView.java +++ b/app/src/main/java/github/daneren2005/dsub/view/UpdateView.java @@ -55,6 +55,7 @@ public abstract class UpdateView<T> extends LinearLayout { protected RatingBar ratingBar; protected ImageButton starButton; protected ImageView moreButton; + protected View coverArtView; protected boolean exists = false; protected boolean pinned = false; @@ -93,7 +94,18 @@ public abstract class UpdateView<T> extends LinearLayout { } public void setObject(T obj) { + if(item == obj) { + return; + } + item = obj; + if(imageTask != null) { + imageTask.cancel(); + imageTask = null; + } + if(coverArtView != null && coverArtView instanceof ImageView) { + ((ImageView) coverArtView).setImageDrawable(null); + } setObjectImpl(obj); updateBackground(); update(); diff --git a/app/src/main/java/github/daneren2005/dsub/view/UpdateView2.java b/app/src/main/java/github/daneren2005/dsub/view/UpdateView2.java index 0f0b5455..7dccba13 100644 --- a/app/src/main/java/github/daneren2005/dsub/view/UpdateView2.java +++ b/app/src/main/java/github/daneren2005/dsub/view/UpdateView2.java @@ -1,6 +1,7 @@ package github.daneren2005.dsub.view; import android.content.Context; +import android.widget.ImageView; public abstract class UpdateView2<T1, T2> extends UpdateView<T1> { protected T2 item2; @@ -18,12 +19,19 @@ public abstract class UpdateView2<T1, T2> extends UpdateView<T1> { } @Override public void setObject(T1 obj1, Object obj2) { + if(item == obj1 && item2 == obj2) { + return; + } + item = obj1; item2 = (T2) obj2; if(imageTask != null) { imageTask.cancel(); imageTask = null; } + if(coverArtView != null && coverArtView instanceof ImageView) { + ((ImageView) coverArtView).setImageDrawable(null); + } setObjectImpl(item, item2); backgroundHandler.post(new Runnable() { |