mirror of
https://github.com/mihonapp/mihon.git
synced 2025-06-25 10:37:51 +02:00
Use non-stable Compose BOM (#9120)
This commit is contained in:
@ -12,6 +12,7 @@ import androidx.compose.material3.LocalAbsoluteTonalElevation
|
||||
import androidx.compose.material3.LocalContentColor
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.contentColorFor
|
||||
import androidx.compose.material3.minimumInteractiveComponentSize
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.runtime.NonRestartableComposable
|
||||
@ -27,7 +28,6 @@ import androidx.compose.ui.graphics.compositeOver
|
||||
import androidx.compose.ui.semantics.Role
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import tachiyomi.presentation.core.util.minimumTouchTargetSize
|
||||
import kotlin.math.ln
|
||||
|
||||
/**
|
||||
@ -58,7 +58,7 @@ fun Surface(
|
||||
) {
|
||||
Box(
|
||||
modifier = modifier
|
||||
.minimumTouchTargetSize()
|
||||
.minimumInteractiveComponentSize()
|
||||
.surface(
|
||||
shape = shape,
|
||||
backgroundColor = surfaceColorAtElevation(
|
||||
|
@ -4,7 +4,6 @@ import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.combinedClickable
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.material3.LocalMinimumTouchTargetEnforcement
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
@ -13,16 +12,7 @@ import androidx.compose.ui.draw.alpha
|
||||
import androidx.compose.ui.input.key.Key
|
||||
import androidx.compose.ui.input.key.key
|
||||
import androidx.compose.ui.input.key.onPreviewKeyEvent
|
||||
import androidx.compose.ui.layout.LayoutModifier
|
||||
import androidx.compose.ui.layout.Measurable
|
||||
import androidx.compose.ui.layout.MeasureResult
|
||||
import androidx.compose.ui.layout.MeasureScope
|
||||
import androidx.compose.ui.platform.LocalViewConfiguration
|
||||
import androidx.compose.ui.platform.debugInspectorInfo
|
||||
import androidx.compose.ui.unit.Constraints
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
import tachiyomi.presentation.core.components.material.SecondaryItemAlpha
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
fun Modifier.selectedBackground(isSelected: Boolean): Modifier = composed {
|
||||
if (isSelected) {
|
||||
@ -62,47 +52,3 @@ fun Modifier.runOnEnterKeyPressed(action: () -> Unit): Modifier = this.onPreview
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("ModifierInspectorInfo")
|
||||
fun Modifier.minimumTouchTargetSize(): Modifier = composed(
|
||||
inspectorInfo = debugInspectorInfo {
|
||||
name = "minimumTouchTargetSize"
|
||||
properties["README"] = "Adds outer padding to measure at least 48.dp (default) in " +
|
||||
"size to disambiguate touch interactions if the element would measure smaller"
|
||||
},
|
||||
) {
|
||||
if (LocalMinimumTouchTargetEnforcement.current) {
|
||||
val size = LocalViewConfiguration.current.minimumTouchTargetSize
|
||||
MinimumTouchTargetModifier(size)
|
||||
} else {
|
||||
Modifier
|
||||
}
|
||||
}
|
||||
|
||||
private class MinimumTouchTargetModifier(val size: DpSize) : LayoutModifier {
|
||||
override fun MeasureScope.measure(
|
||||
measurable: Measurable,
|
||||
constraints: Constraints,
|
||||
): MeasureResult {
|
||||
val placeable = measurable.measure(constraints)
|
||||
|
||||
// Be at least as big as the minimum dimension in both dimensions
|
||||
val width = maxOf(placeable.width, size.width.roundToPx())
|
||||
val height = maxOf(placeable.height, size.height.roundToPx())
|
||||
|
||||
return layout(width, height) {
|
||||
val centerX = ((width - placeable.width) / 2f).roundToInt()
|
||||
val centerY = ((height - placeable.height) / 2f).roundToInt()
|
||||
placeable.place(centerX, centerY)
|
||||
}
|
||||
}
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
val otherModifier = other as? MinimumTouchTargetModifier ?: return false
|
||||
return size == otherModifier.size
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
return size.hashCode()
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user