mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Use non-stable Compose BOM (#9120)
This commit is contained in:
		| @@ -38,7 +38,7 @@ import androidx.compose.material.icons.outlined.Sync | ||||
| import androidx.compose.material3.DropdownMenuItem | ||||
| import androidx.compose.material3.Icon | ||||
| import androidx.compose.material3.LocalContentColor | ||||
| import androidx.compose.material3.LocalMinimumTouchTargetEnforcement | ||||
| import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement | ||||
| import androidx.compose.material3.MaterialTheme | ||||
| import androidx.compose.material3.ProvideTextStyle | ||||
| import androidx.compose.material3.SuggestionChip | ||||
| @@ -642,7 +642,7 @@ private fun TagsChip( | ||||
|     text: String, | ||||
|     onClick: () -> Unit, | ||||
| ) { | ||||
|     CompositionLocalProvider(LocalMinimumTouchTargetEnforcement provides false) { | ||||
|     CompositionLocalProvider(LocalMinimumInteractiveComponentEnforcement provides false) { | ||||
|         SuggestionChip( | ||||
|             onClick = onClick, | ||||
|             label = { Text(text = text, style = MaterialTheme.typography.bodySmall) }, | ||||
|   | ||||
| @@ -11,6 +11,7 @@ import androidx.compose.material3.MaterialTheme | ||||
| import androidx.compose.material3.RadioButton | ||||
| import androidx.compose.material3.Text | ||||
| import androidx.compose.material3.TextButton | ||||
| import androidx.compose.material3.minimumInteractiveComponentSize | ||||
| import androidx.compose.runtime.Composable | ||||
| import androidx.compose.runtime.getValue | ||||
| import androidx.compose.runtime.mutableStateOf | ||||
| @@ -27,7 +28,6 @@ import tachiyomi.presentation.core.components.ScrollbarLazyColumn | ||||
| import tachiyomi.presentation.core.components.material.Divider | ||||
| import tachiyomi.presentation.core.util.isScrolledToEnd | ||||
| import tachiyomi.presentation.core.util.isScrolledToStart | ||||
| import tachiyomi.presentation.core.util.minimumTouchTargetSize | ||||
|  | ||||
| @Composable | ||||
| fun <T> ListPreferenceWidget( | ||||
| @@ -97,7 +97,7 @@ private fun DialogRow( | ||||
|                 onClick = { if (!isSelected) onSelected() }, | ||||
|             ) | ||||
|             .fillMaxWidth() | ||||
|             .minimumTouchTargetSize(), | ||||
|             .minimumInteractiveComponentSize(), | ||||
|     ) { | ||||
|         RadioButton( | ||||
|             selected = isSelected, | ||||
|   | ||||
| @@ -10,6 +10,7 @@ import androidx.compose.material3.Checkbox | ||||
| import androidx.compose.material3.MaterialTheme | ||||
| import androidx.compose.material3.Text | ||||
| import androidx.compose.material3.TextButton | ||||
| import androidx.compose.material3.minimumInteractiveComponentSize | ||||
| import androidx.compose.runtime.Composable | ||||
| import androidx.compose.runtime.getValue | ||||
| import androidx.compose.runtime.mutableStateOf | ||||
| @@ -24,7 +25,6 @@ import androidx.compose.ui.unit.dp | ||||
| import androidx.compose.ui.window.DialogProperties | ||||
| import eu.kanade.presentation.more.settings.Preference | ||||
| import eu.kanade.tachiyomi.R | ||||
| import tachiyomi.presentation.core.util.minimumTouchTargetSize | ||||
|  | ||||
| @Composable | ||||
| fun MultiSelectListPreferenceWidget( | ||||
| @@ -69,7 +69,7 @@ fun MultiSelectListPreferenceWidget( | ||||
|                                         selected = isSelected, | ||||
|                                         onClick = { onSelectionChanged() }, | ||||
|                                     ) | ||||
|                                     .minimumTouchTargetSize() | ||||
|                                     .minimumInteractiveComponentSize() | ||||
|                                     .fillMaxWidth(), | ||||
|                             ) { | ||||
|                                 Checkbox( | ||||
|   | ||||
| @@ -18,6 +18,7 @@ import androidx.compose.material3.MaterialTheme | ||||
| import androidx.compose.material3.RadioButton | ||||
| import androidx.compose.material3.Text | ||||
| import androidx.compose.material3.TextButton | ||||
| import androidx.compose.material3.minimumInteractiveComponentSize | ||||
| import androidx.compose.runtime.Composable | ||||
| import androidx.compose.runtime.getValue | ||||
| import androidx.compose.runtime.mutableStateOf | ||||
| @@ -38,7 +39,6 @@ import tachiyomi.presentation.core.components.material.Divider | ||||
| import tachiyomi.presentation.core.components.material.padding | ||||
| import tachiyomi.presentation.core.util.isScrolledToEnd | ||||
| import tachiyomi.presentation.core.util.isScrolledToStart | ||||
| import tachiyomi.presentation.core.util.minimumTouchTargetSize | ||||
| import java.time.LocalDate | ||||
| import java.time.format.TextStyle | ||||
| import java.util.Locale | ||||
| @@ -68,7 +68,7 @@ fun TrackStatusSelector( | ||||
|                                     onClick = { onSelectionChange(key) }, | ||||
|                                 ) | ||||
|                                 .fillMaxWidth() | ||||
|                                 .minimumTouchTargetSize(), | ||||
|                                 .minimumInteractiveComponentSize(), | ||||
|                         ) { | ||||
|                             RadioButton( | ||||
|                                 selected = isSelected, | ||||
|   | ||||
| @@ -1,11 +1,11 @@ | ||||
| [versions] | ||||
| compiler = "1.4.2" | ||||
| compose-bom = "2023.01.00" | ||||
| accompanist = "0.28.0" | ||||
| compose-bom = "2023.02.00-beta01" | ||||
| accompanist = "0.29.1-alpha" | ||||
|  | ||||
| [libraries] | ||||
| activity = "androidx.activity:activity-compose:1.6.1" | ||||
| bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" } | ||||
| bom = { group = "dev.chrisbanes.compose", name = "compose-bom", version.ref = "compose-bom" } | ||||
| foundation = { module = "androidx.compose.foundation:foundation" } | ||||
| animation = { module = "androidx.compose.animation:animation" } | ||||
| animation-graphics = { module = "androidx.compose.animation:animation-graphics" } | ||||
| @@ -16,9 +16,7 @@ material3-core = { module = "androidx.compose.material3:material3" } | ||||
| material-icons = { module = "androidx.compose.material:material-icons-extended" } | ||||
|  | ||||
| # Here until M3's swipeable became public https://issuetracker.google.com/issues/234640556 | ||||
| # Using newer version for PullRefresh fix | ||||
| # TODO: use default version after next Compose BOM is released | ||||
| material-core = { module = "androidx.compose.material:material", version = "1.4.0-beta01" } | ||||
| material-core = { module = "androidx.compose.material:material" } | ||||
|  | ||||
| accompanist-webview = { module = "com.google.accompanist:accompanist-webview", version.ref = "accompanist" } | ||||
| accompanist-flowlayout = { module = "com.google.accompanist:accompanist-flowlayout", version.ref = "accompanist" } | ||||
|   | ||||
| @@ -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