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:
Ivan Iskandar 2023-06-24 04:54:01 +07:00 committed by Jobobby04
parent 9f1b349960
commit 434b8d3ae8
4 changed files with 23 additions and 22 deletions

View File

@ -245,7 +245,7 @@ private fun Modifier.commonClickable(
) = composed {
val haptic = LocalHapticFeedback.current
this.combinedClickable(
Modifier.combinedClickable(
enabled = enabled,
onLongClick = {
onLongClick()

View File

@ -113,7 +113,7 @@ internal fun Modifier.highlightBackground(highlighted: Boolean): Modifier = comp
tween(200)
},
)
then(Modifier.background(color = highlight))
Modifier.background(color = highlight)
}
internal val TrailingWidgetBuffer = 16.dp

View File

@ -30,20 +30,21 @@ import tachiyomi.presentation.core.components.Pill
private fun Modifier.tabIndicatorOffset(
currentTabPosition: TabPosition,
currentPageOffsetFraction: Float,
) = composed {
val currentTabWidth by animateDpAsState(
targetValue = currentTabPosition.width,
animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
)
val offset by animateDpAsState(
targetValue = currentTabPosition.left + (currentTabWidth * currentPageOffsetFraction),
animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
)
fillMaxWidth()
.wrapContentSize(Alignment.BottomStart)
.offset { IntOffset(x = offset.roundToPx(), y = 0) }
.width(currentTabWidth)
}
) = fillMaxWidth()
.wrapContentSize(Alignment.BottomStart)
.composed {
val currentTabWidth by animateDpAsState(
targetValue = currentTabPosition.width,
animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
)
val offset by animateDpAsState(
targetValue = currentTabPosition.left + (currentTabWidth * currentPageOffsetFraction),
animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
)
Modifier
.offset { IntOffset(x = offset.roundToPx(), y = 0) }
.width(currentTabWidth)
}
@Composable
fun TabIndicator(

View File

@ -25,13 +25,13 @@ import androidx.compose.ui.input.key.onPreviewKeyEvent
import androidx.compose.ui.platform.LocalFocusManager
import tachiyomi.presentation.core.components.material.SecondaryItemAlpha
fun Modifier.selectedBackground(isSelected: Boolean): Modifier = composed {
if (isSelected) {
fun Modifier.selectedBackground(isSelected: Boolean): Modifier = if (isSelected) {
composed {
val alpha = if (isSystemInDarkTheme()) 0.16f else 0.22f
background(MaterialTheme.colorScheme.secondary.copy(alpha = alpha))
} else {
this
Modifier.background(MaterialTheme.colorScheme.secondary.copy(alpha = alpha))
}
} else {
this
}
fun Modifier.secondaryItemAlpha(): Modifier = this.alpha(SecondaryItemAlpha)
@ -40,7 +40,7 @@ fun Modifier.clickableNoIndication(
onLongClick: (() -> Unit)? = null,
onClick: () -> Unit,
): Modifier = composed {
this.combinedClickable(
Modifier.combinedClickable(
interactionSource = remember { MutableInteractionSource() },
indication = null,
onLongClick = onLongClick,