mirror of
https://gitlab.futo.org/videostreaming/grayjay.git
synced 2025-04-19 19:14:51 +00:00
- fix PiP when player closed
- improve PiP speed on Android 12+
This commit is contained in:
parent
04c0679930
commit
3d863b9c89
2 changed files with 17 additions and 12 deletions
|
@ -269,6 +269,7 @@ class VideoDetailFragment() : MainFragment() {
|
|||
}
|
||||
fun closeVideoDetails() {
|
||||
Logger.i(TAG, "closeVideoDetails()")
|
||||
_viewDetail?.onPlayChanged?.emit(false)
|
||||
state = State.CLOSED;
|
||||
_viewDetail?.onStop();
|
||||
close();
|
||||
|
@ -294,12 +295,10 @@ class VideoDetailFragment() : MainFragment() {
|
|||
};
|
||||
viewDetail.onMaximize.subscribe { maximizeVideoDetail(it) };
|
||||
viewDetail.onPlayChanged.subscribe {
|
||||
if(isInPictureInPicture) {
|
||||
val params = _viewDetail?.getPictureInPictureParams();
|
||||
if (params != null)
|
||||
activity?.setPictureInPictureParams(params);
|
||||
}
|
||||
};
|
||||
val params = _viewDetail?.getPictureInPictureParams(it)
|
||||
if (params != null)
|
||||
activity?.setPictureInPictureParams(params)
|
||||
}
|
||||
viewDetail.onEnterPictureInPicture.subscribe {
|
||||
Logger.i(TAG, "onEnterPictureInPicture")
|
||||
isInPictureInPicture = true;
|
||||
|
@ -367,10 +366,10 @@ class VideoDetailFragment() : MainFragment() {
|
|||
val viewDetail = _viewDetail;
|
||||
Logger.i(TAG, "onUserLeaveHint preventPictureInPicture=${viewDetail?.preventPictureInPicture} isCasting=${StateCasting.instance.isCasting} isBackgroundPictureInPicture=${Settings.instance.playback.isBackgroundPictureInPicture()} allowBackground=${viewDetail?.allowBackground}");
|
||||
|
||||
if(viewDetail?.preventPictureInPicture == false && !StateCasting.instance.isCasting && Settings.instance.playback.isBackgroundPictureInPicture() && !viewDetail.allowBackground) {
|
||||
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.S && viewDetail?.preventPictureInPicture == false && !StateCasting.instance.isCasting && Settings.instance.playback.isBackgroundPictureInPicture() && !viewDetail.allowBackground) {
|
||||
_leavingPiP = false;
|
||||
|
||||
val params = _viewDetail?.getPictureInPictureParams();
|
||||
val params = _viewDetail?.getPictureInPictureParams(true);
|
||||
if(params != null) {
|
||||
Logger.i(TAG, "enterPictureInPictureMode")
|
||||
activity?.enterPictureInPictureMode(params);
|
||||
|
@ -379,7 +378,7 @@ class VideoDetailFragment() : MainFragment() {
|
|||
}
|
||||
|
||||
fun forcePictureInPicture() {
|
||||
val params = _viewDetail?.getPictureInPictureParams();
|
||||
val params = _viewDetail?.getPictureInPictureParams(true);
|
||||
if(params != null)
|
||||
activity?.enterPictureInPictureMode(params);
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ import android.graphics.drawable.BitmapDrawable
|
|||
import android.graphics.drawable.Drawable
|
||||
import android.graphics.drawable.Icon
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.support.v4.media.session.PlaybackStateCompat
|
||||
import android.text.Spanned
|
||||
import android.util.Log
|
||||
|
@ -2615,7 +2616,7 @@ class VideoDetailView(fragment: VideoDetailFragment, inflater: LayoutInflater) :
|
|||
fun handleLeavePictureInPicture() {
|
||||
Logger.i(TAG, "handleLeavePictureInPicture")
|
||||
}
|
||||
fun getPictureInPictureParams() : PictureInPictureParams {
|
||||
fun getPictureInPictureParams(isPlaying: Boolean) : PictureInPictureParams {
|
||||
var videoSourceWidth = _player.exoPlayer?.player?.videoSize?.width ?: 0;
|
||||
var videoSourceHeight = _player.exoPlayer?.player?.videoSize?.height ?: 0;
|
||||
|
||||
|
@ -2641,11 +2642,16 @@ class VideoDetailView(fragment: VideoDetailFragment, inflater: LayoutInflater) :
|
|||
else
|
||||
RemoteAction(Icon.createWithResource(context, R.drawable.ic_play_notif), context.getString(R.string.play), context.getString(R.string.resumes_the_video), MediaControlReceiver.getPlayIntent(context, 6));
|
||||
|
||||
return PictureInPictureParams.Builder()
|
||||
val params = PictureInPictureParams.Builder()
|
||||
.setAspectRatio(Rational(videoSourceWidth, videoSourceHeight))
|
||||
.setSourceRectHint(r)
|
||||
.setActions(listOf(playpauseAction))
|
||||
.build();
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
params.setAutoEnterEnabled(isPlaying)
|
||||
}
|
||||
|
||||
return params.build()
|
||||
}
|
||||
|
||||
//Other
|
||||
|
|
Loading…
Add table
Reference in a new issue