Loading packages/SystemUI/compose/features/src/com/android/systemui/people/ui/compose/PeopleScreen.kt +39 −31 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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() Loading @@ -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 { Loading @@ -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), Loading Loading @@ -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( Loading packages/SystemUI/compose/features/src/com/android/systemui/people/ui/compose/PeopleScreenEmpty.kt +4 −3 Original line number Diff line number Diff line Loading @@ -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( Loading Loading @@ -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, ) { Loading Loading
packages/SystemUI/compose/features/src/com/android/systemui/people/ui/compose/PeopleScreen.kt +39 −31 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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() Loading @@ -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 { Loading @@ -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), Loading Loading @@ -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( Loading
packages/SystemUI/compose/features/src/com/android/systemui/people/ui/compose/PeopleScreenEmpty.kt +4 −3 Original line number Diff line number Diff line Loading @@ -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( Loading Loading @@ -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, ) { Loading