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

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

Clean-up the PeopleActivity Compose code

This CL cleans up the Compose code of the PeopleActivity to align it
with best practices, in this case mostly making sure that all
Composables have an optional modifier parameter applied to the root
node emitted by the Composable.

Bug: 382448604
Test: Manual, checked that the UI is exactly the same as before.
Flag: EXEMPT trivial clean-up
Change-Id: I50d162f267fd50311981fe3836ad526145552dae
parent 076f6a4f
Loading
Loading
Loading
Loading
+29 −25
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.people.ui.compose
import android.annotation.StringRes
import androidx.compose.foundation.Image
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
@@ -31,7 +32,6 @@ import androidx.compose.foundation.layout.size
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
@@ -61,7 +61,11 @@ import com.android.systemui.res.R
 *   the Activity/Fragment/View hosting this Composable once a result is available.
 */
@Composable
fun PeopleScreen(viewModel: PeopleViewModel, onResult: (PeopleViewModel.Result) -> Unit) {
fun PeopleScreen(
    viewModel: PeopleViewModel,
    onResult: (PeopleViewModel.Result) -> Unit,
    modifier: Modifier = Modifier,
) {
    val priorityTiles by viewModel.priorityTiles.collectAsStateWithLifecycle()
    val recentTiles by viewModel.recentTiles.collectAsStateWithLifecycle()

@@ -75,7 +79,7 @@ fun PeopleScreen(viewModel: PeopleViewModel, onResult: (PeopleViewModel.Result)
        }
    }

    Surface(color = MaterialTheme.colorScheme.background, modifier = Modifier.fillMaxSize()) {
    Surface(color = MaterialTheme.colorScheme.background, modifier = modifier.fillMaxSize()) {
        if (priorityTiles.isNotEmpty() || recentTiles.isNotEmpty()) {
            PeopleScreenWithConversations(priorityTiles, recentTiles, viewModel.onTileClicked)
        } else {
@@ -89,9 +93,10 @@ private fun PeopleScreenWithConversations(
    priorityTiles: List<PeopleTileViewModel>,
    recentTiles: List<PeopleTileViewModel>,
    onTileClicked: (PeopleTileViewModel) -> Unit,
    modifier: Modifier = Modifier,
) {
    Column(
        Modifier.fillMaxSize().safeDrawingPadding().sysuiResTag("top_level_with_conversations")
        modifier.fillMaxSize().safeDrawingPadding().sysuiResTag("top_level_with_conversations")
    ) {
        Column(
            Modifier.fillMaxWidth().padding(PeopleSpacePadding),
@@ -140,16 +145,8 @@ private fun ConversationList(
    @StringRes headerTextResource: Int,
    tiles: List<PeopleTileViewModel>,
    onTileClicked: (PeopleTileViewModel) -> Unit,
    modifier: Modifier = Modifier,
) {
    Text(
        stringResource(headerTextResource),
        Modifier.padding(start = 16.dp),
        style = MaterialTheme.typography.labelLarge,
        color = MaterialTheme.colorScheme.primary,
    )

    Spacer(Modifier.height(10.dp))

    val largeCornerRadius = dimensionResource(R.dimen.people_space_widget_radius)
    val smallCornerRadius = 4.dp

@@ -157,11 +154,15 @@ private fun ConversationList(
    fun bottomRadius(i: Int): Dp =
        if (i == tiles.lastIndex) largeCornerRadius else smallCornerRadius

    tiles.forEachIndexed { index, tile ->
        if (index > 0) {
            HorizontalDivider(color = MaterialTheme.colorScheme.background, thickness = 2.dp)
        }
    Column(modifier, verticalArrangement = Arrangement.spacedBy(2.dp)) {
        Text(
            stringResource(headerTextResource),
            Modifier.padding(start = 16.dp, bottom = 8.dp),
            style = MaterialTheme.typography.labelLarge,
            color = MaterialTheme.colorScheme.primary,
        )

        tiles.forEachIndexed { index, tile ->
            key(tile.key.toString()) {
                Tile(
                    tile,
@@ -172,6 +173,7 @@ private fun ConversationList(
            }
        }
    }
}

@Composable
private fun Tile(
@@ -179,8 +181,10 @@ private fun Tile(
    onTileClicked: (PeopleTileViewModel) -> Unit,
    topCornerRadius: Dp,
    bottomCornerRadius: Dp,
    modifier: Modifier = Modifier,
) {
    Surface(
        modifier,
        color = MaterialTheme.colorScheme.secondaryContainer,
        shape =
            RoundedCornerShape(
+4 −3
Original line number Diff line number Diff line
@@ -44,9 +44,9 @@ import androidx.compose.ui.unit.dp
import com.android.systemui.res.R

@Composable
internal fun PeopleScreenEmpty(onGotItClicked: () -> Unit) {
internal fun PeopleScreenEmpty(onGotItClicked: () -> Unit, modifier: Modifier = Modifier) {
    Column(
        Modifier.fillMaxSize().safeDrawingPadding().padding(PeopleSpacePadding),
        modifier.fillMaxSize().safeDrawingPadding().padding(PeopleSpacePadding),
        horizontalAlignment = Alignment.CenterHorizontally,
    ) {
        Text(
@@ -74,8 +74,9 @@ internal fun PeopleScreenEmpty(onGotItClicked: () -> Unit) {
}

@Composable
private fun ExampleTile() {
private fun ExampleTile(modifier: Modifier = Modifier) {
    Surface(
        modifier,
        shape = RoundedCornerShape(28.dp),
        color = MaterialTheme.colorScheme.secondaryContainer,
    ) {