From f5a1007f88966f64f5e025fe157447a4fd3ef8ed Mon Sep 17 00:00:00 2001 From: Vitor Pamplona <vitor@vitorpamplona.com> Date: Mon, 18 Mar 2024 16:23:00 -0400 Subject: [PATCH] Seeing if the performance improves when the factory becomes just another lambda --- .../amethyst/ui/components/VideoView.kt | 71 +++++++++---------- .../ui/screen/loggedIn/SearchScreen.kt | 2 - 2 files changed, 33 insertions(+), 40 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt index 3d7e00abc..3d288fa82 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt @@ -669,43 +669,6 @@ private fun RenderVideoPlayer( } } - val factory = - remember(controller) { - { context: Context -> - PlayerView(context).apply { - player = controller - layoutParams = - FrameLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.WRAP_CONTENT, - ) - setBackgroundColor(Color.Transparent.toArgb()) - setShutterBackgroundColor(Color.Transparent.toArgb()) - controllerAutoShow = false - thumbData?.thumb?.let { defaultArtwork = it } - hideController() - resizeMode = - if (maxHeight.isFinite) { - AspectRatioFrameLayout.RESIZE_MODE_FIT - } else { - AspectRatioFrameLayout.RESIZE_MODE_FIXED_WIDTH - } - onDialog?.let { innerOnDialog -> - setFullscreenButtonClickListener { - controller.pause() - innerOnDialog(it) - } - } - setControllerVisibilityListener( - PlayerView.ControllerVisibilityListener { visible -> - controllerVisible.value = visible == View.VISIBLE - onControllerVisibilityChanged?.let { callback -> callback(visible == View.VISIBLE) } - }, - ) - } - } - } - val ratio = remember { aspectRatio(dimensions) } if (ratio != null) { @@ -719,7 +682,39 @@ private fun RenderVideoPlayer( AndroidView( modifier = myModifier, - factory = factory, + factory = { context: Context -> + PlayerView(context).apply { + player = controller + layoutParams = + FrameLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT, + ) + setBackgroundColor(Color.Transparent.toArgb()) + setShutterBackgroundColor(Color.Transparent.toArgb()) + controllerAutoShow = false + thumbData?.thumb?.let { defaultArtwork = it } + hideController() + resizeMode = + if (maxHeight.isFinite) { + AspectRatioFrameLayout.RESIZE_MODE_FIT + } else { + AspectRatioFrameLayout.RESIZE_MODE_FIXED_WIDTH + } + onDialog?.let { innerOnDialog -> + setFullscreenButtonClickListener { + controller.pause() + innerOnDialog(it) + } + } + setControllerVisibilityListener( + PlayerView.ControllerVisibilityListener { visible -> + controllerVisible.value = visible == View.VISIBLE + onControllerVisibilityChanged?.let { callback -> callback(visible == View.VISIBLE) } + }, + ) + } + }, ) waveform?.let { Waveform(it, controller, remember { Modifier.align(Alignment.Center) }) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt index 3663ebf77..4f4a5abe8 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt @@ -36,7 +36,6 @@ import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -290,7 +289,6 @@ private fun SearchBar( } } -@OptIn(ExperimentalMaterial3Api::class) @Composable private fun SearchTextField( searchBarViewModel: SearchBarViewModel,