diff --git a/app/src/main/java/org/schabi/newpipe/RouterActivity.java b/app/src/main/java/org/schabi/newpipe/RouterActivity.java index 50639c5ae..5e25079b5 100644 --- a/app/src/main/java/org/schabi/newpipe/RouterActivity.java +++ b/app/src/main/java/org/schabi/newpipe/RouterActivity.java @@ -316,7 +316,8 @@ public class RouterActivity extends AppCompatActivity { if (choiceChecker.isAvailableAndSelected( R.string.video_player_key, R.string.background_player_key, - R.string.popup_player_key)) { + R.string.popup_player_key, + R.string.enqueue_key)) { final String selectedChoice = choiceChecker.getSelectedChoiceKey(); @@ -329,6 +330,8 @@ public class RouterActivity extends AppCompatActivity { || selectedChoice.equals(getString(R.string.popup_player_key)); final boolean isAudioPlayerSelected = selectedChoice.equals(getString(R.string.background_player_key)); + final boolean isEnqueueSelected = + selectedChoice.equals(getString(R.string.enqueue_key)); if (currentLinkType != LinkType.STREAM && ((isExtAudioEnabled && isAudioPlayerSelected) @@ -345,7 +348,9 @@ public class RouterActivity extends AppCompatActivity { // Check if the service supports the choice if ((isVideoPlayerSelected && capabilities.contains(VIDEO)) - || (isAudioPlayerSelected && capabilities.contains(AUDIO))) { + || (isAudioPlayerSelected && capabilities.contains(AUDIO)) + || (isEnqueueSelected && (capabilities.contains(VIDEO) + || capabilities.contains(AUDIO)))) { handleChoice(selectedChoice); } else { handleChoice(getString(R.string.show_info_key)); @@ -544,7 +549,10 @@ public class RouterActivity extends AppCompatActivity { // not be added to a playlist returnedItems.add(new AdapterChoiceItem(getString(R.string.add_to_playlist_key), getString(R.string.add_to_playlist), - R.drawable.ic_add)); + R.drawable.ic_playlist_add)); + + returnedItems.add(new AdapterChoiceItem(getString(R.string.enqueue_key), + getString(R.string.enqueue_stream), R.drawable.ic_add)); } else { // LinkType.NONE is never present because it's filtered out before // channels and playlist can be played as they contain a list of videos @@ -1016,6 +1024,8 @@ public class RouterActivity extends AppCompatActivity { NavigationHelper.playOnBackgroundPlayer(this, playQueue, true); } else if (choice.playerChoice.equals(popupPlayerKey)) { NavigationHelper.playOnPopupPlayer(this, playQueue, true); + } else if (choice.playerChoice.equals(getString(R.string.enqueue_key))) { + NavigationHelper.enqueueOnPlayer(this, playQueue); } }; } diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index 352e4cec1..ab6e9e345 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -479,6 +479,7 @@ popup_player download add_to_playlist + enqueue always_ask_player @@ -488,6 +489,7 @@ @string/popup_player @string/download @string/add_to_playlist + @string/enqueue_stream @string/always_ask_open_action @@ -498,6 +500,7 @@ @string/download_key @string/add_to_playlist_key @string/always_ask_open_action_key + @string/enqueue_key