From 6ab5743f9441d7150604c4d6127635137f8c34cf Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Sun, 26 Jul 2026 22:52:34 +0200 Subject: [PATCH] fix(pip): fix wrong player source --- android/src/main/java/dev/zoriya/omni/OmniPlayer.kt | 9 +++++++++ android/src/main/java/dev/zoriya/omni/OmniView.kt | 9 ++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/android/src/main/java/dev/zoriya/omni/OmniPlayer.kt b/android/src/main/java/dev/zoriya/omni/OmniPlayer.kt index bdd3b38..cc7d36d 100644 --- a/android/src/main/java/dev/zoriya/omni/OmniPlayer.kt +++ b/android/src/main/java/dev/zoriya/omni/OmniPlayer.kt @@ -540,6 +540,15 @@ class OmniPlayerService : MediaSessionService() { triggerNotificationUpdate() } + override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { + val current = OmniPlayer.notificationPlayer + if (current != null && ::mediaSession.isInitialized && mediaSession.player !== current) { + player = current + mediaSession.player = current + } + return super.onStartCommand(intent, flags, startId) + } + private fun createImmediateNotification(): Notification { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { val channel = NotificationChannel( diff --git a/android/src/main/java/dev/zoriya/omni/OmniView.kt b/android/src/main/java/dev/zoriya/omni/OmniView.kt index efcb448..397d627 100755 --- a/android/src/main/java/dev/zoriya/omni/OmniView.kt +++ b/android/src/main/java/dev/zoriya/omni/OmniView.kt @@ -185,8 +185,7 @@ class OmniView(val context: ThemedReactContext) : return } - val omniPlayer = boundPlayer ?: return - if (!omniPlayer.isPlaying) { + if (boundPlayer == null || boundPlayer?.localPlayer?.isPlaying != true) { return } @@ -220,7 +219,7 @@ class OmniView(val context: ThemedReactContext) : val autoEnterEnabled = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && autoPip == true && - boundPlayer?.isPlaying == true + boundPlayer?.localPlayer?.isPlaying == true activity.setPictureInPictureParams(buildPipParams(autoEnterEnabled)) } @@ -270,7 +269,7 @@ class OmniView(val context: ThemedReactContext) : if (context.currentActivity !== activity || autoPip != true || boundPlayer == null) { return } - if (!afterEnteredPip && boundPlayer?.isPlaying != true) return + if (!afterEnteredPip && boundPlayer?.localPlayer?.isPlaying != true) return isolateUiForPip(activity) } @@ -337,7 +336,7 @@ class OmniView(val context: ThemedReactContext) : override fun surfaceCreated(holder: SurfaceHolder) { surfaceReady = true boundPlayer?.setVideoView(surfaceView) - if (boundPlayer?.isPlaying == true) pendingVideoRebuild = true + if (boundPlayer?.localPlayer?.isPlaying == true) pendingVideoRebuild = true updatePictureInPictureParams() }