mirror of
https://github.com/BetterAndroid/FlexiUI.git
synced 2025-09-08 11:34:18 +08:00
style: optimize naming
This commit is contained in:
@@ -100,19 +100,19 @@ fun Switch(
|
|||||||
content: @Composable () -> Unit = {}
|
content: @Composable () -> Unit = {}
|
||||||
) {
|
) {
|
||||||
val thumbDiameter = style.thumbRadius * 2
|
val thumbDiameter = style.thumbRadius * 2
|
||||||
val maxOffset = with(LocalDensity.current) { (style.trackWidth - thumbDiameter - style.padding * 2).toPx() }
|
val maxOffsetX = with(LocalDensity.current) { (style.trackWidth - thumbDiameter - style.padding * 2).toPx() }
|
||||||
val halfWidth = maxOffset / 2
|
val halfWidth = maxOffsetX / 2
|
||||||
val hovered by interactionSource.collectIsHoveredAsState()
|
val hovered by interactionSource.collectIsHoveredAsState()
|
||||||
var dragging by remember { mutableStateOf(false) }
|
var dragging by remember { mutableStateOf(false) }
|
||||||
var absOffsetX by remember { mutableStateOf(0f) }
|
var absOffsetX by remember { mutableStateOf(0f) }
|
||||||
var offsetX by remember { mutableStateOf(0f) }
|
var offsetX by remember { mutableStateOf(0f) }
|
||||||
var distance by remember { mutableStateOf(0f) }
|
var distance by remember { mutableStateOf(0f) }
|
||||||
if (!hovered && !dragging) offsetX = if (checked) maxOffset else 0f
|
if (!hovered && !dragging) offsetX = if (checked) maxOffsetX else 0f
|
||||||
val animatedOffsetX by animateFloatAsState(offsetX)
|
val animatedOffsetX by animateFloatAsState(offsetX)
|
||||||
val animatedScale by animateFloatAsState(if (hovered || dragging) style.thumbGain else 1f)
|
val animatedScale by animateFloatAsState(if (hovered || dragging) style.thumbGain else 1f)
|
||||||
var trackColor by remember { mutableStateOf(colors.trackInactive) }
|
var trackColor by remember { mutableStateOf(colors.trackInactive) }
|
||||||
fun updateTrackColor() {
|
fun updateTrackColor() {
|
||||||
val fraction = (offsetX / maxOffset).coerceIn(0f, 1f)
|
val fraction = (offsetX / maxOffsetX).coerceIn(0f, 1f)
|
||||||
trackColor = lerp(colors.trackInactive, colors.trackActive, fraction)
|
trackColor = lerp(colors.trackInactive, colors.trackActive, fraction)
|
||||||
}
|
}
|
||||||
updateTrackColor()
|
updateTrackColor()
|
||||||
@@ -127,8 +127,8 @@ fun Switch(
|
|||||||
enabled = enabled,
|
enabled = enabled,
|
||||||
role = Role.Switch
|
role = Role.Switch
|
||||||
) {
|
) {
|
||||||
distance = maxOffset
|
distance = maxOffsetX
|
||||||
offsetX = if (checked) 0f else maxOffset
|
offsetX = if (checked) 0f else maxOffsetX
|
||||||
onCheckedChange(!checked)
|
onCheckedChange(!checked)
|
||||||
}.background(if (efficientDragging) trackColor else animatedTrackColor, style.trackShape)
|
}.background(if (efficientDragging) trackColor else animatedTrackColor, style.trackShape)
|
||||||
.borderOrNot(style.trackBorder, style.trackShape)
|
.borderOrNot(style.trackBorder, style.trackShape)
|
||||||
@@ -156,9 +156,9 @@ fun Switch(
|
|||||||
val absDelta = delta * animatedScale
|
val absDelta = delta * animatedScale
|
||||||
absOffsetX += absDelta
|
absOffsetX += absDelta
|
||||||
when {
|
when {
|
||||||
absOffsetX in 0f..maxOffset -> offsetX += absDelta
|
absOffsetX in 0f..maxOffsetX -> offsetX += absDelta
|
||||||
absOffsetX < 0f -> offsetX = 0f
|
absOffsetX < 0f -> offsetX = 0f
|
||||||
absOffsetX > maxOffset -> offsetX = maxOffset
|
absOffsetX > maxOffsetX -> offsetX = maxOffsetX
|
||||||
}
|
}
|
||||||
updateTrackColor()
|
updateTrackColor()
|
||||||
},
|
},
|
||||||
@@ -169,8 +169,8 @@ fun Switch(
|
|||||||
onDragStopped = {
|
onDragStopped = {
|
||||||
dragging = false
|
dragging = false
|
||||||
if (offsetX >= halfWidth) {
|
if (offsetX >= halfWidth) {
|
||||||
distance = maxOffset - offsetX
|
distance = maxOffsetX - offsetX
|
||||||
offsetX = maxOffset
|
offsetX = maxOffsetX
|
||||||
onCheckedChange(true)
|
onCheckedChange(true)
|
||||||
} else {
|
} else {
|
||||||
distance = offsetX
|
distance = offsetX
|
||||||
|
Reference in New Issue
Block a user