From 73621ef2dafccbda6d5a7237892db047b16bc6a1 Mon Sep 17 00:00:00 2001 From: "dima.avdeev" Date: Fri, 8 Dec 2023 11:27:41 +0400 Subject: [PATCH] fix setContent --- .../compose/ui/window/ComposeSceneMediator.uikit.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/compose/ui/ui/src/uikitMain/kotlin/androidx/compose/ui/window/ComposeSceneMediator.uikit.kt b/compose/ui/ui/src/uikitMain/kotlin/androidx/compose/ui/window/ComposeSceneMediator.uikit.kt index 8c29a06bd130e..e485a924eabe4 100644 --- a/compose/ui/ui/src/uikitMain/kotlin/androidx/compose/ui/window/ComposeSceneMediator.uikit.kt +++ b/compose/ui/ui/src/uikitMain/kotlin/androidx/compose/ui/window/ComposeSceneMediator.uikit.kt @@ -171,6 +171,16 @@ internal class ComposeSceneMediator( } private var onAttachedToWindow: (() -> Unit)? = null + private fun whenViewShown(action: () -> Unit) { + if (view.window == null) { + onAttachedToWindow = { + onAttachedToWindow = null + action() + } + } else { + action() + } + } init { view.onAttachedToWindow = { @@ -183,8 +193,7 @@ internal class ComposeSceneMediator( } fun setContent(content: @Composable () -> Unit) { - onAttachedToWindow = { - onAttachedToWindow = null + whenViewShown { scene.setContent { /** * TODO isReadyToShowContent it is workaround we need to fix.