From 52d705a8c4d81046d85e7dfb95bb1b2597ff8b0f Mon Sep 17 00:00:00 2001 From: Jordan Demeulenaere Date: Wed, 10 May 2023 14:49:11 +0200 Subject: [PATCH] Fix ComposeInitializerImpl to work with new lifecycle libraries Change-Id: Ie142cac242f2aca3793ed3b522919c79b4025c18 Merged-In: Ie142cac242f2aca3793ed3b522919c79b4025c18 Bug: 274722427 Test: SYSTEMUI_USE_COMPOSE=true m SystemUICompose --- .../systemui/compose/ComposeInitializerImpl.kt | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/SystemUI/compose/facade/enabled/src/com/android/systemui/compose/ComposeInitializerImpl.kt b/packages/SystemUI/compose/facade/enabled/src/com/android/systemui/compose/ComposeInitializerImpl.kt index fbd7f83ad350d..b84f71a0e68c5 100644 --- a/packages/SystemUI/compose/facade/enabled/src/com/android/systemui/compose/ComposeInitializerImpl.kt +++ b/packages/SystemUI/compose/facade/enabled/src/com/android/systemui/compose/ComposeInitializerImpl.kt @@ -17,9 +17,8 @@ package com.android.systemui.compose import android.view.View -import androidx.lifecycle.Lifecycle -import androidx.lifecycle.ViewTreeLifecycleOwner -import androidx.savedstate.SavedStateRegistry +import androidx.lifecycle.findViewTreeLifecycleOwner +import androidx.lifecycle.setViewTreeLifecycleOwner import androidx.savedstate.SavedStateRegistryController import androidx.savedstate.SavedStateRegistryOwner import com.android.compose.animation.ViewTreeSavedStateRegistryOwner @@ -27,7 +26,7 @@ import com.android.systemui.lifecycle.ViewLifecycleOwner internal object ComposeInitializerImpl : ComposeInitializer { override fun onAttachedToWindow(root: View) { - if (ViewTreeLifecycleOwner.get(root) != null) { + if (root.findViewTreeLifecycleOwner() != null) { error("root $root already has a LifecycleOwner") } @@ -54,7 +53,7 @@ internal object ComposeInitializerImpl : ComposeInitializer { override val savedStateRegistry = savedStateRegistryController.savedStateRegistry - override fun getLifecycle(): Lifecycle = lifecycleOwner.lifecycle + override val lifecycle = lifecycleOwner.lifecycle } // We must call [ViewLifecycleOwner.onCreate] after creating the [SavedStateRegistryOwner] @@ -64,13 +63,13 @@ internal object ComposeInitializerImpl : ComposeInitializer { // Set the owners on the root. They will be reused by any ComposeView inside the root // hierarchy. - ViewTreeLifecycleOwner.set(root, lifecycleOwner) + root.setViewTreeLifecycleOwner(lifecycleOwner) ViewTreeSavedStateRegistryOwner.set(root, savedStateRegistryOwner) } override fun onDetachedFromWindow(root: View) { - (ViewTreeLifecycleOwner.get(root) as ViewLifecycleOwner).onDestroy() - ViewTreeLifecycleOwner.set(root, null) + (root.findViewTreeLifecycleOwner() as ViewLifecycleOwner).onDestroy() + root.setViewTreeLifecycleOwner(null) ViewTreeSavedStateRegistryOwner.set(root, null) } }