diff options
3 files changed, 13 insertions, 13 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/CommonTile.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/CommonTile.kt index 71fa0ac30fb7..7b2593952599 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/CommonTile.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/CommonTile.kt @@ -77,25 +77,24 @@ fun LargeTileContent( colors: TileColors, squishiness: () -> Float, accessibilityUiState: AccessibilityUiState? = null, - toggleClickSupported: Boolean = false, iconShape: Shape = RoundedCornerShape(CommonTileDefaults.InactiveCornerRadius), - onClick: () -> Unit = {}, - onLongClick: () -> Unit = {}, + toggleClick: (() -> Unit)? = null, + onLongClick: (() -> Unit)? = null, ) { Row( verticalAlignment = Alignment.CenterVertically, horizontalArrangement = tileHorizontalArrangement(), ) { // Icon - val longPressLabel = longPressLabel() + val longPressLabel = longPressLabel().takeIf { onLongClick != null } Box( modifier = - Modifier.size(CommonTileDefaults.ToggleTargetSize).thenIf(toggleClickSupported) { + Modifier.size(CommonTileDefaults.ToggleTargetSize).thenIf(toggleClick != null) { Modifier.clip(iconShape) .verticalSquish(squishiness) .background(colors.iconBackground, { 1f }) .combinedClickable( - onClick = onClick, + onClick = toggleClick!!, onLongClick = onLongClick, onLongClickLabel = longPressLabel, ) diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/Tile.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/Tile.kt index 52d526123430..5f28fe427707 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/Tile.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/Tile.kt @@ -160,19 +160,18 @@ fun Tile( ) } else { val iconShape = TileDefaults.animateIconShape(uiState.state) + val secondaryClick: (() -> Unit)? = + { tile.onSecondaryClick() }.takeIf { uiState.handlesSecondaryClick } + val longClick: (() -> Unit)? = + { tile.onLongClick(expandable) }.takeIf { uiState.handlesLongClick } LargeTileContent( label = uiState.label, secondaryLabel = uiState.secondaryLabel, icon = icon, colors = colors, iconShape = iconShape, - toggleClickSupported = state.handlesSecondaryClick, - onClick = { - if (state.handlesSecondaryClick) { - tile.onSecondaryClick() - } - }, - onLongClick = { tile.onLongClick(expandable) }, + toggleClick = secondaryClick, + onLongClick = longClick, accessibilityUiState = uiState.accessibilityUiState, squishiness = squishiness, ) diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/TileUiState.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/TileUiState.kt index aa420800be7b..56675e49d4e6 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/TileUiState.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/TileUiState.kt @@ -33,6 +33,7 @@ data class TileUiState( val label: String, val secondaryLabel: String, val state: Int, + val handlesLongClick: Boolean, val handlesSecondaryClick: Boolean, val icon: Supplier<QSTile.Icon?>, val accessibilityUiState: AccessibilityUiState, @@ -86,6 +87,7 @@ fun QSTile.State.toUiState(resources: Resources): TileUiState { label = label?.toString() ?: "", secondaryLabel = secondaryLabel?.toString() ?: "", state = if (disabledByPolicy) Tile.STATE_UNAVAILABLE else state, + handlesLongClick = handlesLongClick, handlesSecondaryClick = handlesSecondaryClick, icon = icon?.let { Supplier { icon } } ?: iconSupplier ?: Supplier { null }, AccessibilityUiState( |