diff options
3 files changed, 20 insertions, 0 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 4a51bf06d4af..177a5be35592 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 @@ -17,6 +17,7 @@ package com.android.systemui.qs.panels.ui.compose.infinitegrid import android.graphics.drawable.Animatable +import android.graphics.drawable.Drawable import android.text.TextUtils import androidx.compose.animation.animateColorAsState import androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi @@ -30,7 +31,9 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.BasicText import androidx.compose.material3.MaterialTheme @@ -68,6 +71,8 @@ import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.ui.compose.Icon import com.android.systemui.common.ui.compose.load import com.android.systemui.compose.modifiers.sysuiResTag +import com.android.systemui.qs.panels.ui.compose.infinitegrid.CommonTileDefaults.SideIconHeight +import com.android.systemui.qs.panels.ui.compose.infinitegrid.CommonTileDefaults.SideIconWidth import com.android.systemui.qs.panels.ui.compose.infinitegrid.CommonTileDefaults.longPressLabel import com.android.systemui.qs.panels.ui.viewmodel.AccessibilityUiState import com.android.systemui.res.R @@ -79,6 +84,7 @@ fun LargeTileContent( label: String, secondaryLabel: String?, icon: Icon, + sideDrawable: Drawable?, colors: TileColors, squishiness: () -> Float, accessibilityUiState: AccessibilityUiState? = null, @@ -135,6 +141,14 @@ fun LargeTileContent( colors = colors, accessibilityUiState = accessibilityUiState, ) + + if (sideDrawable != null) { + Image( + painter = rememberDrawablePainter(sideDrawable), + contentDescription = null, + modifier = Modifier.width(SideIconWidth).height(SideIconHeight), + ) + } } } @@ -229,6 +243,8 @@ fun SmallTileContent( object CommonTileDefaults { val IconSize = 32.dp val LargeTileIconSize = 28.dp + val SideIconWidth = 32.dp + val SideIconHeight = 20.dp val ToggleTargetSize = 56.dp val TileHeight = 72.dp val TilePadding = 8.dp 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 9bbf290a53f0..7ff43c686d7b 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 @@ -199,6 +199,7 @@ fun Tile( label = uiState.label, secondaryLabel = uiState.secondaryLabel, icon = icon, + sideDrawable = uiState.sideDrawable, colors = colors, iconShape = iconShape, toggleClick = secondaryClick, 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 56675e49d4e6..2fc7f0f9d67b 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 @@ -17,6 +17,7 @@ package com.android.systemui.qs.panels.ui.viewmodel import android.content.res.Resources +import android.graphics.drawable.Drawable import android.service.quicksettings.Tile import android.text.TextUtils import android.widget.Switch @@ -36,6 +37,7 @@ data class TileUiState( val handlesLongClick: Boolean, val handlesSecondaryClick: Boolean, val icon: Supplier<QSTile.Icon?>, + val sideDrawable: Drawable?, val accessibilityUiState: AccessibilityUiState, ) @@ -90,6 +92,7 @@ fun QSTile.State.toUiState(resources: Resources): TileUiState { handlesLongClick = handlesLongClick, handlesSecondaryClick = handlesSecondaryClick, icon = icon?.let { Supplier { icon } } ?: iconSupplier ?: Supplier { null }, + sideDrawable = sideViewCustomDrawable, AccessibilityUiState( contentDescription?.toString() ?: "", stateDescription.toString(), |