aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/view
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2015-11-07 12:37:53 -0800
committerScott Jackson <daneren2005@gmail.com>2015-11-07 12:37:53 -0800
commit2fa4595ea11e60df6699654e8656b11adf604847 (patch)
treed31910a1c98c069b22796ab9da3449fd6570cbd2 /app/src/main/java/github/daneren2005/dsub/view
parentf0be095e584d7391ef5c83779b6fe7410109cac9 (diff)
downloaddsub-2fa4595ea11e60df6699654e8656b11adf604847.tar.gz
dsub-2fa4595ea11e60df6699654e8656b11adf604847.tar.bz2
dsub-2fa4595ea11e60df6699654e8656b11adf604847.zip
#296 Respond to service low memory warnings
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/view')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/view/AlbumView.java4
-rw-r--r--app/src/main/java/github/daneren2005/dsub/view/PlaylistView.java4
-rw-r--r--app/src/main/java/github/daneren2005/dsub/view/PodcastChannelView.java6
-rw-r--r--app/src/main/java/github/daneren2005/dsub/view/RecyclingImageView.java14
-rw-r--r--app/src/main/java/github/daneren2005/dsub/view/UpdateView.java11
-rw-r--r--app/src/main/java/github/daneren2005/dsub/view/UserView.java4
6 files changed, 43 insertions, 0 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 343a36f7..048d5a75 100644
--- a/app/src/main/java/github/daneren2005/dsub/view/AlbumView.java
+++ b/app/src/main/java/github/daneren2005/dsub/view/AlbumView.java
@@ -86,6 +86,10 @@ public class AlbumView extends UpdateView2<MusicDirectory.Entry, ImageLoader> {
file = null;
}
+ public void onUpdateImageView() {
+ imageTask = item2.loadImage(coverArtView, item, false, true);
+ }
+
@Override
protected void updateBackground() {
if(file == null) {
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 7d475262..7b5750a8 100644
--- a/app/src/main/java/github/daneren2005/dsub/view/PlaylistView.java
+++ b/app/src/main/java/github/daneren2005/dsub/view/PlaylistView.java
@@ -55,6 +55,10 @@ public class PlaylistView extends UpdateView<Playlist> {
imageTask = imageLoader.loadImage(coverArtView, playlist, false, true);
}
+ public void onUpdateImageView() {
+ imageTask = imageLoader.loadImage(coverArtView, item, false, true);
+ }
+
@Override
protected void updateBackground() {
pinned = SyncUtil.isSyncedPlaylist(context, item.getId());
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 4b19eedd..d3f50954 100644
--- a/app/src/main/java/github/daneren2005/dsub/view/PodcastChannelView.java
+++ b/app/src/main/java/github/daneren2005/dsub/view/PodcastChannelView.java
@@ -78,6 +78,12 @@ public class PodcastChannelView extends UpdateView<PodcastChannel> {
imageTask = imageLoader.loadImage(coverArtView, channel, false, true);
}
}
+
+ public void onUpdateImageView() {
+ if(imageLoader != null) {
+ imageTask = imageLoader.loadImage(coverArtView, item, false, true);
+ }
+ }
@Override
protected void updateBackground() {
diff --git a/app/src/main/java/github/daneren2005/dsub/view/RecyclingImageView.java b/app/src/main/java/github/daneren2005/dsub/view/RecyclingImageView.java
index 0c85697f..a7208cee 100644
--- a/app/src/main/java/github/daneren2005/dsub/view/RecyclingImageView.java
+++ b/app/src/main/java/github/daneren2005/dsub/view/RecyclingImageView.java
@@ -27,6 +27,8 @@ import android.util.AttributeSet;
import android.widget.ImageView;
public class RecyclingImageView extends ImageView {
+ private boolean invalidated = false;
+
public RecyclingImageView(Context context) {
super(context);
}
@@ -51,6 +53,7 @@ public class RecyclingImageView extends ImageView {
if(drawable instanceof BitmapDrawable) {
if (isBitmapRecycled(drawable)) {
this.setImageDrawable(null);
+ invalidated = true;
}
} else if(drawable instanceof TransitionDrawable) {
TransitionDrawable transitionDrawable = (TransitionDrawable) drawable;
@@ -59,6 +62,7 @@ public class RecyclingImageView extends ImageView {
Drawable lastDrawable = transitionDrawable.getDrawable(transitionDrawable.getNumberOfLayers() - 1);
if(isBitmapRecycled(lastDrawable)) {
this.setImageDrawable(null);
+ invalidated = true;
} else {
// Go through earlier bitmaps and make sure that they are not recycled
for (int i = 0; i < transitionDrawable.getNumberOfLayers(); i++) {
@@ -76,6 +80,12 @@ public class RecyclingImageView extends ImageView {
super.onDraw(canvas);
}
+ @Override
+ public void setImageDrawable(Drawable drawable) {
+ super.setImageDrawable(drawable);
+ invalidated = false;
+ }
+
private boolean isBitmapRecycled(Drawable drawable) {
if(!(drawable instanceof BitmapDrawable)) {
return false;
@@ -88,4 +98,8 @@ public class RecyclingImageView extends ImageView {
return false;
}
}
+
+ public boolean isInvalidated() {
+ return invalidated;
+ }
}
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 d59f23d0..8f3b5271 100644
--- a/app/src/main/java/github/daneren2005/dsub/view/UpdateView.java
+++ b/app/src/main/java/github/daneren2005/dsub/view/UpdateView.java
@@ -275,6 +275,13 @@ public abstract class UpdateView<T> extends LinearLayout {
ratingBar.setRating(isRated);
rating = isRated;
}
+
+ if(coverArtView != null && coverArtView instanceof RecyclingImageView) {
+ RecyclingImageView recyclingImageView = (RecyclingImageView) coverArtView;
+ if(recyclingImageView.isInvalidated()) {
+ onUpdateImageView();
+ }
+ }
}
public boolean isCheckable() {
@@ -295,6 +302,10 @@ public abstract class UpdateView<T> extends LinearLayout {
}
+ public void onUpdateImageView() {
+
+ }
+
public static class UpdateViewHolder<T> extends RecyclerView.ViewHolder {
private UpdateView updateView;
private View view;
diff --git a/app/src/main/java/github/daneren2005/dsub/view/UserView.java b/app/src/main/java/github/daneren2005/dsub/view/UserView.java
index a97d755b..38ad4f78 100644
--- a/app/src/main/java/github/daneren2005/dsub/view/UserView.java
+++ b/app/src/main/java/github/daneren2005/dsub/view/UserView.java
@@ -47,4 +47,8 @@ public class UserView extends UpdateView2<User, ImageLoader> {
usernameView.setText(user.getUsername());
imageTask = imageLoader.loadAvatar(context, avatarView, user.getUsername());
}
+
+ public void onUpdateImageView() {
+ imageTask = item2.loadAvatar(context, avatarView, item.getUsername());
+ }
}