Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 400ed898 authored by Jordan Demeulenaere's avatar Jordan Demeulenaere
Browse files

Use fastFoo from Compose MathUtils.kt

Bug: 308961608
Test: PlatformComposeSceneTransitionLayoutTests
Flag: N/A
Change-Id: Idfaaa50361354dbccb3e5b9922e78f866edae54a
parent fa838838
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -61,11 +61,11 @@ import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.IntOffset
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.dp
import androidx.compose.ui.util.lerp
import com.android.compose.animation.scene.ElementKey
import com.android.compose.animation.scene.NestedScrollBehavior
import com.android.compose.animation.scene.SceneScope
import com.android.compose.modifiers.height
import com.android.compose.ui.util.lerp
import com.android.systemui.common.ui.compose.windowinsets.LocalScreenCornerRadius
import com.android.systemui.notifications.ui.composable.Notifications.Form
import com.android.systemui.notifications.ui.composable.Notifications.TransitionThresholds.EXPANSION_FOR_MAX_CORNER_RADIUS
+3 −2
Original line number Diff line number Diff line
@@ -30,7 +30,8 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.lerp
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.lerp
import com.android.compose.ui.util.lerp
import androidx.compose.ui.util.fastCoerceIn
import androidx.compose.ui.util.lerp

/**
 * A [State] whose [value] is animated.
@@ -282,7 +283,7 @@ private fun <T> valueOrNull(
                } else {
                    val progress =
                        if (canOverflow) transition.progress
                        else transition.progress.coerceIn(0f, 1f)
                        else transition.progress.fastCoerceIn(0f, 1f)
                    lerp(fromValue, toValue, progress)
                }
            } else fromValue ?: toValue
+3 −1
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@ import androidx.compose.ui.platform.testTag
import androidx.compose.ui.unit.Constraints
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.round
import androidx.compose.ui.util.fastCoerceIn
import androidx.compose.ui.util.lerp
import com.android.compose.animation.scene.transformation.PropertyTransformation
import com.android.compose.animation.scene.transformation.SharedElementTransformation
import com.android.compose.ui.util.lerp
@@ -362,7 +364,7 @@ private fun elementAlpha(
            isSpecified = { true },
            ::lerp,
        )
        .coerceIn(0f, 1f)
        .fastCoerceIn(0f, 1f)
}

@OptIn(ExperimentalComposeUiApi::class)
+6 −3
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@

package com.android.compose.animation.scene.transformation

import androidx.compose.ui.util.fastCoerceAtLeast
import androidx.compose.ui.util.fastCoerceAtMost
import androidx.compose.ui.util.fastCoerceIn
import com.android.compose.animation.scene.Element
import com.android.compose.animation.scene.ElementMatcher
import com.android.compose.animation.scene.Scene
@@ -106,10 +109,10 @@ data class TransformationRange(
    fun progress(transitionProgress: Float): Float {
        return when {
            start.isSpecified() && end.isSpecified() ->
                ((transitionProgress - start) / (end - start)).coerceIn(0f, 1f)
                ((transitionProgress - start) / (end - start)).fastCoerceIn(0f, 1f)
            !start.isSpecified() && !end.isSpecified() -> transitionProgress
            end.isSpecified() -> (transitionProgress / end).coerceAtMost(1f)
            else -> ((transitionProgress - start) / (1f - start)).coerceAtLeast(0f)
            end.isSpecified() -> (transitionProgress / end).fastCoerceAtMost(1f)
            else -> ((transitionProgress - start) / (1f - start)).fastCoerceAtLeast(0f)
        }
    }

+1 −17
Original line number Diff line number Diff line
@@ -20,24 +20,8 @@ package com.android.compose.ui.util
import androidx.compose.ui.geometry.isSpecified
import androidx.compose.ui.geometry.lerp
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.util.lerp
import com.android.compose.animation.scene.Scale
import kotlin.math.roundToInt
import kotlin.math.roundToLong

/** Linearly interpolate between [start] and [stop] with [fraction] fraction between them. */
fun lerp(start: Float, stop: Float, fraction: Float): Float {
    return (1 - fraction) * start + fraction * stop
}

/** Linearly interpolate between [start] and [stop] with [fraction] fraction between them. */
fun lerp(start: Int, stop: Int, fraction: Float): Int {
    return start + ((stop - start) * fraction.toDouble()).roundToInt()
}

/** Linearly interpolate between [start] and [stop] with [fraction] fraction between them. */
fun lerp(start: Long, stop: Long, fraction: Float): Long {
    return start + ((stop - start) * fraction.toDouble()).roundToLong()
}

/** Linearly interpolate between [start] and [stop] with [fraction] fraction between them. */
fun lerp(start: IntSize, stop: IntSize, fraction: Float): IntSize {
Loading