diff options
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/fragments/SelectBookmarkFragment.java')
-rw-r--r-- | app/src/main/java/github/daneren2005/dsub/fragments/SelectBookmarkFragment.java | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/fragments/SelectBookmarkFragment.java b/app/src/main/java/github/daneren2005/dsub/fragments/SelectBookmarkFragment.java index 5f3ca38b..c320f3c1 100644 --- a/app/src/main/java/github/daneren2005/dsub/fragments/SelectBookmarkFragment.java +++ b/app/src/main/java/github/daneren2005/dsub/fragments/SelectBookmarkFragment.java @@ -18,6 +18,7 @@ */ package github.daneren2005.dsub.fragments; +import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -28,6 +29,7 @@ import github.daneren2005.dsub.domain.Bookmark; import github.daneren2005.dsub.domain.MusicDirectory; import github.daneren2005.dsub.service.DownloadService; import github.daneren2005.dsub.service.MusicService; +import github.daneren2005.dsub.util.Constants; import github.daneren2005.dsub.util.MenuUtil; import github.daneren2005.dsub.util.ProgressListener; import github.daneren2005.dsub.util.SilentBackgroundTask; @@ -89,19 +91,29 @@ public class SelectBookmarkFragment extends SelectRecyclerFragment<MusicDirector return; } - new SilentBackgroundTask<Void>(context) { - @Override - protected Void doInBackground() throws Throwable { - downloadService.clear(); - downloadService.download(Arrays.asList(bookmark), false, true, false, false, 0, bookmark.getBookmark().getPosition()); - return null; - } - - @Override - protected void done(Void result) { - context.openNowPlaying(); - } - }.execute(); + boolean allowPlayAll = ((!Util.isTagBrowsing(context) && bookmark.getParent() != null) || (Util.isTagBrowsing(context) && bookmark.getAlbumId() != null)) && !bookmark.isPodcast(); + if(allowPlayAll && "all".equals(Util.getSongPressAction(context))) { + new RecursiveLoader(context) { + @Override + protected Boolean doInBackground() throws Throwable { + getSiblingsRecursively(bookmark); + + if(songs.isEmpty() || !songs.contains(bookmark)) { + playNowInTask(Arrays.asList(bookmark), bookmark, bookmark.getBookmark().getPosition()); + } else { + playNowInTask(songs, bookmark, bookmark.getBookmark().getPosition()); + } + return null; + } + + @Override + protected void done(Boolean result) { + context.openNowPlaying(); + } + }.execute(); + } else { + onSongPress(Arrays.asList(bookmark), bookmark, bookmark.getBookmark().getPosition(), false); + } } private void displayBookmarkInfo(final MusicDirectory.Entry entry) { |