From a284c1b9c665327fa9a80ff521ef11c3e59fbd22 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Sat, 21 Oct 2023 16:22:20 -0400 Subject: [PATCH] Fixes orientation changes when in full screen --- .../ui/components/ZoomableContentView.kt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt index 12dadbe74..a0bcc8699 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt @@ -60,6 +60,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalClipboardManager +import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalView import androidx.compose.ui.res.stringResource @@ -607,7 +608,6 @@ private fun DisplayBlurHash( ) } -@OptIn(ExperimentalFoundationApi::class) @Composable fun ZoomableImageDialog( imageUrl: ZoomableContent, @@ -615,6 +615,9 @@ fun ZoomableImageDialog( onDismiss: () -> Unit, accountViewModel: AccountViewModel ) { + val orientation = LocalConfiguration.current.orientation + println("This Log only exists to force orientation listener $orientation") + Dialog( onDismissRequest = onDismiss, properties = DialogProperties( @@ -623,6 +626,8 @@ fun ZoomableImageDialog( ) ) { val view = LocalView.current + val orientation = LocalConfiguration.current.orientation + println("This Log only exists to force orientation listener $orientation") val activityWindow = getActivityWindow() val dialogWindow = getDialogWindow() @@ -966,3 +971,13 @@ private tailrec fun Context.getActivityWindow(): Window? = is ContextWrapper -> baseContext.getActivityWindow() else -> null } + +@Composable +fun getActivity(): Activity? = LocalView.current.context.getActivity() + +private tailrec fun Context.getActivity(): Activity? = + when (this) { + is Activity -> this + is ContextWrapper -> baseContext.getActivity() + else -> null + }