aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.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/domain/MusicDirectory.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/domain/MusicDirectory.java')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java35
1 files changed, 33 insertions, 2 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java b/app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java
index 3c022cea..cd84c0a3 100644
--- a/app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java
+++ b/app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java
@@ -32,7 +32,9 @@ import java.io.Serializable;
import java.util.Collections;
import java.util.Comparator;
+import github.daneren2005.dsub.service.DownloadService;
import github.daneren2005.dsub.util.Constants;
+import github.daneren2005.dsub.util.UpdateHelper;
import github.daneren2005.dsub.util.Util;
/**
@@ -135,13 +137,14 @@ public class MusicDirectory implements Serializable {
EntryComparator.sort(children, byYear);
}
- public synchronized void updateMetadata(MusicDirectory refreshedDirectory) {
+ public synchronized boolean updateMetadata(MusicDirectory refreshedDirectory) {
+ boolean metadataUpdated = false;
Iterator<Entry> it = children.iterator();
while(it.hasNext()) {
Entry entry = it.next();
int index = refreshedDirectory.children.indexOf(entry);
if(index != -1) {
- Entry refreshed = refreshedDirectory.children.get(index);
+ final Entry refreshed = refreshedDirectory.children.get(index);
entry.setTitle(refreshed.getTitle());
entry.setAlbum(refreshed.getAlbum());
@@ -155,8 +158,36 @@ public class MusicDirectory implements Serializable {
entry.setStarred(refreshed.isStarred());
entry.setRating(refreshed.getRating());
entry.setType(refreshed.getType());
+ if(!Util.equals(entry.getCoverArt(), refreshed.getCoverArt())) {
+ metadataUpdated = true;
+ entry.setCoverArt(refreshed.getCoverArt());
+ }
+
+ new UpdateHelper.EntryInstanceUpdater(entry) {
+ @Override
+ public void update(Entry found) {
+ found.setTitle(refreshed.getTitle());
+ found.setAlbum(refreshed.getAlbum());
+ found.setArtist(refreshed.getArtist());
+ found.setTrack(refreshed.getTrack());
+ found.setYear(refreshed.getYear());
+ found.setGenre(refreshed.getGenre());
+ found.setTranscodedContentType(refreshed.getTranscodedContentType());
+ found.setTranscodedSuffix(refreshed.getTranscodedSuffix());
+ found.setDiscNumber(refreshed.getDiscNumber());
+ found.setStarred(refreshed.isStarred());
+ found.setRating(refreshed.getRating());
+ found.setType(refreshed.getType());
+ if(!Util.equals(found.getCoverArt(), refreshed.getCoverArt())) {
+ found.setCoverArt(refreshed.getCoverArt());
+ metadataUpdate = DownloadService.METADATA_UPDATED_COVER_ART;
+ }
+ }
+ }.execute();
}
}
+
+ return metadataUpdated;
}
public synchronized boolean updateEntriesList(Context context, int instance, MusicDirectory refreshedDirectory) {
boolean changed = false;