aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2016-01-07 18:41:01 -0800
committerScott Jackson <daneren2005@gmail.com>2016-01-07 18:41:01 -0800
commit3828901677e2ccb2ba783a51c333bbab7b018675 (patch)
tree7e130ad009342cb69e9470d80664ccf98c9904c9 /app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java
parent3817649f1558f0e4c90c4cff137f90209c359ca9 (diff)
downloaddsub-3828901677e2ccb2ba783a51c333bbab7b018675.tar.gz
dsub-3828901677e2ccb2ba783a51c333bbab7b018675.tar.bz2
dsub-3828901677e2ccb2ba783a51c333bbab7b018675.zip
#611 Update the cover art when refreshing songs
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java37
1 files changed, 28 insertions, 9 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java b/app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java
index 76fde7e5..4209cfd6 100644
--- a/app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java
+++ b/app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java
@@ -39,6 +39,7 @@ import github.daneren2005.dsub.domain.ArtistInfo;
import github.daneren2005.dsub.domain.MusicDirectory;
import github.daneren2005.dsub.domain.ServerInfo;
import github.daneren2005.dsub.domain.Share;
+import github.daneren2005.dsub.service.CachedMusicService;
import github.daneren2005.dsub.service.DownloadService;
import github.daneren2005.dsub.util.DrawableTint;
import github.daneren2005.dsub.util.ImageLoader;
@@ -86,6 +87,11 @@ public class SelectDirectoryFragment extends SubsonicFragment implements Section
private ArtistInfo artistInfo;
private String artistInfoDelayed;
+ private SilentBackgroundTask updateCoverArtTask;
+ private ImageView coverArtView;
+ private Entry coverArtRep;
+ private String coverArtId;
+
String id;
String name;
Entry directory;
@@ -654,9 +660,19 @@ public class SelectDirectoryFragment extends SubsonicFragment implements Section
}
@Override
- public void updateCache() {
- if(entryGridAdapter != null) {
+ public void updateCache(int changeCode) {
+ if(entryGridAdapter != null && changeCode == CachedMusicService.CACHE_UPDATE_LIST) {
entryGridAdapter.notifyDataSetChanged();
+ } else if(changeCode == CachedMusicService.CACHE_UPDATE_METADATA) {
+ if(coverArtView != null && coverArtRep != null && !Util.equals(coverArtRep.getCoverArt(), coverArtId)) {
+ synchronized (coverArtRep) {
+ if (updateCoverArtTask != null && updateCoverArtTask.isRunning()) {
+ updateCoverArtTask.cancel();
+ }
+ updateCoverArtTask = getImageLoader().loadImage(coverArtView, coverArtRep, false, true);
+ coverArtId = coverArtRep.getCoverArt();
+ }
+ }
}
}
}
@@ -1113,22 +1129,22 @@ public class SelectDirectoryFragment extends SubsonicFragment implements Section
});
imageLoader.loadImage(coverArtView, url, false);
} else if(entries.size() > 0) {
- Entry coverArt = null;
- for (int i = 0; (i < 3) && (coverArt == null || coverArt.getCoverArt() == null); i++) {
- coverArt = entries.get(random.nextInt(entries.size()));
+ coverArtRep = null;
+ this.coverArtView = coverArtView;
+ for (int i = 0; (i < 3) && (coverArtRep == null || coverArtRep.getCoverArt() == null); i++) {
+ coverArtRep = entries.get(random.nextInt(entries.size()));
}
- final Entry albumRep = coverArt;
coverArtView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- if (albumRep.getCoverArt() == null) {
+ if (coverArtRep == null || coverArtRep.getCoverArt() == null) {
return;
}
AlertDialog.Builder builder = new AlertDialog.Builder(context);
ImageView fullScreenView = new ImageView(context);
- imageLoader.loadImage(fullScreenView, albumRep, true, true);
+ imageLoader.loadImage(fullScreenView, coverArtRep, true, true);
builder.setCancelable(true);
AlertDialog imageDialog = builder.create();
@@ -1137,7 +1153,10 @@ public class SelectDirectoryFragment extends SubsonicFragment implements Section
imageDialog.show();
}
});
- imageLoader.loadImage(coverArtView, albumRep, false, true);
+ synchronized (coverArtRep) {
+ coverArtId = coverArtRep.getCoverArt();
+ updateCoverArtTask = imageLoader.loadImage(coverArtView, coverArtRep, false, true);
+ }
}
coverArtView.setOnInvalidated(new RecyclingImageView.OnInvalidated() {