From d2003fd40e3d87e3ea9af1d30774a04e520e997f Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Mon, 23 Nov 2015 18:02:23 -0800 Subject: Unpin songs when deleting a synced playlist --- .../daneren2005/dsub/service/CachedMusicService.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'app/src/main') 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 caf000d4..68ca36a7 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java +++ b/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java @@ -310,7 +310,7 @@ public class CachedMusicService implements MusicService { } @Override - public void deletePlaylist(String id, Context context, ProgressListener progressListener) throws Exception { + public void deletePlaylist(final String id, Context context, ProgressListener progressListener) throws Exception { musicService.deletePlaylist(id, context, progressListener); new PlaylistUpdater(context, id) { @@ -318,6 +318,20 @@ public class CachedMusicService implements MusicService { public void updateResult(List objects, Playlist result) { objects.remove(result); cachedPlaylists.set(objects); + + ArrayList playlistList = SyncUtil.getSyncedPlaylists(context, musicService.getInstance(context)); + for(int i = 0; i < playlistList.size(); i++) { + SyncUtil.SyncSet syncPlaylist = playlistList.get(i); + if(syncPlaylist.id != null && syncPlaylist.id.equals(id)) { + MusicDirectory musicDirectory = FileUtil.deserialize(context, getCacheName(context, "playlist", id), MusicDirectory.class); + for(Entry entry: musicDirectory.getChildren()) { + DownloadFile file = new DownloadFile(context, entry, true); + file.unpin(); + } + + break; + } + } } }.execute(); } -- cgit v1.2.3