From 3f2a53de1f7f357b7bb2824684448cf94a468f73 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Wed, 25 Dec 2013 13:11:14 -0800 Subject: Unpin songs when turning off playlist sync --- .../dsub/fragments/SelectPlaylistFragment.java | 25 +++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java b/src/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java index 615bbe71..fb3a254a 100644 --- a/src/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java +++ b/src/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java @@ -17,11 +17,14 @@ import android.widget.CheckBox; import android.widget.EditText; import android.widget.ListView; import github.daneren2005.dsub.R; +import github.daneren2005.dsub.domain.MusicDirectory; import github.daneren2005.dsub.domain.Playlist; +import github.daneren2005.dsub.service.DownloadFile; import github.daneren2005.dsub.service.MusicService; import github.daneren2005.dsub.service.MusicServiceFactory; import github.daneren2005.dsub.service.OfflineException; import github.daneren2005.dsub.service.ServerTooOldException; +import github.daneren2005.dsub.util.FileUtil; import github.daneren2005.dsub.util.ProgressListener; import github.daneren2005.dsub.util.SyncUtil; import github.daneren2005.dsub.util.BackgroundTask; @@ -261,7 +264,27 @@ public class SelectPlaylistFragment extends SelectListFragment { downloadPlaylist(playlist.getId(), playlist.getName(), true, true, false, false, true); } - private void stopSyncPlaylist(Playlist playlist) { + private void stopSyncPlaylist(final Playlist playlist) { SyncUtil.removeSyncedPlaylist(context, playlist.getId()); + + new LoadingTask(context, false) { + @Override + protected Void doInBackground() throws Throwable { + // Unpin all of the songs in playlist + MusicService musicService = MusicServiceFactory.getMusicService(context); + MusicDirectory root = musicService.getPlaylist(true, playlist.getId(), playlist.getName(), context, this); + for(MusicDirectory.Entry entry: root.getChildren()) { + DownloadFile file = new DownloadFile(context, entry, false); + file.unpin(); + } + + return null; + } + + @Override + protected void done(Void result) { + + } + }.execute(); } } -- cgit v1.2.3