composed Modifier changes (#9631)
Referring at the examples and other internal usages, the resulting stateful Modifier should be separated from all the previous Modifier chain. (cherry picked from commit 25b0458930b3de21340cdc201e7e5e46501dbda1)
This commit is contained in:
parent
9f1b349960
commit
434b8d3ae8
@ -245,7 +245,7 @@ private fun Modifier.commonClickable(
|
|||||||
) = composed {
|
) = composed {
|
||||||
val haptic = LocalHapticFeedback.current
|
val haptic = LocalHapticFeedback.current
|
||||||
|
|
||||||
this.combinedClickable(
|
Modifier.combinedClickable(
|
||||||
enabled = enabled,
|
enabled = enabled,
|
||||||
onLongClick = {
|
onLongClick = {
|
||||||
onLongClick()
|
onLongClick()
|
||||||
|
@ -113,7 +113,7 @@ internal fun Modifier.highlightBackground(highlighted: Boolean): Modifier = comp
|
|||||||
tween(200)
|
tween(200)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
then(Modifier.background(color = highlight))
|
Modifier.background(color = highlight)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal val TrailingWidgetBuffer = 16.dp
|
internal val TrailingWidgetBuffer = 16.dp
|
||||||
|
@ -30,7 +30,9 @@ import tachiyomi.presentation.core.components.Pill
|
|||||||
private fun Modifier.tabIndicatorOffset(
|
private fun Modifier.tabIndicatorOffset(
|
||||||
currentTabPosition: TabPosition,
|
currentTabPosition: TabPosition,
|
||||||
currentPageOffsetFraction: Float,
|
currentPageOffsetFraction: Float,
|
||||||
) = composed {
|
) = fillMaxWidth()
|
||||||
|
.wrapContentSize(Alignment.BottomStart)
|
||||||
|
.composed {
|
||||||
val currentTabWidth by animateDpAsState(
|
val currentTabWidth by animateDpAsState(
|
||||||
targetValue = currentTabPosition.width,
|
targetValue = currentTabPosition.width,
|
||||||
animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
|
animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
|
||||||
@ -39,8 +41,7 @@ private fun Modifier.tabIndicatorOffset(
|
|||||||
targetValue = currentTabPosition.left + (currentTabWidth * currentPageOffsetFraction),
|
targetValue = currentTabPosition.left + (currentTabWidth * currentPageOffsetFraction),
|
||||||
animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
|
animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
|
||||||
)
|
)
|
||||||
fillMaxWidth()
|
Modifier
|
||||||
.wrapContentSize(Alignment.BottomStart)
|
|
||||||
.offset { IntOffset(x = offset.roundToPx(), y = 0) }
|
.offset { IntOffset(x = offset.roundToPx(), y = 0) }
|
||||||
.width(currentTabWidth)
|
.width(currentTabWidth)
|
||||||
}
|
}
|
||||||
|
@ -25,14 +25,14 @@ import androidx.compose.ui.input.key.onPreviewKeyEvent
|
|||||||
import androidx.compose.ui.platform.LocalFocusManager
|
import androidx.compose.ui.platform.LocalFocusManager
|
||||||
import tachiyomi.presentation.core.components.material.SecondaryItemAlpha
|
import tachiyomi.presentation.core.components.material.SecondaryItemAlpha
|
||||||
|
|
||||||
fun Modifier.selectedBackground(isSelected: Boolean): Modifier = composed {
|
fun Modifier.selectedBackground(isSelected: Boolean): Modifier = if (isSelected) {
|
||||||
if (isSelected) {
|
composed {
|
||||||
val alpha = if (isSystemInDarkTheme()) 0.16f else 0.22f
|
val alpha = if (isSystemInDarkTheme()) 0.16f else 0.22f
|
||||||
background(MaterialTheme.colorScheme.secondary.copy(alpha = alpha))
|
Modifier.background(MaterialTheme.colorScheme.secondary.copy(alpha = alpha))
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
this
|
this
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
fun Modifier.secondaryItemAlpha(): Modifier = this.alpha(SecondaryItemAlpha)
|
fun Modifier.secondaryItemAlpha(): Modifier = this.alpha(SecondaryItemAlpha)
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ fun Modifier.clickableNoIndication(
|
|||||||
onLongClick: (() -> Unit)? = null,
|
onLongClick: (() -> Unit)? = null,
|
||||||
onClick: () -> Unit,
|
onClick: () -> Unit,
|
||||||
): Modifier = composed {
|
): Modifier = composed {
|
||||||
this.combinedClickable(
|
Modifier.combinedClickable(
|
||||||
interactionSource = remember { MutableInteractionSource() },
|
interactionSource = remember { MutableInteractionSource() },
|
||||||
indication = null,
|
indication = null,
|
||||||
onLongClick = onLongClick,
|
onLongClick = onLongClick,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user