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

Commit 497fb2d0 authored by Jordan Demeulenaere's avatar Jordan Demeulenaere Committed by Android (Google) Code Review
Browse files

Merge "Use fastFoo from Compose MathUtils.kt" into main

parents 8f603cde 400ed898
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