diff options
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java')
-rw-r--r-- | app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java b/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java index 68ca36a7..e188f97f 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java +++ b/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java @@ -53,6 +53,7 @@ import github.daneren2005.dsub.domain.Share; import github.daneren2005.dsub.domain.User; import github.daneren2005.dsub.util.SilentBackgroundTask; import github.daneren2005.dsub.util.ProgressListener; +import github.daneren2005.dsub.util.SongDBHandler; import github.daneren2005.dsub.util.SyncUtil; import github.daneren2005.dsub.util.TimeLimitedCache; import github.daneren2005.dsub.util.FileUtil; @@ -171,6 +172,7 @@ public class CachedMusicService implements MusicService { protected Void doInBackground() throws Throwable { Util.sleepQuietly(2000L); MusicDirectory refreshed = musicService.getMusicDirectory(id, name, true, context, null); + updateAllSongs(context, refreshed); cached.updateDifferences(context, musicService.getInstance(context), refreshed); FileUtil.serialize(context, refreshed, getCacheName(context, "directory", id)); return null; @@ -193,6 +195,7 @@ public class CachedMusicService implements MusicService { if(dir == null) { dir = musicService.getMusicDirectory(id, name, refresh, context, progressListener); + updateAllSongs(context, dir); FileUtil.serialize(context, dir, getCacheName(context, "directory", id)); // If a cached copy exists to check against, look for removes @@ -231,6 +234,7 @@ public class CachedMusicService implements MusicService { if(dir == null) { dir = musicService.getAlbum(id, name, refresh, context, progressListener); + updateAllSongs(context, dir); FileUtil.serialize(context, dir, getCacheName(context, "album", id)); // If a cached copy exists to check against, look for removes @@ -254,6 +258,8 @@ public class CachedMusicService implements MusicService { } if(dir == null) { dir = musicService.getPlaylist(refresh, id, name, context, progressListener); + // With large playlists this takes too long + // updateAllSongs(context, dir); FileUtil.serialize(context, dir, getCacheName(context, "playlist", id)); File playlistFile = FileUtil.getPlaylistFile(context, Util.getServerName(context, musicService.getInstance(context)), dir.getName()); @@ -1500,6 +1506,13 @@ public class CachedMusicService implements MusicService { } } + protected void updateAllSongs(Context context, MusicDirectory dir) { + List<Entry> songs = dir.getSongs(); + if(!songs.isEmpty()) { + SongDBHandler.getHandler(context).addSongs(musicService.getInstance(context), songs); + } + } + private void checkSettingsChanged(Context context) { int instance = musicService.getInstance(context); String newUrl = musicService.getRestUrl(context, null, false); |