Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a01d0ca4 authored by Jeff Chen's avatar Jeff Chen Committed by Android (Google) Code Review
Browse files

Merge "Fix crash loop when compose_bouncer is on. Flag guard is already...

Merge "Fix crash loop when compose_bouncer is on. Flag guard is already performed at BouncerViewBinder#bind." into main
parents e907dd8b a8c8667e
Loading
Loading
Loading
Loading
+21 −1
Original line number Diff line number Diff line
package com.android.systemui.bouncer.ui.binder

import android.view.ViewGroup
import androidx.activity.OnBackPressedDispatcher
import androidx.activity.OnBackPressedDispatcherOwner
import androidx.activity.setViewTreeOnBackPressedDispatcherOwner
import androidx.compose.ui.platform.ComposeView
import androidx.core.view.isVisible
import androidx.lifecycle.Lifecycle
@@ -30,8 +33,25 @@ object ComposeBouncerViewBinder {
    ) {
        view.addView(
            ComposeView(view.context).apply {
                repeatWhenAttached {
                    repeatOnLifecycle(Lifecycle.State.CREATED) {
                        setViewTreeOnBackPressedDispatcherOwner(
                            object : OnBackPressedDispatcherOwner {
                                override val onBackPressedDispatcher =
                                    OnBackPressedDispatcher().apply {
                                        setOnBackInvokedDispatcher(
                                            view.viewRootImpl.onBackInvokedDispatcher
                                        )
                                    }

                                override val lifecycle: Lifecycle =
                                    this@repeatWhenAttached.lifecycle
                            }
                        )
                        setContent { PlatformTheme { BouncerContent(viewModel, dialogFactory) } }
                    }
                }
            }
        )

        view.repeatWhenAttached {