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

Commit 08012add authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes I50d162f2,I00243361 into main

* changes:
  Clean-up the PeopleActivity Compose code
  Change the small corner radius of conversation tiles
parents 518396a3 ed2fd1ca
Loading
Loading
Loading
Loading
+39 −31
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
@@ -45,6 +45,7 @@ import androidx.compose.ui.graphics.asImageBitmap
import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.systemui.compose.modifiers.sysuiResTag
@@ -60,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()

@@ -74,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 {
@@ -88,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),
@@ -139,44 +145,46 @@ private fun ConversationList(
    @StringRes headerTextResource: Int,
    tiles: List<PeopleTileViewModel>,
    onTileClicked: (PeopleTileViewModel) -> Unit,
    modifier: Modifier = Modifier,
) {
    val largeCornerRadius = dimensionResource(R.dimen.people_space_widget_radius)
    val smallCornerRadius = 4.dp

    fun topRadius(i: Int): Dp = if (i == 0) largeCornerRadius else smallCornerRadius
    fun bottomRadius(i: Int): Dp =
        if (i == tiles.lastIndex) largeCornerRadius else smallCornerRadius

    Column(modifier, verticalArrangement = Arrangement.spacedBy(2.dp)) {
        Text(
            stringResource(headerTextResource),
        Modifier.padding(start = 16.dp),
            Modifier.padding(start = 16.dp, bottom = 8.dp),
            style = MaterialTheme.typography.labelLarge,
            color = MaterialTheme.colorScheme.primary,
        )

    Spacer(Modifier.height(10.dp))

        tiles.forEachIndexed { index, tile ->
        if (index > 0) {
            HorizontalDivider(color = MaterialTheme.colorScheme.background, thickness = 2.dp)
        }

            key(tile.key.toString()) {
                Tile(
                    tile,
                    onTileClicked,
                withTopCornerRadius = index == 0,
                withBottomCornerRadius = index == tiles.lastIndex,
                    topCornerRadius = topRadius(index),
                    bottomCornerRadius = bottomRadius(index),
                )
            }
        }
    }
}

@Composable
private fun Tile(
    tile: PeopleTileViewModel,
    onTileClicked: (PeopleTileViewModel) -> Unit,
    withTopCornerRadius: Boolean,
    withBottomCornerRadius: Boolean,
    topCornerRadius: Dp,
    bottomCornerRadius: Dp,
    modifier: Modifier = Modifier,
) {
    val cornerRadius = dimensionResource(R.dimen.people_space_widget_radius)
    val topCornerRadius = if (withTopCornerRadius) cornerRadius else 0.dp
    val bottomCornerRadius = if (withBottomCornerRadius) cornerRadius else 0.dp

    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,
    ) {