Delete app/src/main/java/com/github/premnirmal/ticker/ui/StaggeredVerticalGrid.kt

Remove unused view
This commit is contained in:
Prem Nirmal
2025-08-29 15:39:51 +01:00
committed by GitHub
parent 1a132e36f5
commit e951f25d54
@@ -1,64 +0,0 @@
package com.github.premnirmal.ticker.ui
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.Layout
import androidx.compose.ui.layout.Placeable
import androidx.compose.ui.unit.Dp
import kotlin.math.ceil
@Composable
fun StaggeredVerticalGrid(
modifier: Modifier = Modifier,
maxColumnWidth: Dp,
content: @Composable () -> Unit
) {
Layout(
content = content,
modifier = modifier
) { measurables, constraints ->
val placeableXY: MutableMap<Placeable, Pair<Int, Int>> = mutableMapOf()
check(constraints.hasBoundedWidth) {
"Unbounded width not supported"
}
val columns = ceil(constraints.maxWidth / maxColumnWidth.toPx()).toInt()
val columnWidth = constraints.maxWidth / columns
val itemConstraints = constraints.copy(maxWidth = columnWidth)
val colHeights = IntArray(columns) { 0 } // track each column's height
val placeables = measurables.map { measurable ->
val column = shortestColumn(colHeights)
val placeable = measurable.measure(itemConstraints)
placeableXY[placeable] = Pair(columnWidth * column, colHeights[column])
colHeights[column] += placeable.height
placeable
}
val height = colHeights.maxOrNull()
?.coerceIn(constraints.minHeight, constraints.maxHeight)
?: constraints.minHeight
layout(
width = constraints.maxWidth,
height = height
) {
placeables.forEach { placeable ->
placeable.place(
x = placeableXY.getValue(placeable).first,
y = placeableXY.getValue(placeable).second
)
}
}
}
}
private fun shortestColumn(colHeights: IntArray): Int {
var minHeight = Int.MAX_VALUE
var column = 0
colHeights.forEachIndexed { index, height ->
if (height < minHeight) {
minHeight = height
column = index
}
}
return column
}