From ec63a0fc0c28c5b9d8af6c972e8ef6ec5ab4e0cf Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Sat, 3 Jan 2015 12:32:09 -0800 Subject: Put delete in a background loader --- .../dsub/fragments/SubsonicFragment.java | 38 ++++++++++++++-------- 1 file changed, 24 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/github/daneren2005/dsub/fragments/SubsonicFragment.java b/src/github/daneren2005/dsub/fragments/SubsonicFragment.java index 6e588ec4..5a190439 100644 --- a/src/github/daneren2005/dsub/fragments/SubsonicFragment.java +++ b/src/github/daneren2005/dsub/fragments/SubsonicFragment.java @@ -1343,25 +1343,35 @@ public class SubsonicFragment extends Fragment implements SwipeRefreshLayout.OnR } public void deleteRecursively(Artist artist) { - File dir = FileUtil.getArtistDirectory(context, artist); - if(dir == null) return; - - MediaStoreService mediaStore = new MediaStoreService(context); - Util.recursiveDelete(dir, mediaStore); - if(Util.isOffline(context)) { - refresh(); - } + deleteRecursively(FileUtil.getArtistDirectory(context, artist)); } public void deleteRecursively(Entry album) { - File dir = FileUtil.getAlbumDirectory(context, album); - if(dir == null) return; + deleteRecursively(FileUtil.getAlbumDirectory(context, album)); - MediaStoreService mediaStore = new MediaStoreService(context); - Util.recursiveDelete(dir, mediaStore); - if(Util.isOffline(context)) { - refresh(); + } + public void deleteRecursively(final File dir) { + if(dir == null) { + return; } + + new LoadingTask(context) { + @Override + protected Void doInBackground() throws Throwable { + MediaStoreService mediaStore = new MediaStoreService(context); + Util.recursiveDelete(dir, mediaStore); + return null; + } + + @Override + protected void done(Void result) { + if(Util.isOffline(context)) { + refresh(); + } else { + UpdateView.triggerUpdate(); + } + } + }.execute(); } public void showAlbumArtist(Entry entry) { -- cgit v1.2.3