From 3903e89781f9a999ef6340ac1fdc8863ad4e00a4 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Mon, 22 Jul 2024 20:59:48 +0200 Subject: [PATCH] foo --- .../net/newpipe/newplayer/ui/VideoPlayerUI.kt | 82 ++++++++++++------- 1 file changed, 53 insertions(+), 29 deletions(-) diff --git a/new-player/src/main/java/net/newpipe/newplayer/ui/VideoPlayerUI.kt b/new-player/src/main/java/net/newpipe/newplayer/ui/VideoPlayerUI.kt index bc6723f..5dc169c 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/ui/VideoPlayerUI.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/ui/VideoPlayerUI.kt @@ -104,27 +104,47 @@ fun VideoPlayerUI( Surface( modifier = Modifier .fillMaxWidth() - .aspectRatio(uiState.uiRatio), - color = Color.Black + .aspectRatio(uiState.uiRatio), color = Color.Black ) { - Box(contentAlignment = Alignment.Center){ - AndroidView( - modifier = Modifier.also { modifier -> - when (uiState.contentFitMode) { - ContentFitMode.FILL -> modifier.fillMaxSize() - ContentFitMode.FIT_INSIDE -> if (uiState.contentRatio < uiState.uiRatio) { - modifier.fillMaxHeight().aspectRatio(uiState.contentRatio) - } else if (uiState.uiRatio < uiState.contentRatio) { - modifier.fillMaxWidth().aspectRatio(uiState.contentRatio) - } - ContentFitMode.ZOOM -> if(uiState.uiRatio < uiState.contentRatio) { - modifier.fillMaxHeight().aspectRatio(uiState.contentRatio) - } else if (uiState.contentRatio < uiState.uiRatio) { - modifier.fillMaxWidth().aspectRatio(uiState.contentRatio) - } + Box(contentAlignment = Alignment.Center) { + val viewBoxModifier = Modifier + when (uiState.contentFitMode) { + ContentFitMode.FILL -> { + println("fit mode fill") + viewBoxModifier.fillMaxSize() + } + + ContentFitMode.FIT_INSIDE -> { + println("fit mode fit inside:") + if (uiState.contentRatio < uiState.uiRatio) { + println("fit mode fill max height") + viewBoxModifier + .fillMaxHeight() + .aspectRatio(uiState.contentRatio) + } else if (uiState.uiRatio < uiState.contentRatio) { + println("fit mode fill max width") + viewBoxModifier + .fillMaxWidth() + .aspectRatio(uiState.contentRatio) } - }, - factory = { context -> + } + + ContentFitMode.ZOOM -> { + println("fit mode zoom:") + if (uiState.uiRatio < uiState.contentRatio) { + viewBoxModifier + .fillMaxHeight() + .aspectRatio(uiState.contentRatio) + } else if (uiState.contentRatio < uiState.uiRatio) { + viewBoxModifier + .fillMaxWidth() + .aspectRatio(uiState.contentRatio) + } + } + } + + Box(modifier = viewBoxModifier) { + AndroidView(factory = { context -> SurfaceView(context).also { view -> viewModel.player?.setVideoSurfaceView(view) } @@ -137,22 +157,26 @@ fun VideoPlayerUI( else -> Unit } }) + Surface(color = Color.Green, modifier = Modifier.fillMaxSize()) { - VideoPlayerControllerUI( - isPlaying = uiState.playing, - fullscreen = uiState.fullscreen, - play = viewModel::play, - pause = viewModel::pause, - prevStream = viewModel::prevStream, - nextStream = viewModel::nextStream, - switchToFullscreen = viewModel::switchToFullscreen, - switchToEmbeddedView = viewModel::switchToEmbeddedView - ) + } + } } + VideoPlayerControllerUI( + isPlaying = uiState.playing, + fullscreen = uiState.fullscreen, + play = viewModel::play, + pause = viewModel::pause, + prevStream = viewModel::prevStream, + nextStream = viewModel::nextStream, + switchToFullscreen = viewModel::switchToFullscreen, + switchToEmbeddedView = viewModel::switchToEmbeddedView + ) } } } + @Preview(device = "spec:width=1080px,height=700px,dpi=440,orientation=landscape") @Composable fun PlayerUIPreviewEmbeded() {