mirror of
https://github.com/jellyfin/jellyfin-android.git
synced 2026-09-02 21:04:10 +03:00
Fix PiP behavior
This commit is contained in:
committed by
Niels van Velzen
parent
b4d4837fda
commit
dde3d88f60
@@ -100,7 +100,10 @@ class PlayerFragment : Fragment(), BackPressInterceptor {
|
||||
// Observe ViewModel
|
||||
viewModel.player.observe(this) { player ->
|
||||
playerView.player = player
|
||||
if (player == null) parentFragmentManager.popBackStack()
|
||||
// Automatically close fragment, unless we're in PiP mode
|
||||
if (player == null && !(AndroidVersion.isAtLeastN && requireActivity().isInPictureInPictureMode)) {
|
||||
parentFragmentManager.popBackStack()
|
||||
}
|
||||
}
|
||||
viewModel.playerState.observe(this) { playerState ->
|
||||
val isPlaying = viewModel.playerOrNull?.isPlaying == true
|
||||
@@ -229,6 +232,11 @@ class PlayerFragment : Fragment(), BackPressInterceptor {
|
||||
if (isLandscape()) {
|
||||
playerFullscreenHelper.enableFullscreen()
|
||||
}
|
||||
|
||||
// If playback ended during picture in picture we'll return to the main app when PiP is closed
|
||||
if (viewModel.playerOrNull == null) {
|
||||
parentFragmentManager.popBackStack()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -359,7 +367,7 @@ class PlayerFragment : Fragment(), BackPressInterceptor {
|
||||
}
|
||||
|
||||
fun onUserLeaveHint() {
|
||||
if (AndroidVersion.isAtLeastN && viewModel.playerOrNull?.isPlaying == true) {
|
||||
if (AndroidVersion.isAtLeastN && viewModel.playerOrNull != null) {
|
||||
requireActivity().enterPictureInPicture()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user