mirror of
https://gitlab.futo.org/videostreaming/grayjay.git
synced 2025-09-12 12:32:27 +00:00
casting: apply a0f4cc76
This commit is contained in:
parent
3de5cd92ae
commit
b562e66b8b
2 changed files with 15 additions and 16 deletions
|
@ -438,7 +438,7 @@ class VideoDetailFragment() : MainFragment() {
|
||||||
|
|
||||||
fun onUserLeaveHint() {
|
fun onUserLeaveHint() {
|
||||||
val viewDetail = _viewDetail;
|
val viewDetail = _viewDetail;
|
||||||
Logger.i(TAG, "onUserLeaveHint preventPictureInPicture=${viewDetail?.preventPictureInPicture} isCasting=${StateCasting.instance.isCasting} isBackgroundPictureInPicture=${Settings.instance.playback.isBackgroundPictureInPicture()} allowBackground=${viewDetail?.allowBackground}");
|
Logger.i(TAG, "onUserLeaveHint preventPictureInPicture=${viewDetail?.preventPictureInPicture} isCasting=${StateCasting.instance.isCasting} isBackgroundPictureInPicture=${Settings.instance.playback.isBackgroundPictureInPicture()} allowBackground=${viewDetail?.isAudioOnlyUserAction}");
|
||||||
|
|
||||||
if (viewDetail === null) {
|
if (viewDetail === null) {
|
||||||
return
|
return
|
||||||
|
@ -447,7 +447,7 @@ class VideoDetailFragment() : MainFragment() {
|
||||||
if (viewDetail.shouldEnterPictureInPicture) {
|
if (viewDetail.shouldEnterPictureInPicture) {
|
||||||
_leavingPiP = false
|
_leavingPiP = false
|
||||||
}
|
}
|
||||||
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.S && 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.isAudioOnlyUserAction) {
|
||||||
val params = _viewDetail?.getPictureInPictureParams();
|
val params = _viewDetail?.getPictureInPictureParams();
|
||||||
if(params != null) {
|
if(params != null) {
|
||||||
Logger.i(TAG, "enterPictureInPictureMode")
|
Logger.i(TAG, "enterPictureInPictureMode")
|
||||||
|
@ -527,7 +527,7 @@ class VideoDetailFragment() : MainFragment() {
|
||||||
|
|
||||||
private fun stopIfRequired() {
|
private fun stopIfRequired() {
|
||||||
var shouldStop = true;
|
var shouldStop = true;
|
||||||
if (_viewDetail?.allowBackground == true) {
|
if (_viewDetail?.isAudioOnlyUserAction == true) {
|
||||||
shouldStop = false;
|
shouldStop = false;
|
||||||
} else if (Settings.instance.playback.isBackgroundPictureInPicture() && !_leavingPiP) {
|
} else if (Settings.instance.playback.isBackgroundPictureInPicture() && !_leavingPiP) {
|
||||||
shouldStop = false;
|
shouldStop = false;
|
||||||
|
|
|
@ -324,7 +324,7 @@ class VideoDetailView : ConstraintLayout {
|
||||||
val onEnterPictureInPicture = Event0();
|
val onEnterPictureInPicture = Event0();
|
||||||
val onVideoChanged = Event2<Int, Int>()
|
val onVideoChanged = Event2<Int, Int>()
|
||||||
|
|
||||||
var allowBackground: Boolean = false
|
var isAudioOnlyUserAction: Boolean = false
|
||||||
private set(value) {
|
private set(value) {
|
||||||
if (field != value) {
|
if (field != value) {
|
||||||
field = value
|
field = value
|
||||||
|
@ -336,7 +336,7 @@ class VideoDetailView : ConstraintLayout {
|
||||||
get() = !preventPictureInPicture &&
|
get() = !preventPictureInPicture &&
|
||||||
!StateCasting.instance.isCasting &&
|
!StateCasting.instance.isCasting &&
|
||||||
Settings.instance.playback.isBackgroundPictureInPicture() &&
|
Settings.instance.playback.isBackgroundPictureInPicture() &&
|
||||||
!allowBackground &&
|
!isAudioOnlyUserAction &&
|
||||||
isPlaying
|
isPlaying
|
||||||
|
|
||||||
val onShouldEnterPictureInPictureChanged = Event0();
|
val onShouldEnterPictureInPictureChanged = Event0();
|
||||||
|
@ -759,7 +759,7 @@ class VideoDetailView : ConstraintLayout {
|
||||||
MediaControlReceiver.onBackgroundReceived.subscribe(this) {
|
MediaControlReceiver.onBackgroundReceived.subscribe(this) {
|
||||||
Logger.i(TAG, "MediaControlReceiver.onBackgroundReceived")
|
Logger.i(TAG, "MediaControlReceiver.onBackgroundReceived")
|
||||||
_player.switchToAudioMode(video);
|
_player.switchToAudioMode(video);
|
||||||
allowBackground = true;
|
isAudioOnlyUserAction = true;
|
||||||
StateApp.instance.contextOrNull?.let {
|
StateApp.instance.contextOrNull?.let {
|
||||||
try {
|
try {
|
||||||
if (it is MainActivity) {
|
if (it is MainActivity) {
|
||||||
|
@ -1004,14 +1004,14 @@ class VideoDetailView : ConstraintLayout {
|
||||||
}
|
}
|
||||||
_slideUpOverlay?.hide();
|
_slideUpOverlay?.hide();
|
||||||
} else null,
|
} else null,
|
||||||
if (!isLimitedVersion) RoundButton(context, R.drawable.ic_screen_share, if (allowBackground) context.getString(R.string.background_revert) else context.getString(R.string.background), TAG_BACKGROUND) {
|
if (!isLimitedVersion) RoundButton(context, R.drawable.ic_screen_share, if (isAudioOnlyUserAction) context.getString(R.string.background_revert) else context.getString(R.string.background), TAG_BACKGROUND) {
|
||||||
if (!allowBackground) {
|
if (!isAudioOnlyUserAction) {
|
||||||
_player.switchToAudioMode(video);
|
_player.switchToAudioMode(video);
|
||||||
allowBackground = true;
|
isAudioOnlyUserAction = true;
|
||||||
it.text.text = resources.getString(R.string.background_revert);
|
it.text.text = resources.getString(R.string.background_revert);
|
||||||
} else {
|
} else {
|
||||||
_player.switchToVideoMode();
|
_player.switchToVideoMode();
|
||||||
allowBackground = false;
|
isAudioOnlyUserAction = false;
|
||||||
it.text.text = resources.getString(R.string.background);
|
it.text.text = resources.getString(R.string.background);
|
||||||
}
|
}
|
||||||
_slideUpOverlay?.hide();
|
_slideUpOverlay?.hide();
|
||||||
|
@ -1151,9 +1151,9 @@ class VideoDetailView : ConstraintLayout {
|
||||||
|
|
||||||
if(_player.isAudioMode) {
|
if(_player.isAudioMode) {
|
||||||
//Requested behavior to leave it in audio mode. leaving it commented if it causes issues, revert?
|
//Requested behavior to leave it in audio mode. leaving it commented if it causes issues, revert?
|
||||||
if(!allowBackground) {
|
if(!isAudioOnlyUserAction) {
|
||||||
_player.switchToVideoMode();
|
_player.switchToVideoMode();
|
||||||
allowBackground = false;
|
isAudioOnlyUserAction = false;
|
||||||
_buttonPins.getButtonByTag(TAG_BACKGROUND)?.text?.text = resources.getString(R.string.background);
|
_buttonPins.getButtonByTag(TAG_BACKGROUND)?.text?.text = resources.getString(R.string.background);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1171,7 +1171,7 @@ class VideoDetailView : ConstraintLayout {
|
||||||
if (StateCasting.instance.isCasting)
|
if (StateCasting.instance.isCasting)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(allowBackground)
|
if(isAudioOnlyUserAction)
|
||||||
StatePlayer.instance.startOrUpdateMediaSession(context, video);
|
StatePlayer.instance.startOrUpdateMediaSession(context, video);
|
||||||
else {
|
else {
|
||||||
when (Settings.instance.playback.backgroundPlay) {
|
when (Settings.instance.playback.backgroundPlay) {
|
||||||
|
@ -1179,7 +1179,6 @@ class VideoDetailView : ConstraintLayout {
|
||||||
1 -> {
|
1 -> {
|
||||||
if(!(video?.isLive ?: false)) {
|
if(!(video?.isLive ?: false)) {
|
||||||
_player.switchToAudioMode(video);
|
_player.switchToAudioMode(video);
|
||||||
allowBackground = true;
|
|
||||||
}
|
}
|
||||||
StatePlayer.instance.startOrUpdateMediaSession(context, video);
|
StatePlayer.instance.startOrUpdateMediaSession(context, video);
|
||||||
}
|
}
|
||||||
|
@ -1965,10 +1964,10 @@ class VideoDetailView : ConstraintLayout {
|
||||||
|
|
||||||
if (isLimitedVersion && _player.isAudioMode) {
|
if (isLimitedVersion && _player.isAudioMode) {
|
||||||
_player.switchToVideoMode()
|
_player.switchToVideoMode()
|
||||||
allowBackground = false;
|
isAudioOnlyUserAction = false;
|
||||||
} else {
|
} else {
|
||||||
val thumbnail = video.thumbnails.getHQThumbnail();
|
val thumbnail = video.thumbnails.getHQThumbnail();
|
||||||
if ((videoSource == null || _player.isAudioMode) && !thumbnail.isNullOrBlank())
|
if ((videoSource == null) && !thumbnail.isNullOrBlank()) // || _player.isAudioMode
|
||||||
Glide.with(context).asBitmap().load(thumbnail)
|
Glide.with(context).asBitmap().load(thumbnail)
|
||||||
.into(object: CustomTarget<Bitmap>() {
|
.into(object: CustomTarget<Bitmap>() {
|
||||||
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
|
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue