diff options
| author | 2024-07-15 13:26:56 +0000 | |
|---|---|---|
| committer | 2024-07-15 13:26:56 +0000 | |
| commit | 6a14b76bcd19791546b80f429380f432a014db9e (patch) | |
| tree | f6d2779f3d75e0f4470b1825af1f854d384d1c66 | |
| parent | 83e90f0ea1ccc23053405c7698af47c16d75f434 (diff) | |
| parent | 928adba8b3d746351a56c1d177a139b35543464a (diff) | |
Merge "Dynamically Update widget label if widget is selected" into main
| -rw-r--r-- | packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt index 8f247f60bfc4..bd4710b8e3be 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt @@ -40,6 +40,7 @@ import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.focusable +import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.BoxScope @@ -64,6 +65,7 @@ import androidx.compose.foundation.lazy.grid.GridItemSpan import androidx.compose.foundation.lazy.grid.LazyGridState import androidx.compose.foundation.lazy.grid.LazyHorizontalGrid import androidx.compose.foundation.lazy.grid.rememberLazyGridState +import androidx.compose.foundation.selection.selectable import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Add @@ -963,9 +965,25 @@ private fun WidgetContent( val selectedKey by viewModel.selectedKey.collectAsStateWithLifecycle() val selectedIndex = selectedKey?.let { key -> contentListState.list.indexOfFirst { it.key == key } } + + val isSelected = selectedKey == model.key + + val selectableModifier = + if (viewModel.isEditMode) { + Modifier.selectable( + selected = isSelected, + onClick = { viewModel.setSelectedKey(model.key) }, + interactionSource = remember { MutableInteractionSource() }, + indication = null, + ) + } else { + Modifier + } + Box( modifier = modifier + .then(selectableModifier) .thenIf(!viewModel.isEditMode && model.inQuietMode) { Modifier.pointerInput(Unit) { // consume tap to prevent the child view from triggering interactions with |