Show "Show info" instead of "Video player" if a stream is playing not on the main player when sharing something to NewPipe
This commit is contained in:
parent
1d42e45d78
commit
bb882ada2c
|
@ -40,7 +40,9 @@ import org.schabi.newpipe.extractor.exceptions.ExtractionException;
|
||||||
import org.schabi.newpipe.extractor.playlist.PlaylistInfo;
|
import org.schabi.newpipe.extractor.playlist.PlaylistInfo;
|
||||||
import org.schabi.newpipe.extractor.stream.StreamInfo;
|
import org.schabi.newpipe.extractor.stream.StreamInfo;
|
||||||
import org.schabi.newpipe.extractor.stream.VideoStream;
|
import org.schabi.newpipe.extractor.stream.VideoStream;
|
||||||
|
import org.schabi.newpipe.player.MainPlayer;
|
||||||
import org.schabi.newpipe.player.helper.PlayerHelper;
|
import org.schabi.newpipe.player.helper.PlayerHelper;
|
||||||
|
import org.schabi.newpipe.player.helper.PlayerHolder;
|
||||||
import org.schabi.newpipe.player.playqueue.ChannelPlayQueue;
|
import org.schabi.newpipe.player.playqueue.ChannelPlayQueue;
|
||||||
import org.schabi.newpipe.player.playqueue.PlayQueue;
|
import org.schabi.newpipe.player.playqueue.PlayQueue;
|
||||||
import org.schabi.newpipe.player.playqueue.PlaylistPlayQueue;
|
import org.schabi.newpipe.player.playqueue.PlaylistPlayQueue;
|
||||||
|
@ -394,15 +396,23 @@ public class RouterActivity extends AppCompatActivity {
|
||||||
// show both "show info" and "video player", they are two different activities
|
// show both "show info" and "video player", they are two different activities
|
||||||
returnList.add(showInfo);
|
returnList.add(showInfo);
|
||||||
returnList.add(videoPlayer);
|
returnList.add(videoPlayer);
|
||||||
} else if (capabilities.contains(VIDEO)
|
|
||||||
&& PlayerHelper.isAutoplayAllowedByUser(context)) {
|
|
||||||
// show only "video player" since the details activity will be opened and the video
|
|
||||||
// will be autoplayed there and "show info" would do the exact same thing
|
|
||||||
returnList.add(videoPlayer);
|
|
||||||
} else {
|
} else {
|
||||||
// show only "show info" if video player is not applicable or autoplay is disabled
|
final MainPlayer.PlayerType playerType = PlayerHolder.getType();
|
||||||
|
if (capabilities.contains(VIDEO)
|
||||||
|
&& PlayerHelper.isAutoplayAllowedByUser(context)
|
||||||
|
&& playerType == null || playerType == MainPlayer.PlayerType.VIDEO) {
|
||||||
|
// show only "video player" since the details activity will be opened and the
|
||||||
|
// video will be auto played there. Since "show info" would do the exact same
|
||||||
|
// thing, use that as a key to let VideoDetailFragment load the stream instead
|
||||||
|
// of using FetcherService (see comment in handleChoice())
|
||||||
|
returnList.add(new AdapterChoiceItem(
|
||||||
|
showInfo.key, videoPlayer.description, videoPlayer.icon));
|
||||||
|
} else {
|
||||||
|
// show only "show info" if video player is not applicable, auto play is
|
||||||
|
// disabled or a video is playing in a player different than the main one
|
||||||
returnList.add(showInfo);
|
returnList.add(showInfo);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (capabilities.contains(VIDEO)) {
|
if (capabilities.contains(VIDEO)) {
|
||||||
returnList.add(popupPlayer);
|
returnList.add(popupPlayer);
|
||||||
|
@ -489,7 +499,6 @@ public class RouterActivity extends AppCompatActivity {
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe(intent -> {
|
.subscribe(intent -> {
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
|
|
||||||
finish();
|
finish();
|
||||||
}, throwable -> handleError(throwable, currentUrl))
|
}, throwable -> handleError(throwable, currentUrl))
|
||||||
);
|
);
|
||||||
|
@ -657,42 +666,31 @@ public class RouterActivity extends AppCompatActivity {
|
||||||
final boolean isExtAudioEnabled = preferences.getBoolean(
|
final boolean isExtAudioEnabled = preferences.getBoolean(
|
||||||
getString(R.string.use_external_audio_player_key), false);
|
getString(R.string.use_external_audio_player_key), false);
|
||||||
|
|
||||||
PlayQueue playQueue;
|
final PlayQueue playQueue;
|
||||||
final String playerChoice = choice.playerChoice;
|
|
||||||
|
|
||||||
if (info instanceof StreamInfo) {
|
if (info instanceof StreamInfo) {
|
||||||
if (playerChoice.equals(backgroundPlayerKey) && isExtAudioEnabled) {
|
if (choice.playerChoice.equals(backgroundPlayerKey) && isExtAudioEnabled) {
|
||||||
NavigationHelper.playOnExternalAudioPlayer(this, (StreamInfo) info);
|
NavigationHelper.playOnExternalAudioPlayer(this, (StreamInfo) info);
|
||||||
|
return;
|
||||||
} else if (playerChoice.equals(videoPlayerKey) && isExtVideoEnabled) {
|
} else if (choice.playerChoice.equals(videoPlayerKey) && isExtVideoEnabled) {
|
||||||
NavigationHelper.playOnExternalVideoPlayer(this, (StreamInfo) info);
|
NavigationHelper.playOnExternalVideoPlayer(this, (StreamInfo) info);
|
||||||
|
return;
|
||||||
} else {
|
}
|
||||||
playQueue = new SinglePlayQueue((StreamInfo) info);
|
playQueue = new SinglePlayQueue((StreamInfo) info);
|
||||||
|
} else if (info instanceof ChannelInfo) {
|
||||||
|
playQueue = new ChannelPlayQueue((ChannelInfo) info);
|
||||||
|
} else if (info instanceof PlaylistInfo) {
|
||||||
|
playQueue = new PlaylistPlayQueue((PlaylistInfo) info);
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (playerChoice.equals(videoPlayerKey)) {
|
if (choice.playerChoice.equals(videoPlayerKey)) {
|
||||||
NavigationHelper.playOnMainPlayer(this, playQueue);
|
NavigationHelper.playOnMainPlayer(this, playQueue);
|
||||||
} else if (playerChoice.equals(backgroundPlayerKey)) {
|
} else if (choice.playerChoice.equals(backgroundPlayerKey)) {
|
||||||
NavigationHelper.playOnBackgroundPlayer(this, playQueue, true);
|
NavigationHelper.playOnBackgroundPlayer(this, playQueue, true);
|
||||||
} else if (playerChoice.equals(popupPlayerKey)) {
|
} else if (choice.playerChoice.equals(popupPlayerKey)) {
|
||||||
NavigationHelper.playOnPopupPlayer(this, playQueue, true);
|
NavigationHelper.playOnPopupPlayer(this, playQueue, true);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (info instanceof ChannelInfo || info instanceof PlaylistInfo) {
|
|
||||||
playQueue = info instanceof ChannelInfo
|
|
||||||
? new ChannelPlayQueue((ChannelInfo) info)
|
|
||||||
: new PlaylistPlayQueue((PlaylistInfo) info);
|
|
||||||
|
|
||||||
if (playerChoice.equals(videoPlayerKey)) {
|
|
||||||
NavigationHelper.playOnMainPlayer(this, playQueue);
|
|
||||||
} else if (playerChoice.equals(backgroundPlayerKey)) {
|
|
||||||
NavigationHelper.playOnBackgroundPlayer(this, playQueue, true);
|
|
||||||
} else if (playerChoice.equals(popupPlayerKey)) {
|
|
||||||
NavigationHelper.playOnPopupPlayer(this, playQueue, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue