mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 12:07:28 +00:00
Replace mutableStateOf by mutableIntStateOf and mutableFloatStateOf. Use intValue and floatValue to avoid unboxing.
This commit is contained in:
+8
-7
@@ -21,9 +21,10 @@ import androidx.compose.animation.core.tween
|
||||
import androidx.compose.foundation.MutatePriority
|
||||
import androidx.compose.foundation.gestures.DraggableState
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.FloatState
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.runtime.State
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableFloatStateOf
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
@@ -41,8 +42,8 @@ class SwipeableActionsState {
|
||||
/**
|
||||
* The current position (in pixels) of the content.
|
||||
*/
|
||||
val offset: State<Float> get() = offsetState
|
||||
private var offsetState = mutableStateOf(0f)
|
||||
val offset: FloatState get() = offsetState
|
||||
private var offsetState = mutableFloatStateOf(0f)
|
||||
|
||||
/**
|
||||
* Whether the content is currently animating to reset its offset after it was swiped.
|
||||
@@ -51,21 +52,21 @@ class SwipeableActionsState {
|
||||
private set
|
||||
|
||||
val draggableState = DraggableState { delta ->
|
||||
val targetOffset = offsetState.value + delta
|
||||
val targetOffset = offsetState.floatValue + delta
|
||||
val isAllowed = isResettingOnRelease || targetOffset > 0f
|
||||
|
||||
offsetState.value += if (isAllowed) delta else 0f
|
||||
offsetState.floatValue += if (isAllowed) delta else 0f
|
||||
}
|
||||
|
||||
suspend fun resetOffset() {
|
||||
draggableState.drag(MutatePriority.PreventUserInput) {
|
||||
isResettingOnRelease = true
|
||||
try {
|
||||
Animatable(offsetState.value).animateTo(
|
||||
Animatable(offsetState.floatValue).animateTo(
|
||||
targetValue = 0f,
|
||||
animationSpec = tween(durationMillis = 300),
|
||||
) {
|
||||
dragBy(value - offsetState.value)
|
||||
dragBy(value - offsetState.floatValue)
|
||||
}
|
||||
} finally {
|
||||
isResettingOnRelease = false
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@ import androidx.compose.material3.SliderColors
|
||||
import androidx.compose.material3.SliderDefaults
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.mutableFloatStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
@@ -62,7 +62,7 @@ internal fun SlidersPreview() = ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
var value by remember { mutableStateOf(0.33f) }
|
||||
var value by remember { mutableFloatStateOf(0.33f) }
|
||||
Column {
|
||||
Slider(onValueChange = { value = it }, value = value, enabled = true)
|
||||
Slider(steps = 10, onValueChange = { value = it }, value = value, enabled = true)
|
||||
|
||||
Reference in New Issue
Block a user