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

Commit 1df1978c authored by Chandru S's avatar Chandru S
Browse files

Wire-up new flexiglass bouncer to work with existing keyguard codde

Checking in the initial version, this will be refined in follow-up CLs that handle transitions and OnDismiss actions better.

Test: everything builds
Bug: 310005730
Flag: ACONFIG com.android.systemui.compose_bouncer DEVELOPMENT
Change-Id: I5cb304d33ab3e26ad23fdbf64ecf5b58e2abd43f
parent 986ba6ac
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -207,6 +207,13 @@ flag {
   bug: "308676488"
}

flag {
    name: "compose_bouncer"
    namespace: "systemui"
    description: "Use the new compose bouncer in SystemUI"
    bug: "310005730"
}

flag {
   name: "media_in_scene_container"
   namespace: "systemui"
+8 −0
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@ import android.view.View
import android.view.WindowInsets
import androidx.activity.ComponentActivity
import androidx.lifecycle.LifecycleOwner
import com.android.systemui.bouncer.ui.BouncerDialogFactory
import com.android.systemui.bouncer.ui.viewmodel.BouncerViewModel
import com.android.systemui.communal.ui.viewmodel.BaseCommunalViewModel
import com.android.systemui.people.ui.viewmodel.PeopleViewModel
import com.android.systemui.qs.footer.ui.viewmodel.FooterActionsViewModel
@@ -85,6 +87,12 @@ object ComposeFacade : BaseComposeFacade {
        throwComposeUnavailableError()
    }

    override fun createBouncer(
        context: Context,
        viewModel: BouncerViewModel,
        dialogFactory: BouncerDialogFactory,
    ): View = throwComposeUnavailableError()

    private fun throwComposeUnavailableError(): Nothing {
        error(
            "Compose is not available. Make sure to check isComposeAvailable() before calling any" +
+13 −0
Original line number Diff line number Diff line
@@ -28,6 +28,9 @@ import androidx.compose.ui.unit.dp
import androidx.lifecycle.LifecycleOwner
import com.android.compose.theme.PlatformTheme
import com.android.compose.ui.platform.DensityAwareComposeView
import com.android.systemui.bouncer.ui.BouncerDialogFactory
import com.android.systemui.bouncer.ui.composable.BouncerContent
import com.android.systemui.bouncer.ui.viewmodel.BouncerViewModel
import com.android.systemui.common.ui.compose.windowinsets.CutoutLocation
import com.android.systemui.common.ui.compose.windowinsets.DisplayCutout
import com.android.systemui.common.ui.compose.windowinsets.DisplayCutoutProvider
@@ -171,4 +174,14 @@ object ComposeFacade : BaseComposeFacade {
    private fun Int.toDp(context: Context): Dp {
        return (this.toFloat() / context.resources.displayMetrics.density).dp
    }

    override fun createBouncer(
        context: Context,
        viewModel: BouncerViewModel,
        dialogFactory: BouncerDialogFactory,
    ): View {
        return ComposeView(context).apply {
            setContent { PlatformTheme { BouncerContent(viewModel, dialogFactory) } }
        }
    }
}
+0 −20
Original line number Diff line number Diff line
@@ -16,34 +16,14 @@

package com.android.systemui.scene

import android.app.AlertDialog
import android.content.Context
import com.android.systemui.bouncer.ui.composable.BouncerDialogFactory
import com.android.systemui.bouncer.ui.composable.BouncerScene
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.scene.shared.model.Scene
import com.android.systemui.statusbar.phone.SystemUIDialog
import dagger.Binds
import dagger.Module
import dagger.Provides
import dagger.multibindings.IntoSet

@Module
interface BouncerSceneModule {

    @Binds @IntoSet fun bouncerScene(scene: BouncerScene): Scene

    companion object {

        @Provides
        @SysUISingleton
        fun bouncerSceneDialogFactory(@Application context: Context): BouncerDialogFactory {
            return object : BouncerDialogFactory {
                override fun invoke(): AlertDialog {
                    return SystemUIDialog(context)
                }
            }
        }
    }
}
+1 −4
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ import com.android.compose.animation.scene.transitions
import com.android.compose.modifiers.thenIf
import com.android.compose.windowsizeclass.LocalWindowSizeClass
import com.android.systemui.bouncer.shared.model.BouncerActionButtonModel
import com.android.systemui.bouncer.ui.BouncerDialogFactory
import com.android.systemui.bouncer.ui.helper.BouncerSceneLayout
import com.android.systemui.bouncer.ui.viewmodel.AuthMethodBouncerViewModel
import com.android.systemui.bouncer.ui.viewmodel.BouncerViewModel
@@ -824,10 +825,6 @@ private fun UserSwitcherDropdownMenu(
    }
}

interface BouncerDialogFactory {
    operator fun invoke(): AlertDialog
}

/**
 * Calculates an alpha for the user switcher and bouncer such that it's at `1` when the offset of
 * the two reaches a stopping point but `0` in the middle of the transition.
Loading