From fe3bb692f1b82fa1f5e37e7e095ce04876848717 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Tue, 22 Jul 2014 15:16:58 -0700 Subject: #357 Start of Madsonic specific startRescan functionality --- .../daneren2005/dsub/service/RESTMusicService.java | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src') diff --git a/src/github/daneren2005/dsub/service/RESTMusicService.java b/src/github/daneren2005/dsub/service/RESTMusicService.java index 74b78b97..15f06a3e 100644 --- a/src/github/daneren2005/dsub/service/RESTMusicService.java +++ b/src/github/daneren2005/dsub/service/RESTMusicService.java @@ -197,6 +197,35 @@ public class RESTMusicService implements MusicService { Util.close(reader); } } + + @Override + public void startRescan(Context context, ProgressListener listener) throws Exception { + Reader reader = getReader(context, listener, "startRescan", null); + try { + new ErrorParser(context).parse(reader); + } finally { + Util.close(reader); + } + + // Now check if still running + boolean done = false; + while(!done) { + reader = getReader(context, listener, "scanstatus", null); + try { + ScanStatus status = new ScanStatusParser(context).parse(reader); + if(status.isRunning()) { + // Don't run system ragged trying to query too much + Thread.sleep(100L); + } else { + done = true; + } + } catch(Exception e) { + done = true; + } finally { + Util.close(reader); + } + } + } @Override public Indexes getIndexes(String musicFolderId, boolean refresh, Context context, ProgressListener progressListener) throws Exception { -- cgit v1.2.3