From f7ed4d2aaaea6da62d4367969bdf8b99d95eaa76 Mon Sep 17 00:00:00 2001 From: davotoula Date: Wed, 22 Oct 2025 09:26:14 +0100 Subject: [PATCH] =?UTF-8?q?NEEDS=20testing:=20Swapped=20the=20local=20var?= =?UTF-8?q?=20orientation=20by=20remember=20{=20mutableStateOf(...)=20}=20?= =?UTF-8?q?for=20an=20explicit=20MutableState:=20we=20now=20create=20orien?= =?UTF-8?q?tationState=20=3D=20remember(firstImage)=20{=20mutableStateOf(.?= =?UTF-8?q?..)=20},=20update=20it=20with=20=20=20=20=20orientationState.va?= =?UTF-8?q?lue=20=3D=20=E2=80=A6,=20and=20return=20orientationState.value.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../amethyst/ui/components/ImageGallery.kt | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ImageGallery.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ImageGallery.kt index 0aad95ea85..9c1599ce05 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ImageGallery.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ImageGallery.kt @@ -35,10 +35,8 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.unit.Dp @@ -90,13 +88,11 @@ private fun MediaUrlImage?.resolveOrientation( @Composable private fun rememberFirstImageOrientation(firstImage: MediaUrlImage?): FirstImageOrientation { - val initialOrientation = + val orientationState = remember(firstImage) { - firstImage.resolveOrientation(ASPECT_RATIO, PORTRAIT_ASPECT_RATIO) + mutableStateOf(firstImage.resolveOrientation(ASPECT_RATIO, PORTRAIT_ASPECT_RATIO)) } - var orientation by remember(firstImage) { mutableStateOf(initialOrientation) } - LaunchedEffect(firstImage) { if (firstImage == null) return@LaunchedEffect if (firstImage.dim?.hasSize() == true) return@LaunchedEffect @@ -104,14 +100,14 @@ private fun rememberFirstImageOrientation(firstImage: MediaUrlImage?): FirstImag while (isActive) { val ratio = firstImage.resolvedAspectRatio() if (ratio != null && ratio > 0f) { - orientation = FirstImageOrientation(ratio, ratio >= 1f) + orientationState.value = FirstImageOrientation(ratio, ratio >= 1f) break } delay(200) } } - return orientation + return orientationState.value } @Composable