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

Commit 0e808c78 authored by Hawkwood's avatar Hawkwood
Browse files

Remove digit position inversion check

I suspect this was nessecary for the version in AnimatableClockView
to correctly position glyphs in RTL when returning to center, but it
appears to be source of the error as it is only triggered by RTL
returns to center. This also let me simplify the local code a bit.

Bug: 378929812
Test: Checked RTL clock stepping animation
Flag: com.android.systemui.shared.clock_reactive_variants
Change-Id: Ie19dfad60735c6a1ceeb571356ef55876b3f39c4
parent d62b1fac
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -126,7 +126,8 @@ constructor(
            val dir = if (transition.toContent == splitShadeLargeClockScene) -1f else 1f
            val distance = dir * getClockCenteringDistance()
            val largeClock = checkNotNull(currentClock).largeClock
            largeClock.animations.onPositionUpdated(distance = distance, fraction = progress)
            // TODO(b/418824686): Migrate stepping animation to compose and ensure it works in RTL
            // largeClock.animations.onPositionAnimated(distance = distance, fraction = progress)
        }

        Element(key = largeClockElementKey, modifier = modifier) {
@@ -143,7 +144,9 @@ constructor(
        }
    }

    companion object {
        fun getClockCenteringDistance(): Float {
            return Resources.getSystem().displayMetrics.widthPixels / 4f
        }
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -187,7 +187,7 @@ constructor(
                            // the clock to be on one half of the screen.
                            Modifier.offset {
                                IntOffset(
                                    x = -clockSection.getClockCenteringDistance().toInt(),
                                    x = -DefaultClockSection.getClockCenteringDistance().toInt(),
                                    y = 0,
                                )
                            }
+2 −3
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import com.android.systemui.plugins.clocks.ClockAxisStyle
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.ClockPositionAnimationArgs
import com.android.systemui.plugins.clocks.ThemeConfig
import com.android.systemui.plugins.clocks.TimeFormatKind
import com.android.systemui.plugins.clocks.WeatherData
@@ -150,9 +151,7 @@ class ComposedDigitalLayerController(private val clockCtx: ClockContext) :
                view.animateCharge()
            }

            override fun onPositionUpdated(fromLeft: Int, direction: Int, fraction: Float) {}

            override fun onPositionUpdated(distance: Float, fraction: Float) {}
            override fun onPositionAnimated(args: ClockPositionAnimationArgs) {}

            override fun onPickerCarouselSwiping(swipingFraction: Float) {}

+6 −15
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import com.android.systemui.plugins.clocks.ClockFaceConfig
import com.android.systemui.plugins.clocks.ClockFaceController
import com.android.systemui.plugins.clocks.ClockFaceEvents
import com.android.systemui.plugins.clocks.ClockMessageBuffers
import com.android.systemui.plugins.clocks.ClockPositionAnimationArgs
import com.android.systemui.plugins.clocks.ClockSettings
import com.android.systemui.plugins.clocks.ClockViewIds
import com.android.systemui.plugins.clocks.ThemeConfig
@@ -202,12 +203,8 @@ class DefaultClockController(
        override fun recomputePadding(targetRegion: Rect?) {}

        /** See documentation at [AnimatableClockView.offsetGlyphsForStepClockAnimation]. */
        fun offsetGlyphsForStepClockAnimation(fromLeft: Int, direction: Int, fraction: Float) {
            view.offsetGlyphsForStepClockAnimation(fromLeft, direction, fraction)
        }

        fun offsetGlyphsForStepClockAnimation(distance: Float, fraction: Float) {
            view.offsetGlyphsForStepClockAnimation(distance, fraction)
        fun offsetGlyphsForStepClockAnimation(args: ClockPositionAnimationArgs) {
            view.offsetGlyphsForStepClockAnimation(args.fromLeft, args.direction, args.fraction)
        }
    }

@@ -285,9 +282,7 @@ class DefaultClockController(
            view.translationY = 0.5f * view.bottom * (1 - swipingFraction)
        }

        override fun onPositionUpdated(fromLeft: Int, direction: Int, fraction: Float) {}

        override fun onPositionUpdated(distance: Float, fraction: Float) {}
        override fun onPositionAnimated(args: ClockPositionAnimationArgs) {}

        override fun onFidgetTap(x: Float, y: Float) {}

@@ -299,12 +294,8 @@ class DefaultClockController(
        dozeFraction: Float,
        foldFraction: Float,
    ) : DefaultClockAnimations(view, dozeFraction, foldFraction) {
        override fun onPositionUpdated(fromLeft: Int, direction: Int, fraction: Float) {
            largeClock.offsetGlyphsForStepClockAnimation(fromLeft, direction, fraction)
        }

        override fun onPositionUpdated(distance: Float, fraction: Float) {
            largeClock.offsetGlyphsForStepClockAnimation(distance, fraction)
        override fun onPositionAnimated(args: ClockPositionAnimationArgs) {
            largeClock.offsetGlyphsForStepClockAnimation(args)
        }
    }

+4 −20
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import com.android.systemui.plugins.clocks.ClockFaceController
import com.android.systemui.plugins.clocks.ClockFaceEvents
import com.android.systemui.plugins.clocks.ClockFaceLayout
import com.android.systemui.plugins.clocks.ClockFontAxis.Companion.merge
import com.android.systemui.plugins.clocks.ClockPositionAnimationArgs
import com.android.systemui.plugins.clocks.ClockViewIds
import com.android.systemui.plugins.clocks.ThemeConfig
import com.android.systemui.plugins.clocks.TimeFormatKind
@@ -81,19 +82,6 @@ class FlexClockFaceController(
            FrameLayout.LayoutParams(MATCH_PARENT, MATCH_PARENT).apply { gravity = Gravity.CENTER }
    }

    /** See documentation at [FlexClockView.offsetGlyphsForStepClockAnimation]. */
    private fun offsetGlyphsForStepClockAnimation(
        clockStartLeft: Int,
        direction: Int,
        fraction: Float,
    ) {
        (view as? FlexClockView)?.offsetGlyphsForStepClockAnimation(
            clockStartLeft,
            direction,
            fraction,
        )
    }

    override val layout: ClockFaceLayout =
        DefaultClockFaceLayout(view).apply {
            views[0].id =
@@ -223,13 +211,9 @@ class FlexClockFaceController(
                view.invalidate()
            }

            override fun onPositionUpdated(fromLeft: Int, direction: Int, fraction: Float) {
                layerController.animations.onPositionUpdated(fromLeft, direction, fraction)
                if (isLargeClock) offsetGlyphsForStepClockAnimation(fromLeft, direction, fraction)
            }

            override fun onPositionUpdated(distance: Float, fraction: Float) {
                layerController.animations.onPositionUpdated(distance, fraction)
            override fun onPositionAnimated(args: ClockPositionAnimationArgs) {
                layerController.animations.onPositionAnimated(args)
                if (isLargeClock) (view as? FlexClockView)?.offsetGlyphsForStepClockAnimation(args)
            }

            override fun onFidgetTap(x: Float, y: Float) {
Loading