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

Commit bf43b1d3 authored by Jordan Demeulenaere's avatar Jordan Demeulenaere
Browse files

Show the Compose implementation of PeopleSpace when Compose is available

Bug: 238993727
Test: Manual
Change-Id: I41a6bae879e5a1f4e12f9ff998fb7f5d1320e135
parent 68e91829
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ systemui_compose_java_defaults {

                "androidx.compose.runtime_runtime",
                "androidx.compose.material3_material3",
                "androidx.activity_activity-compose",
            ],

            // By default, Compose is disabled and we compile the ComposeFacade
+11 −0
Original line number Diff line number Diff line
@@ -17,10 +17,21 @@

package com.android.systemui.compose

import androidx.activity.ComponentActivity
import com.android.systemui.people.ui.viewmodel.PeopleViewModel

/** The Compose facade, when Compose is *not* available. */
object ComposeFacade : BaseComposeFacade {
    override fun isComposeAvailable(): Boolean = false

    override fun setPeopleSpaceActivityContent(
        activity: ComponentActivity,
        viewModel: PeopleViewModel,
        onResult: (PeopleViewModel.Result) -> Unit,
    ) {
        throwComposeUnavailableError()
    }

    private fun throwComposeUnavailableError() {
        error(
            "Compose is not available. Make sure to check isComposeAvailable() before calling any" +
+14 −0
Original line number Diff line number Diff line
@@ -16,7 +16,21 @@

package com.android.systemui.compose

import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import com.android.systemui.compose.theme.SystemUITheme
import com.android.systemui.people.ui.compose.PeopleScreen
import com.android.systemui.people.ui.viewmodel.PeopleViewModel

/** The Compose facade, when Compose is available. */
object ComposeFacade : BaseComposeFacade {
    override fun isComposeAvailable(): Boolean = true

    override fun setPeopleSpaceActivityContent(
        activity: ComponentActivity,
        viewModel: PeopleViewModel,
        onResult: (PeopleViewModel.Result) -> Unit,
    ) {
        activity.setContent { SystemUITheme { PeopleScreen(viewModel, onResult) } }
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ android_library {

        "androidx.compose.runtime_runtime",
        "androidx.compose.material3_material3",
        "androidx.activity_activity-compose",
    ],

    kotlincflags: ["-Xjvm-default=all"],
+10 −0
Original line number Diff line number Diff line
@@ -17,6 +17,9 @@

package com.android.systemui.compose

import androidx.activity.ComponentActivity
import com.android.systemui.people.ui.viewmodel.PeopleViewModel

/**
 * A facade to interact with Compose, when it is available.
 *
@@ -31,4 +34,11 @@ interface BaseComposeFacade {
     * This value will never change at runtime.
     */
    fun isComposeAvailable(): Boolean

    /** Bind the content of [activity] to [viewModel]. */
    fun setPeopleSpaceActivityContent(
        activity: ComponentActivity,
        viewModel: PeopleViewModel,
        onResult: (PeopleViewModel.Result) -> Unit,
    )
}
Loading