Migrate to LocalOverscrollFactory
Also make the long click action on the tile container nullable based on whether the tile handles long clicks
Test: manually launching QS
Flag: com.android.systemui.qs_ui_refactor_compose_fragment
Fixes: 378118499
Change-Id: I686b0f0c41a8b818165ea6bdaf6f3c4381362416
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt
index b5cec12..0e5de24 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt
@@ -26,7 +26,7 @@
import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
import androidx.compose.foundation.ExperimentalFoundationApi
-import androidx.compose.foundation.LocalOverscrollConfiguration
+import androidx.compose.foundation.LocalOverscrollFactory
import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.gestures.Orientation
@@ -203,7 +203,7 @@
containerColor = Color.Transparent,
topBar = { EditModeTopBar(onStopEditing = onStopEditing, onReset = reset) },
) { innerPadding ->
- CompositionLocalProvider(LocalOverscrollConfiguration provides null) {
+ CompositionLocalProvider(LocalOverscrollFactory provides null) {
val scrollState = rememberScrollState()
LaunchedEffect(listState.dragInProgress) {
if (listState.dragInProgress) {
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 5bebdbc..9bbf290 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
@@ -156,6 +156,14 @@
bounceEnd = currentBounceableInfo.bounceEnd,
),
) { expandable ->
+ val longClick: (() -> Unit)? =
+ {
+ hapticsViewModel?.setTileInteractionState(
+ TileHapticsViewModel.TileInteractionState.LONG_CLICKED
+ )
+ tile.onLongClick(expandable)
+ }
+ .takeIf { uiState.handlesLongClick }
TileContainer(
onClick = {
tile.onClick(expandable)
@@ -166,12 +174,7 @@
coroutineScope.launch { currentBounceableInfo.bounceable.animateBounce() }
}
},
- onLongClick = {
- hapticsViewModel?.setTileInteractionState(
- TileHapticsViewModel.TileInteractionState.LONG_CLICKED
- )
- tile.onLongClick(expandable)
- },
+ onLongClick = longClick,
uiState = uiState,
iconOnly = iconOnly,
) {
@@ -192,14 +195,6 @@
tile.onSecondaryClick()
}
.takeIf { uiState.handlesSecondaryClick }
- val longClick: (() -> Unit)? =
- {
- hapticsViewModel?.setTileInteractionState(
- TileHapticsViewModel.TileInteractionState.LONG_CLICKED
- )
- tile.onLongClick(expandable)
- }
- .takeIf { uiState.handlesLongClick }
LargeTileContent(
label = uiState.label,
secondaryLabel = uiState.secondaryLabel,
@@ -237,7 +232,7 @@
@Composable
fun TileContainer(
onClick: () -> Unit,
- onLongClick: () -> Unit,
+ onLongClick: (() -> Unit)?,
uiState: TileUiState,
iconOnly: Boolean,
content: @Composable BoxScope.() -> Unit,
@@ -281,7 +276,7 @@
@Composable
fun Modifier.tileCombinedClickable(
onClick: () -> Unit,
- onLongClick: () -> Unit,
+ onLongClick: (() -> Unit)?,
uiState: TileUiState,
iconOnly: Boolean,
): Modifier {