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