From 8064367e7a4566f6ea5749608003902b522ccd8b Mon Sep 17 00:00:00 2001 From: Barnabas Balogh Date: Wed, 27 May 2026 18:40:44 +0200 Subject: [PATCH] Revert "feat(player): enhance video aspect ratio handling and resize mode logic" This reverts commit b7186be4 --- .../purefin/ui/screen/player/PlayerScreen.kt | 40 ++----------------- 1 file changed, 4 insertions(+), 36 deletions(-) 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 a1415d98..0f0f6bb6 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 @@ -12,6 +12,7 @@ import androidx.compose.animation.slideOutHorizontally import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height @@ -23,7 +24,6 @@ import androidx.compose.material.icons.outlined.VolumeUp import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -39,8 +39,6 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.LifecycleEventEffect -import androidx.media3.common.Player -import androidx.media3.common.VideoSize import androidx.media3.common.util.UnstableApi import androidx.media3.ui.AspectRatioFrameLayout import androidx.media3.ui.PlayerView @@ -63,7 +61,6 @@ import kotlin.math.abs import kotlin.math.roundToInt private const val CONTROLS_VISIBLE_SUBTITLE_BOTTOM_PADDING_FRACTION = 0.32f -private const val WIDE_VIDEO_ASPECT_RATIO = 16f / 9f /** Small negative band below zero that represents adaptive/auto brightness mode. */ private const val AUTO_BRIGHTNESS_SENTINEL = -0.1f @@ -85,25 +82,12 @@ fun PlayerScreen( var showQueuePanel by remember { mutableStateOf(false) } var horizontalSeekFeedback by remember { mutableStateOf(null) } var horizontalSeekPreviewPositionMs by remember { mutableStateOf(null) } - var videoAspectRatio by remember { mutableStateOf(calculateVideoAspectRatio(viewModel.player.videoSize)) } val overlayController = rememberPersistentOverlayController() LifecycleEventEffect(Lifecycle.Event.ON_STOP) { viewModel.pausePlayback() } - DisposableEffect(viewModel.player) { - val listener = object : Player.Listener { - override fun onVideoSizeChanged(videoSize: VideoSize) { - videoAspectRatio = calculateVideoAspectRatio(videoSize) - } - } - viewModel.player.addListener(listener) - onDispose { - viewModel.player.removeListener(listener) - } - } - LaunchedEffect(uiState.isPlaying) { if (uiState.isPlaying) { showQueuePanel = false @@ -111,7 +95,6 @@ fun PlayerScreen( } val playerControlsVisible = controlsVisible || uiState.isEnded || uiState.error != null - val playerResizeMode = playerResizeMode(videoAspectRatio) val subtitleBottomPaddingFraction = if (playerControlsVisible) { CONTROLS_VISIBLE_SUBTITLE_BOTTOM_PADDING_FRACTION @@ -128,18 +111,18 @@ fun PlayerScreen( factory = { ctx -> PlayerView(ctx).apply { useController = false - resizeMode = playerResizeMode + resizeMode = AspectRatioFrameLayout.RESIZE_MODE_FIT player = viewModel.player subtitleView?.setBottomPaddingFraction(subtitleBottomPaddingFraction) } }, update = { it.player = viewModel.player - it.resizeMode = playerResizeMode it.subtitleView?.setBottomPaddingFraction(subtitleBottomPaddingFraction) }, modifier = Modifier - .fillMaxSize() + .fillMaxHeight() + .align(Alignment.Center) ) PlayerGesturesLayer( @@ -313,21 +296,6 @@ fun PlayerScreen( } } -@OptIn(UnstableApi::class) -private fun playerResizeMode(videoAspectRatio: Float): Int = - if (videoAspectRatio >= WIDE_VIDEO_ASPECT_RATIO) { - AspectRatioFrameLayout.RESIZE_MODE_ZOOM - } else { - AspectRatioFrameLayout.RESIZE_MODE_FIT - } - -private fun calculateVideoAspectRatio(videoSize: VideoSize): Float { - if (videoSize.width <= 0 || videoSize.height <= 0) { - return 0f - } - return videoSize.width * videoSize.pixelWidthHeightRatio / videoSize.height -} - @Composable private fun HiddenSeekTimeline( positionMs: Long,