From 6d82bc108e596f0f09a699b599213e09fbaf1fa6 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Thu, 20 Jun 2013 20:53:25 -0700 Subject: Add starring of offline songs while in online mode --- .../github/daneren2005/dsub/service/RESTMusicService.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/subsonic-android/src/github/daneren2005/dsub/service/RESTMusicService.java b/subsonic-android/src/github/daneren2005/dsub/service/RESTMusicService.java index 75867fdc..73a9f43b 100644 --- a/subsonic-android/src/github/daneren2005/dsub/service/RESTMusicService.java +++ b/subsonic-android/src/github/daneren2005/dsub/service/RESTMusicService.java @@ -791,7 +791,19 @@ public class RESTMusicService implements MusicService { @Override public void setStarred(String id, boolean starred, Context context, ProgressListener progressListener) throws Exception { checkServerVersion(context, "1.8", "Starring is not supported."); - Reader reader = getReader(context, progressListener, starred ? "star" : "unstar", null, "id", id); + + SharedPreferences prefs = Util.getPreferences(context); + String cacheLocn = prefs.getString(Constants.PREFERENCES_KEY_CACHE_LOCATION, null); + if(id.indexOf(cacheLocn) != -1) { + String searchCriteria = Util.parseOfflineIDSearch(context, id, cacheLocn); + SearchCritera critera = new SearchCritera(searchCriteria, 0, 0, 1); + SearchResult result = searchNew(critera, context, progressListener); + if(result.getSongs().size() == 1){ + id = result.getSongs().get(0).getId(); + } + } + + Reader reader = getReader(context, progressListener, starred ? "star" : "unstar", null, "id", id); try { new ErrorParser(context).parse(reader); } finally { -- cgit v1.2.3