diff options
| author | 2024-05-10 19:59:01 +0000 | |
|---|---|---|
| committer | 2024-05-10 19:59:01 +0000 | |
| commit | 8d1950b4f2d18e1fb7ef46318760766cb29df77c (patch) | |
| tree | d5e200470f0fd5559ffecd458fcad4fff24444e7 | |
| parent | 8e08da9f2b1d15f0cf5308c7ce4e9bb61e5975f9 (diff) | |
| parent | b0a5abee9a20b075168c0b5de1a819b1b9092b1d (diff) | |
Merge "Use Expandable from TileGrid to enable dialog/activity transitions" into main
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/InfiniteGridLayout.kt | 55 |
1 files changed, 34 insertions, 21 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/InfiniteGridLayout.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/InfiniteGridLayout.kt index 6539cf35b073..86cc6f522dd9 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/InfiniteGridLayout.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/InfiniteGridLayout.kt @@ -23,10 +23,12 @@ import androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi import androidx.compose.animation.graphics.res.animatedVectorResource import androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter import androidx.compose.animation.graphics.vector.AnimatedImageVector +import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.basicMarquee import androidx.compose.foundation.clickable +import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement.spacedBy import androidx.compose.foundation.layout.Box @@ -71,7 +73,7 @@ import androidx.compose.ui.semantics.onClick import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.stateDescription import androidx.compose.ui.unit.dp -import com.android.compose.modifiers.background +import com.android.compose.animation.Expandable import com.android.compose.theme.colorAttr import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.ui.compose.Icon @@ -134,7 +136,7 @@ class InfiniteGridLayout @Inject constructor(private val iconTilesInteractor: Ic } } - @OptIn(ExperimentalCoroutinesApi::class) + @OptIn(ExperimentalCoroutinesApi::class, ExperimentalFoundationApi::class) @Composable private fun Tile( tile: TileViewModel, @@ -147,28 +149,39 @@ class InfiniteGridLayout @Inject constructor(private val iconTilesInteractor: Ic .collectAsState(initial = tile.currentState.toUiState()) val context = LocalContext.current - Row( - modifier = modifier.clickable { tile.onClick(null) }.tileModifier(state.colors), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = tileHorizontalArrangement(iconOnly) + Expandable( + color = colorAttr(state.colors.background), + shape = RoundedCornerShape(dimensionResource(R.dimen.qs_corner_radius)), ) { - val icon = - remember(state.icon) { - state.icon.get().let { - if (it is QSTileImpl.ResourceIcon) { - Icon.Resource(it.resId, null) - } else { - Icon.Loaded(it.getDrawable(context), null) + Row( + modifier = + modifier + .combinedClickable( + onClick = { tile.onClick(it) }, + onLongClick = { tile.onLongClick(it) } + ) + .tileModifier(state.colors), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = tileHorizontalArrangement(iconOnly), + ) { + val icon = + remember(state.icon) { + state.icon.get().let { + if (it is QSTileImpl.ResourceIcon) { + Icon.Resource(it.resId, null) + } else { + Icon.Loaded(it.getDrawable(context), null) + } } } - } - TileContent( - label = state.label.toString(), - secondaryLabel = state.secondaryLabel.toString(), - icon = icon, - colors = state.colors, - iconOnly = iconOnly - ) + TileContent( + label = state.label.toString(), + secondaryLabel = state.secondaryLabel?.toString(), + icon = icon, + colors = state.colors, + iconOnly = iconOnly + ) + } } } |