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

Commit 98567c3c authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Reduce small object allocations by adding value version of RectF" into main

parents d60188b2 99e793a5
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@
package com.android.systemui.shared.clocks

import android.graphics.Canvas
import com.android.systemui.plugins.clocks.VPoint
import com.android.systemui.plugins.clocks.VPointF

object CanvasUtil {
    fun Canvas.translate(pt: VPointF) = this.translate(pt.x, pt.y)
+2 −1
Original line number Diff line number Diff line
@@ -20,7 +20,8 @@ import android.animation.Animator
import android.animation.AnimatorListenerAdapter
import android.animation.TimeInterpolator
import android.animation.ValueAnimator
import com.android.systemui.shared.clocks.VPointF.Companion.times
import com.android.systemui.plugins.clocks.VPointF
import com.android.systemui.plugins.clocks.VPointF.Companion.times

class DigitTranslateAnimator(private val updateCallback: (VPointF) -> Unit) {
    var currentTranslation = VPointF.ZERO
+2 −2
Original line number Diff line number Diff line
@@ -16,13 +16,13 @@

package com.android.systemui.shared.clocks

import android.graphics.RectF
import android.view.View
import androidx.annotation.VisibleForTesting
import com.android.systemui.plugins.clocks.ClockAnimations
import com.android.systemui.plugins.clocks.ClockEvents
import com.android.systemui.plugins.clocks.ClockFaceConfig
import com.android.systemui.plugins.clocks.ClockFaceEvents
import com.android.systemui.plugins.clocks.VRectF

interface SimpleClockLayerController {
    val view: View
@@ -32,5 +32,5 @@ interface SimpleClockLayerController {
    val config: ClockFaceConfig

    @VisibleForTesting var fakeTimeMills: Long?
    var onViewBoundsChanged: ((RectF) -> Unit)?
    var onViewBoundsChanged: ((VRectF) -> Unit)?
}
+3 −2
Original line number Diff line number Diff line
@@ -18,8 +18,9 @@ package com.android.systemui.shared.clocks

import android.graphics.Rect
import android.view.View
import com.android.systemui.shared.clocks.VPoint.Companion.center
import com.android.systemui.shared.clocks.VPointF.Companion.center
import com.android.systemui.plugins.clocks.VPoint.Companion.center
import com.android.systemui.plugins.clocks.VPointF
import com.android.systemui.plugins.clocks.VPointF.Companion.center

object ViewUtils {
    fun View.computeLayoutDiff(targetRegion: Rect, isLargeClock: Boolean): VPointF {
+9 −20
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.systemui.shared.clocks.view

import android.graphics.Canvas
import android.graphics.RectF
import android.icu.text.NumberFormat
import android.util.MathUtils.constrainedMap
import android.view.View
@@ -29,14 +28,15 @@ import com.android.app.animation.Interpolators
import com.android.systemui.customization.R
import com.android.systemui.plugins.clocks.ClockFontAxisSetting
import com.android.systemui.plugins.clocks.ClockLogger
import com.android.systemui.plugins.clocks.VPoint
import com.android.systemui.plugins.clocks.VPointF
import com.android.systemui.plugins.clocks.VPointF.Companion.max
import com.android.systemui.plugins.clocks.VPointF.Companion.times
import com.android.systemui.plugins.clocks.VRectF
import com.android.systemui.shared.clocks.CanvasUtil.translate
import com.android.systemui.shared.clocks.CanvasUtil.use
import com.android.systemui.shared.clocks.ClockContext
import com.android.systemui.shared.clocks.DigitTranslateAnimator
import com.android.systemui.shared.clocks.VPoint
import com.android.systemui.shared.clocks.VPointF
import com.android.systemui.shared.clocks.VPointF.Companion.max
import com.android.systemui.shared.clocks.VPointF.Companion.times
import com.android.systemui.shared.clocks.ViewUtils.measuredSize
import java.util.Locale
import kotlin.collections.filterNotNull
@@ -101,7 +101,7 @@ class FlexClockView(clockCtx: ClockContext) : ViewGroup(clockCtx.context) {
        updateLocale(Locale.getDefault())
    }

    var onViewBoundsChanged: ((RectF) -> Unit)? = null
    var onViewBoundsChanged: ((VRectF) -> Unit)? = null
    private val digitOffsets = mutableMapOf<Int, Float>()

    protected fun calculateSize(
@@ -189,13 +189,7 @@ class FlexClockView(clockCtx: ClockContext) : ViewGroup(clockCtx.context) {

    fun updateLocation() {
        val layoutBounds = this.layoutBounds ?: return
        val bounds =
            RectF(
                layoutBounds.centerX() - measuredWidth / 2f,
                layoutBounds.centerY() - measuredHeight / 2f,
                layoutBounds.centerX() + measuredWidth / 2f,
                layoutBounds.centerY() + measuredHeight / 2f,
            )
        val bounds = VRectF.fromCenter(layoutBounds.center, this.measuredSize)
        setFrame(
            bounds.left.roundToInt(),
            bounds.top.roundToInt(),
@@ -215,16 +209,11 @@ class FlexClockView(clockCtx: ClockContext) : ViewGroup(clockCtx.context) {
        onAnimateDoze = null
    }

    private val layoutBounds = RectF()
    private var layoutBounds = VRectF.ZERO

    override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) {
        logger.onLayout(changed, left, top, right, bottom)

        layoutBounds.left = left.toFloat()
        layoutBounds.top = top.toFloat()
        layoutBounds.right = right.toFloat()
        layoutBounds.bottom = bottom.toFloat()

        layoutBounds = VRectF(left.toFloat(), top.toFloat(), right.toFloat(), bottom.toFloat())
        updateChildFrames(isLayout = true)
    }

Loading