Skip to content

Commit 12e749e

Browse files
fixed lifecycle management in EpisodePreviewOverlay by stopping and releasing ExoPlayer on pause, stop, and destroy events
1 parent 12bce0a commit 12e749e

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

app/src/main/java/org/jellyfin/androidtv/ui/composable/item/EpisodePreviewOverlay.kt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -241,14 +241,23 @@ fun EpisodePreviewOverlay(
241241
DisposableEffect(lifecycleOwner, exoPlayer) {
242242
val observer = LifecycleEventObserver { _, event ->
243243
when (event) {
244-
Lifecycle.Event.ON_PAUSE -> exoPlayer?.pause()
245-
Lifecycle.Event.ON_RESUME -> exoPlayer?.play()
244+
Lifecycle.Event.ON_PAUSE,
245+
Lifecycle.Event.ON_STOP,
246+
Lifecycle.Event.ON_DESTROY -> {
247+
exoPlayer?.stop()
248+
exoPlayer?.release()
249+
exoPlayer = null
250+
isPlaying = false
251+
}
246252
else -> {}
247253
}
248254
}
249255
lifecycleOwner.lifecycle.addObserver(observer)
250256
if (!lifecycleOwner.lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)) {
251-
exoPlayer?.pause()
257+
exoPlayer?.stop()
258+
exoPlayer?.release()
259+
exoPlayer = null
260+
isPlaying = false
252261
}
253262
onDispose { lifecycleOwner.lifecycle.removeObserver(observer) }
254263
}

0 commit comments

Comments
 (0)