diff --git a/app/src/main/java/hu/bbara/purefin/player/PlayerActivity.kt b/app/src/main/java/hu/bbara/purefin/player/PlayerActivity.kt index a1644600..dfec9a52 100644 --- a/app/src/main/java/hu/bbara/purefin/player/PlayerActivity.kt +++ b/app/src/main/java/hu/bbara/purefin/player/PlayerActivity.kt @@ -4,6 +4,7 @@ import android.os.Bundle import android.view.WindowManager import androidx.activity.ComponentActivity import androidx.activity.compose.setContent +import androidx.activity.viewModels import androidx.compose.runtime.LaunchedEffect import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat @@ -17,6 +18,8 @@ import hu.bbara.purefin.ui.theme.AppTheme @AndroidEntryPoint class PlayerActivity : ComponentActivity() { + private val viewModel: PlayerViewModel by viewModels() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -43,6 +46,16 @@ class PlayerActivity : ComponentActivity() { } } + override fun onPause() { + super.onPause() + viewModel.pausePlayback() + } + + override fun onResume() { + super.onResume() + enterImmersiveMode() + } + private fun enterImmersiveMode() { WindowCompat.setDecorFitsSystemWindows(window, false) WindowInsetsControllerCompat(window, window.decorView).apply { diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/player/PlayerScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/player/PlayerScreen.kt index bfe4ecaf..6d018a75 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/screen/player/PlayerScreen.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/screen/player/PlayerScreen.kt @@ -36,8 +36,6 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView -import androidx.lifecycle.Lifecycle -import androidx.lifecycle.compose.LifecycleEventEffect import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.media3.common.util.UnstableApi import androidx.media3.ui.AspectRatioFrameLayout @@ -84,10 +82,6 @@ fun PlayerScreen( var horizontalSeekPreviewPositionMs by remember { mutableStateOf(null) } val overlayController = rememberPersistentOverlayController() - LifecycleEventEffect(Lifecycle.Event.ON_STOP) { - viewModel.pausePlayback() - } - LaunchedEffect(uiState.isPlaying) { if (uiState.isPlaying) { showQueuePanel = false @@ -116,6 +110,9 @@ fun PlayerScreen( subtitleView?.setBottomPaddingFraction(subtitleBottomPaddingFraction) } }, + onRelease = { playerView -> + playerView.player = null + }, modifier = Modifier .fillMaxHeight() .align(Alignment.Center)