diff --git a/app/src/main/java/com/kabouzeid/gramophone/helper/MusicPlayerRemote.java b/app/src/main/java/com/kabouzeid/gramophone/helper/MusicPlayerRemote.java index 2f131a72..7a849554 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/helper/MusicPlayerRemote.java +++ b/app/src/main/java/com/kabouzeid/gramophone/helper/MusicPlayerRemote.java @@ -345,6 +345,14 @@ public class MusicPlayerRemote { return false; } + public static boolean clearQueue() { + if (musicService != null) { + musicService.clearQueue(); + return true; + } + return false; + } + public static int getAudioSessionId() { if (musicService != null) { return musicService.getAudioSessionId(); diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java index 71780bf0..85b79f91 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java @@ -673,6 +673,14 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP notifyChange(QUEUE_CHANGED); } + public void clearQueue() { + playingQueue.clear(); + originalPlayingQueue.clear(); + + setPosition(-1); + notifyChange(QUEUE_CHANGED); + } + public void playSongAt(final int position) { // handle this on the handlers thread to avoid blocking the ui thread playerHandler.removeMessages(PLAY_SONG); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/AbsPlayerFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/AbsPlayerFragment.java index 2c81de96..f0ad25e1 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/AbsPlayerFragment.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/AbsPlayerFragment.java @@ -63,8 +63,9 @@ public abstract class AbsPlayerFragment extends AbsMusicServiceFragment implemen case R.id.action_add_to_playlist: AddToPlaylistDialog.create(song).show(getFragmentManager(), "ADD_PLAYLIST"); return true; -// case R.id.action_playing_queue: -// return true; + case R.id.action_clear_playing_queue: + MusicPlayerRemote.clearQueue(); + return true; case R.id.action_tag_editor: Intent intent = new Intent(getActivity(), SongTagEditorActivity.class); intent.putExtra(AbsTagEditorActivity.EXTRA_ID, song.id); @@ -83,7 +84,7 @@ public abstract class AbsPlayerFragment extends AbsMusicServiceFragment implemen return false; } - protected void toggleFavorite(Song song){ + protected void toggleFavorite(Song song) { MusicUtil.toggleFavorite(getActivity(), song); } diff --git a/app/src/main/res/menu/menu_player.xml b/app/src/main/res/menu/menu_player.xml index bb381436..a308099d 100644 --- a/app/src/main/res/menu/menu_player.xml +++ b/app/src/main/res/menu/menu_player.xml @@ -12,6 +12,11 @@ android:title="@string/action_shuffle_all" app:showAsAction="never" /> + + Shuffle album Shuffle artist Shuffle playlist + Clear playing queue Last opened Light Dark