diff options
author | Scott Jackson <daneren2005@gmail.com> | 2014-09-10 16:27:46 -0700 |
---|---|---|
committer | Scott Jackson <daneren2005@gmail.com> | 2014-09-10 16:27:46 -0700 |
commit | e17b447ebb300da3be616ad302e4b078db55327a (patch) | |
tree | 0fa9db6909985a54850a8ee0e91d873ef7e50f6d /src | |
parent | edea08b5a14d68f9fa4f4e1c24982e58c57651cf (diff) | |
download | dsub-e17b447ebb300da3be616ad302e4b078db55327a.tar.gz dsub-e17b447ebb300da3be616ad302e4b078db55327a.tar.bz2 dsub-e17b447ebb300da3be616ad302e4b078db55327a.zip |
If recently added album has no parent, then it is a root level album and needs to be added as an artist
Diffstat (limited to 'src')
-rw-r--r-- | src/github/daneren2005/dsub/service/CachedMusicService.java | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/github/daneren2005/dsub/service/CachedMusicService.java b/src/github/daneren2005/dsub/service/CachedMusicService.java index 867c6d49..7253788a 100644 --- a/src/github/daneren2005/dsub/service/CachedMusicService.java +++ b/src/github/daneren2005/dsub/service/CachedMusicService.java @@ -387,7 +387,7 @@ public class CachedMusicService implements MusicService { public void updateResult(List<Entry> objects, Entry result) { // Only add if it doesn't already exist in it! if(!objects.contains(album)) { - objects.add(result); + objects.add(album); changed = true; } } @@ -403,6 +403,39 @@ public class CachedMusicService implements MusicService { } } }.execute(); + } else { + // If parent is null, then this is a root level album + Artist artist = new Artist(); + artist.setId(album.getId()); + artist.setName(album.getTitle(); + + new IndexesUpdater(context, isTagBrowsing ? "artists" : "indexes") { + private boolean changed = false; + + @Override + public boolean checkResult(Artist check) { + return true; + } + + @Override + public void updateResult(List<Artist> objects, Artist result) { + if(!objects.contains(artist)) { + objects.add(artist); + changed = true; + } + } + + @Override + public void save(ArrayList<Artist> objects) { + if(changed) { + indexes.setArtists(objects); + // Reapply sort after addition + indexes.sortChildren(context); + FileUtil.serialize(context, indexes, cacheName); + cachedIndexes.set(indexes); + } + } + }.execute(); } } } |