Loading packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/icons/Edit.kt→packages/SystemUI/src/com/android/systemui/common/ui/icons/Edit.kt +2 −2 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ * limitations under the License. */ package com.android.systemui.qs.panels.ui.compose.icons package com.android.systemui.common.ui.icons import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.PathFillType Loading @@ -25,7 +25,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.path import androidx.compose.ui.unit.dp public val Edit: ImageVector val Edit: ImageVector get() { if (_Edit != null) { return _Edit!! Loading packages/SystemUI/src/com/android/systemui/common/ui/icons/TileMedium.kt 0 → 100644 +88 −0 Original line number Diff line number Diff line /* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.common.ui.icons import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.path import androidx.compose.ui.unit.dp val TileMedium: ImageVector get() { if (_TileMedium != null) { return _TileMedium!! } _TileMedium = ImageVector.Builder( name = "TileMedium", defaultWidth = 24.dp, defaultHeight = 24.dp, viewportWidth = 960f, viewportHeight = 960f, ) .apply { path(fill = SolidColor(Color.Black)) { moveTo(120f, 720f) lineTo(120f, 560f) quadTo(120f, 543f, 131.5f, 531.5f) quadTo(143f, 520f, 160f, 520f) lineTo(400f, 520f) quadTo(417f, 520f, 428.5f, 531.5f) quadTo(440f, 543f, 440f, 560f) lineTo(440f, 720f) quadTo(440f, 737f, 428.5f, 748.5f) quadTo(417f, 760f, 400f, 760f) lineTo(160f, 760f) quadTo(143f, 760f, 131.5f, 748.5f) quadTo(120f, 737f, 120f, 720f) close() moveTo(520f, 720f) lineTo(520f, 560f) quadTo(520f, 543f, 531.5f, 531.5f) quadTo(543f, 520f, 560f, 520f) lineTo(800f, 520f) quadTo(817f, 520f, 828.5f, 531.5f) quadTo(840f, 543f, 840f, 560f) lineTo(840f, 720f) quadTo(840f, 737f, 828.5f, 748.5f) quadTo(817f, 760f, 800f, 760f) lineTo(560f, 760f) quadTo(543f, 760f, 531.5f, 748.5f) quadTo(520f, 737f, 520f, 720f) close() moveTo(120f, 400f) lineTo(120f, 240f) quadTo(120f, 223f, 131.5f, 211.5f) quadTo(143f, 200f, 160f, 200f) lineTo(800f, 200f) quadTo(817f, 200f, 828.5f, 211.5f) quadTo(840f, 223f, 840f, 240f) lineTo(840f, 400f) quadTo(840f, 417f, 828.5f, 428.5f) quadTo(817f, 440f, 800f, 440f) lineTo(160f, 440f) quadTo(143f, 440f, 131.5f, 428.5f) quadTo(120f, 417f, 120f, 400f) close() } } .build() return _TileMedium!! } private var _TileMedium: ImageVector? = null packages/SystemUI/src/com/android/systemui/common/ui/icons/Undo.kt 0 → 100644 +81 −0 Original line number Diff line number Diff line /* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.common.ui.icons import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.path import androidx.compose.ui.unit.dp val Undo: ImageVector get() { if (_Undo != null) { return _Undo!! } _Undo = ImageVector.Builder( name = "Undo", defaultWidth = 24.dp, defaultHeight = 24.dp, viewportWidth = 960f, viewportHeight = 960f, autoMirror = true, ) .apply { path(fill = SolidColor(Color.Black)) { moveTo(320f, 760f) quadTo(303f, 760f, 291.5f, 748.5f) quadTo(280f, 737f, 280f, 720f) quadTo(280f, 703f, 291.5f, 691.5f) quadTo(303f, 680f, 320f, 680f) lineTo(564f, 680f) quadTo(627f, 680f, 673.5f, 640f) quadTo(720f, 600f, 720f, 540f) quadTo(720f, 480f, 673.5f, 440f) quadTo(627f, 400f, 564f, 400f) lineTo(312f, 400f) lineTo(388f, 476f) quadTo(399f, 487f, 399f, 504f) quadTo(399f, 521f, 388f, 532f) quadTo(377f, 543f, 360f, 543f) quadTo(343f, 543f, 332f, 532f) lineTo(188f, 388f) quadTo(182f, 382f, 179.5f, 375f) quadTo(177f, 368f, 177f, 360f) quadTo(177f, 352f, 179.5f, 345f) quadTo(182f, 338f, 188f, 332f) lineTo(332f, 188f) quadTo(343f, 177f, 360f, 177f) quadTo(377f, 177f, 388f, 188f) quadTo(399f, 199f, 399f, 216f) quadTo(399f, 233f, 388f, 244f) lineTo(312f, 320f) lineTo(564f, 320f) quadTo(661f, 320f, 730.5f, 383f) quadTo(800f, 446f, 800f, 540f) quadTo(800f, 634f, 730.5f, 697f) quadTo(661f, 760f, 564f, 760f) lineTo(320f, 760f) close() } } .build() return _Undo!! } private var _Undo: ImageVector? = null packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt +17 −4 Original line number Diff line number Diff line Loading @@ -154,6 +154,7 @@ import com.android.compose.theme.LocalAndroidColorScheme import com.android.compose.ui.graphics.painter.rememberDrawablePainter import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.ui.compose.load import com.android.systemui.common.ui.icons.Undo import com.android.systemui.qs.flags.QsEditModeTabs import com.android.systemui.qs.panels.shared.model.SizedTileImpl import com.android.systemui.qs.panels.ui.compose.DragAndDropState Loading Loading @@ -305,7 +306,7 @@ fun DefaultEditTileGrid( ), ) { Icon( Icons.AutoMirrored.Default.Undo, Undo, contentDescription = stringResource(id = com.android.internal.R.string.undo), ) Loading Loading @@ -349,6 +350,7 @@ fun DefaultEditTileGrid( listState = listState, selectionState = selectionState, onEditAction = onEditAction, canLayoutTile = editModeTabViewModel.selectedTab.isTilesLayoutAllowed, showAvailableTiles = editModeTabViewModel.selectedTab.isTilesEditingAllowed, ) } Loading Loading @@ -381,6 +383,7 @@ fun DefaultEditTileGrid( listState = listState, selectionState = selectionState, onEditAction = onEditAction, canLayoutTile = true, showAvailableTiles = !(listState.dragInProgress || selectionState.placementEnabled) || listState.dragType == DragType.Move, Loading Loading @@ -477,7 +480,10 @@ private fun EditModeScrollableColumnWithTabs( content() } EditModeTabs(editModeTabViewModel) { selectionState.unSelect() } // Disable tab selection while a drag is in progress EditModeTabs(editModeTabViewModel, enabled = !listState.dragInProgress) { selectionState.unSelect() } Spacer(Modifier.windowInsetsBottomHeight(WindowInsets.systemBars)) } Loading Loading @@ -694,6 +700,7 @@ private fun AnimatedAvailableTilesGrid( listState: EditTileListState, selectionState: MutableSelectionState, showAvailableTiles: Boolean, canLayoutTile: Boolean, onEditAction: (EditAction) -> Unit, modifier: Modifier = Modifier, ) { Loading @@ -720,6 +727,7 @@ private fun AnimatedAvailableTilesGrid( allTiles, selectionState, listState.columns, canLayoutTile = canLayoutTile, { onEditAction(EditAction.AddTile(it)) }, // Add to the end listState, ) Loading Loading @@ -751,6 +759,7 @@ private fun AvailableTileGrid( tiles: List<EditTileViewModel>, selectionState: MutableSelectionState, columns: Int, canLayoutTile: Boolean, onAddTile: (TileSpec) -> Unit, dragAndDropState: DragAndDropState, ) { Loading Loading @@ -811,6 +820,7 @@ private fun AvailableTileGrid( cell = viewModel, dragAndDropState = dragAndDropState, selectionState = selectionState, canLayoutTile = canLayoutTile, onAddTile = onAddTile, modifier = Modifier.weight(1f).fillMaxHeight(), ) Loading Loading @@ -1118,6 +1128,7 @@ private fun AvailableTileGridCell( cell: EditTileViewModel, dragAndDropState: DragAndDropState, selectionState: MutableSelectionState, canLayoutTile: Boolean, onAddTile: (TileSpec) -> Unit, modifier: Modifier = Modifier, ) { Loading @@ -1129,8 +1140,10 @@ private fun AvailableTileGridCell( val colors = EditModeTileDefaults.editTileColors() val onClick: () -> Unit = { onAddTile(cell.tileSpec) if (canLayoutTile) { selectionState.select(cell.tileSpec) } } val clickLabel = stringResource(id = R.string.accessibility_qs_edit_named_tile_add_action, cell.label.text) Loading @@ -1157,7 +1170,7 @@ private fun AvailableTileGridCell( ) { Box(Modifier.fillMaxWidth().height(TileHeight)) { val draggableModifier = if (cell.isCurrent) { if (cell.isCurrent || !canLayoutTile) { Modifier } else { Modifier.dragAndDropTileSource( Loading packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/tabs/EditModeTabs.kt +3 −2 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import com.android.systemui.qs.panels.ui.viewmodel.EditModeTabViewModel @Composable fun EditModeTabs( viewModel: EditModeTabViewModel, enabled: Boolean, modifier: Modifier = Modifier, onTabChanged: () -> Unit = {}, ) { Loading @@ -58,7 +59,7 @@ fun EditModeTabs( val selectedButtonColor = LocalAndroidColorScheme.current.surfaceEffect2 HorizontalFloatingToolbar( modifier = modifier.height(60.dp), expanded = true, expanded = false, contentPadding = PaddingValues(horizontal = 7.dp, vertical = 8.dp), colors = FloatingToolbarDefaults.standardFloatingToolbarColors( Loading @@ -73,7 +74,7 @@ fun EditModeTabs( verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxHeight() .clickable { .clickable(enabled = enabled) { if (!isSelected.currentState) { onTabChanged() } Loading Loading
packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/icons/Edit.kt→packages/SystemUI/src/com/android/systemui/common/ui/icons/Edit.kt +2 −2 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ * limitations under the License. */ package com.android.systemui.qs.panels.ui.compose.icons package com.android.systemui.common.ui.icons import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.PathFillType Loading @@ -25,7 +25,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.path import androidx.compose.ui.unit.dp public val Edit: ImageVector val Edit: ImageVector get() { if (_Edit != null) { return _Edit!! Loading
packages/SystemUI/src/com/android/systemui/common/ui/icons/TileMedium.kt 0 → 100644 +88 −0 Original line number Diff line number Diff line /* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.common.ui.icons import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.path import androidx.compose.ui.unit.dp val TileMedium: ImageVector get() { if (_TileMedium != null) { return _TileMedium!! } _TileMedium = ImageVector.Builder( name = "TileMedium", defaultWidth = 24.dp, defaultHeight = 24.dp, viewportWidth = 960f, viewportHeight = 960f, ) .apply { path(fill = SolidColor(Color.Black)) { moveTo(120f, 720f) lineTo(120f, 560f) quadTo(120f, 543f, 131.5f, 531.5f) quadTo(143f, 520f, 160f, 520f) lineTo(400f, 520f) quadTo(417f, 520f, 428.5f, 531.5f) quadTo(440f, 543f, 440f, 560f) lineTo(440f, 720f) quadTo(440f, 737f, 428.5f, 748.5f) quadTo(417f, 760f, 400f, 760f) lineTo(160f, 760f) quadTo(143f, 760f, 131.5f, 748.5f) quadTo(120f, 737f, 120f, 720f) close() moveTo(520f, 720f) lineTo(520f, 560f) quadTo(520f, 543f, 531.5f, 531.5f) quadTo(543f, 520f, 560f, 520f) lineTo(800f, 520f) quadTo(817f, 520f, 828.5f, 531.5f) quadTo(840f, 543f, 840f, 560f) lineTo(840f, 720f) quadTo(840f, 737f, 828.5f, 748.5f) quadTo(817f, 760f, 800f, 760f) lineTo(560f, 760f) quadTo(543f, 760f, 531.5f, 748.5f) quadTo(520f, 737f, 520f, 720f) close() moveTo(120f, 400f) lineTo(120f, 240f) quadTo(120f, 223f, 131.5f, 211.5f) quadTo(143f, 200f, 160f, 200f) lineTo(800f, 200f) quadTo(817f, 200f, 828.5f, 211.5f) quadTo(840f, 223f, 840f, 240f) lineTo(840f, 400f) quadTo(840f, 417f, 828.5f, 428.5f) quadTo(817f, 440f, 800f, 440f) lineTo(160f, 440f) quadTo(143f, 440f, 131.5f, 428.5f) quadTo(120f, 417f, 120f, 400f) close() } } .build() return _TileMedium!! } private var _TileMedium: ImageVector? = null
packages/SystemUI/src/com/android/systemui/common/ui/icons/Undo.kt 0 → 100644 +81 −0 Original line number Diff line number Diff line /* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.common.ui.icons import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.path import androidx.compose.ui.unit.dp val Undo: ImageVector get() { if (_Undo != null) { return _Undo!! } _Undo = ImageVector.Builder( name = "Undo", defaultWidth = 24.dp, defaultHeight = 24.dp, viewportWidth = 960f, viewportHeight = 960f, autoMirror = true, ) .apply { path(fill = SolidColor(Color.Black)) { moveTo(320f, 760f) quadTo(303f, 760f, 291.5f, 748.5f) quadTo(280f, 737f, 280f, 720f) quadTo(280f, 703f, 291.5f, 691.5f) quadTo(303f, 680f, 320f, 680f) lineTo(564f, 680f) quadTo(627f, 680f, 673.5f, 640f) quadTo(720f, 600f, 720f, 540f) quadTo(720f, 480f, 673.5f, 440f) quadTo(627f, 400f, 564f, 400f) lineTo(312f, 400f) lineTo(388f, 476f) quadTo(399f, 487f, 399f, 504f) quadTo(399f, 521f, 388f, 532f) quadTo(377f, 543f, 360f, 543f) quadTo(343f, 543f, 332f, 532f) lineTo(188f, 388f) quadTo(182f, 382f, 179.5f, 375f) quadTo(177f, 368f, 177f, 360f) quadTo(177f, 352f, 179.5f, 345f) quadTo(182f, 338f, 188f, 332f) lineTo(332f, 188f) quadTo(343f, 177f, 360f, 177f) quadTo(377f, 177f, 388f, 188f) quadTo(399f, 199f, 399f, 216f) quadTo(399f, 233f, 388f, 244f) lineTo(312f, 320f) lineTo(564f, 320f) quadTo(661f, 320f, 730.5f, 383f) quadTo(800f, 446f, 800f, 540f) quadTo(800f, 634f, 730.5f, 697f) quadTo(661f, 760f, 564f, 760f) lineTo(320f, 760f) close() } } .build() return _Undo!! } private var _Undo: ImageVector? = null
packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt +17 −4 Original line number Diff line number Diff line Loading @@ -154,6 +154,7 @@ import com.android.compose.theme.LocalAndroidColorScheme import com.android.compose.ui.graphics.painter.rememberDrawablePainter import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.ui.compose.load import com.android.systemui.common.ui.icons.Undo import com.android.systemui.qs.flags.QsEditModeTabs import com.android.systemui.qs.panels.shared.model.SizedTileImpl import com.android.systemui.qs.panels.ui.compose.DragAndDropState Loading Loading @@ -305,7 +306,7 @@ fun DefaultEditTileGrid( ), ) { Icon( Icons.AutoMirrored.Default.Undo, Undo, contentDescription = stringResource(id = com.android.internal.R.string.undo), ) Loading Loading @@ -349,6 +350,7 @@ fun DefaultEditTileGrid( listState = listState, selectionState = selectionState, onEditAction = onEditAction, canLayoutTile = editModeTabViewModel.selectedTab.isTilesLayoutAllowed, showAvailableTiles = editModeTabViewModel.selectedTab.isTilesEditingAllowed, ) } Loading Loading @@ -381,6 +383,7 @@ fun DefaultEditTileGrid( listState = listState, selectionState = selectionState, onEditAction = onEditAction, canLayoutTile = true, showAvailableTiles = !(listState.dragInProgress || selectionState.placementEnabled) || listState.dragType == DragType.Move, Loading Loading @@ -477,7 +480,10 @@ private fun EditModeScrollableColumnWithTabs( content() } EditModeTabs(editModeTabViewModel) { selectionState.unSelect() } // Disable tab selection while a drag is in progress EditModeTabs(editModeTabViewModel, enabled = !listState.dragInProgress) { selectionState.unSelect() } Spacer(Modifier.windowInsetsBottomHeight(WindowInsets.systemBars)) } Loading Loading @@ -694,6 +700,7 @@ private fun AnimatedAvailableTilesGrid( listState: EditTileListState, selectionState: MutableSelectionState, showAvailableTiles: Boolean, canLayoutTile: Boolean, onEditAction: (EditAction) -> Unit, modifier: Modifier = Modifier, ) { Loading @@ -720,6 +727,7 @@ private fun AnimatedAvailableTilesGrid( allTiles, selectionState, listState.columns, canLayoutTile = canLayoutTile, { onEditAction(EditAction.AddTile(it)) }, // Add to the end listState, ) Loading Loading @@ -751,6 +759,7 @@ private fun AvailableTileGrid( tiles: List<EditTileViewModel>, selectionState: MutableSelectionState, columns: Int, canLayoutTile: Boolean, onAddTile: (TileSpec) -> Unit, dragAndDropState: DragAndDropState, ) { Loading Loading @@ -811,6 +820,7 @@ private fun AvailableTileGrid( cell = viewModel, dragAndDropState = dragAndDropState, selectionState = selectionState, canLayoutTile = canLayoutTile, onAddTile = onAddTile, modifier = Modifier.weight(1f).fillMaxHeight(), ) Loading Loading @@ -1118,6 +1128,7 @@ private fun AvailableTileGridCell( cell: EditTileViewModel, dragAndDropState: DragAndDropState, selectionState: MutableSelectionState, canLayoutTile: Boolean, onAddTile: (TileSpec) -> Unit, modifier: Modifier = Modifier, ) { Loading @@ -1129,8 +1140,10 @@ private fun AvailableTileGridCell( val colors = EditModeTileDefaults.editTileColors() val onClick: () -> Unit = { onAddTile(cell.tileSpec) if (canLayoutTile) { selectionState.select(cell.tileSpec) } } val clickLabel = stringResource(id = R.string.accessibility_qs_edit_named_tile_add_action, cell.label.text) Loading @@ -1157,7 +1170,7 @@ private fun AvailableTileGridCell( ) { Box(Modifier.fillMaxWidth().height(TileHeight)) { val draggableModifier = if (cell.isCurrent) { if (cell.isCurrent || !canLayoutTile) { Modifier } else { Modifier.dragAndDropTileSource( Loading
packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/tabs/EditModeTabs.kt +3 −2 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import com.android.systemui.qs.panels.ui.viewmodel.EditModeTabViewModel @Composable fun EditModeTabs( viewModel: EditModeTabViewModel, enabled: Boolean, modifier: Modifier = Modifier, onTabChanged: () -> Unit = {}, ) { Loading @@ -58,7 +59,7 @@ fun EditModeTabs( val selectedButtonColor = LocalAndroidColorScheme.current.surfaceEffect2 HorizontalFloatingToolbar( modifier = modifier.height(60.dp), expanded = true, expanded = false, contentPadding = PaddingValues(horizontal = 7.dp, vertical = 8.dp), colors = FloatingToolbarDefaults.standardFloatingToolbarColors( Loading @@ -73,7 +74,7 @@ fun EditModeTabs( verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxHeight() .clickable { .clickable(enabled = enabled) { if (!isSelected.currentState) { onTabChanged() } Loading