diff options
author | Scott Jackson <daneren2005@gmail.com> | 2013-12-11 21:23:51 -0800 |
---|---|---|
committer | Scott Jackson <daneren2005@gmail.com> | 2013-12-11 21:23:51 -0800 |
commit | ed2fafe67b27906923894b7422aedfe21a4868f6 (patch) | |
tree | f49bac197cbea06dedc09bf2be6f7a89baaebcae /src/github | |
parent | 629e0f03bbc1488d522e20aaefad1e50d0387e91 (diff) | |
download | dsub-ed2fafe67b27906923894b7422aedfe21a4868f6.tar.gz dsub-ed2fafe67b27906923894b7422aedfe21a4868f6.tar.bz2 dsub-ed2fafe67b27906923894b7422aedfe21a4868f6.zip |
#215 Remove deleted playlists/podcasts from sync list
Diffstat (limited to 'src/github')
3 files changed, 24 insertions, 5 deletions
diff --git a/src/github/daneren2005/dsub/service/sync/PlaylistSyncAdapter.java b/src/github/daneren2005/dsub/service/sync/PlaylistSyncAdapter.java index dc754015..6e3b49c3 100644 --- a/src/github/daneren2005/dsub/service/sync/PlaylistSyncAdapter.java +++ b/src/github/daneren2005/dsub/service/sync/PlaylistSyncAdapter.java @@ -27,6 +27,7 @@ import java.util.List; import github.daneren2005.dsub.domain.MusicDirectory;
import github.daneren2005.dsub.service.DownloadFile;
+import github.daneren2005.dsub.service.parser.SubsonicRESTException;
import github.daneren2005.dsub.util.SyncUtil;
import github.daneren2005.dsub.util.Util;
@@ -60,8 +61,13 @@ public class PlaylistSyncAdapter extends SubsonicSyncAdapter { file.downloadNow(musicService);
}
}
+ } catch(SubsonicRESTException e) {
+ if(e.getCode() == 70) {
+ SyncUtil.removeSyncedPlaylist(context, id, instance);
+ Log.i(TAG, "Unsync deleted playlist " + id + " for " + serverName);
+ }
} catch(Exception e) {
- Log.e(TAG, "Failed to get playlist for " + serverName);
+ Log.e(TAG, "Failed to get playlist " + id + " for " + serverName);
}
}
}
diff --git a/src/github/daneren2005/dsub/service/sync/PodcastSyncAdapter.java b/src/github/daneren2005/dsub/service/sync/PodcastSyncAdapter.java index f9311390..b5d39d72 100644 --- a/src/github/daneren2005/dsub/service/sync/PodcastSyncAdapter.java +++ b/src/github/daneren2005/dsub/service/sync/PodcastSyncAdapter.java @@ -30,6 +30,7 @@ import java.util.List; import github.daneren2005.dsub.domain.MusicDirectory;
import github.daneren2005.dsub.domain.PodcastEpisode;
import github.daneren2005.dsub.service.DownloadFile;
+import github.daneren2005.dsub.service.parser.SubsonicRESTException;
import github.daneren2005.dsub.util.SyncUtil;
import github.daneren2005.dsub.util.SyncUtil.SyncSet;
import github.daneren2005.dsub.util.FileUtil;
@@ -84,6 +85,11 @@ public class PodcastSyncAdapter extends SubsonicSyncAdapter { }
}
}
+ } catch(SubsonicRESTException e) {
+ if(e.getCode() == 70) {
+ SyncUtil.removeSyncedPodcast(context, id, instance);
+ Log.i(TAG, "Unsync deleted podcasts for " + id + " on " + Util.getServerName(context, instance));
+ }
} catch (Exception e) {
Log.w(TAG, "Failed to get podcasts for " + id + " on " + Util.getServerName(context, instance));
}
diff --git a/src/github/daneren2005/dsub/util/SyncUtil.java b/src/github/daneren2005/dsub/util/SyncUtil.java index 4c5c0203..5a8b79f4 100644 --- a/src/github/daneren2005/dsub/util/SyncUtil.java +++ b/src/github/daneren2005/dsub/util/SyncUtil.java @@ -41,8 +41,12 @@ public final class SyncUtil { syncedPlaylists = playlists;
}
public static void removeSyncedPlaylist(Context context, String playlistId) {
- String playlistFile = getPlaylistSyncFile(context);
- ArrayList<String> playlists = getSyncedPlaylists(context);
+ int instance = Util.getActiveServer(context);
+ removeSyncedPlaylist(context, playlistId, instance);
+ }
+ public static void removeSyncedPlaylist(Context context, String playlistId, int instance) {
+ String playlistFile = getPlaylistSyncFile(context, instance);
+ ArrayList<String> playlists = getSyncedPlaylists(context, instance);
if(playlists.contains(playlistId)) {
playlists.remove(playlistId);
FileUtil.serialize(context, playlists, playlistFile);
@@ -85,8 +89,11 @@ public final class SyncUtil { syncedPodcasts = podcasts;
}
public static void removeSyncedPodcast(Context context, String podcastId) {
- String podcastFile = getPodcastSyncFile(context);
- ArrayList<SyncSet> podcasts = getSyncedPodcasts(context);
+ removeSyncedPodcast(context, podcastId, Util.getActiveServer(context));
+ }
+ public static void removeSyncedPodcast(Context context, String podcastId, int instance) {
+ String podcastFile = getPodcastSyncFile(context, instance);
+ ArrayList<SyncSet> podcasts = getSyncedPodcasts(context, instance);
SyncSet set = new SyncSet(podcastId);
if(podcasts.contains(set)) {
podcasts.remove(set);
|