Loading packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/InfiniteGridLayout.kt +34 −21 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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, Loading @@ -147,10 +149,20 @@ class InfiniteGridLayout @Inject constructor(private val iconTilesInteractor: Ic .collectAsState(initial = tile.currentState.toUiState()) val context = LocalContext.current Expandable( color = colorAttr(state.colors.background), shape = RoundedCornerShape(dimensionResource(R.dimen.qs_corner_radius)), ) { Row( modifier = modifier.clickable { tile.onClick(null) }.tileModifier(state.colors), modifier = modifier .combinedClickable( onClick = { tile.onClick(it) }, onLongClick = { tile.onLongClick(it) } ) .tileModifier(state.colors), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = tileHorizontalArrangement(iconOnly) horizontalArrangement = tileHorizontalArrangement(iconOnly), ) { val icon = remember(state.icon) { Loading @@ -164,13 +176,14 @@ class InfiniteGridLayout @Inject constructor(private val iconTilesInteractor: Ic } TileContent( label = state.label.toString(), secondaryLabel = state.secondaryLabel.toString(), secondaryLabel = state.secondaryLabel?.toString(), icon = icon, colors = state.colors, iconOnly = iconOnly ) } } } @Composable override fun EditTileGrid( Loading Loading
packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/InfiniteGridLayout.kt +34 −21 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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, Loading @@ -147,10 +149,20 @@ class InfiniteGridLayout @Inject constructor(private val iconTilesInteractor: Ic .collectAsState(initial = tile.currentState.toUiState()) val context = LocalContext.current Expandable( color = colorAttr(state.colors.background), shape = RoundedCornerShape(dimensionResource(R.dimen.qs_corner_radius)), ) { Row( modifier = modifier.clickable { tile.onClick(null) }.tileModifier(state.colors), modifier = modifier .combinedClickable( onClick = { tile.onClick(it) }, onLongClick = { tile.onLongClick(it) } ) .tileModifier(state.colors), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = tileHorizontalArrangement(iconOnly) horizontalArrangement = tileHorizontalArrangement(iconOnly), ) { val icon = remember(state.icon) { Loading @@ -164,13 +176,14 @@ class InfiniteGridLayout @Inject constructor(private val iconTilesInteractor: Ic } TileContent( label = state.label.toString(), secondaryLabel = state.secondaryLabel.toString(), secondaryLabel = state.secondaryLabel?.toString(), icon = icon, colors = state.colors, iconOnly = iconOnly ) } } } @Composable override fun EditTileGrid( Loading