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

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

Merge "Add transition animation for weather clock in split shade" into udc-dev

parents b0650775 5ab8e5d7
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -50,6 +50,7 @@ class DefaultClockController(
    private val layoutInflater: LayoutInflater,
    private val layoutInflater: LayoutInflater,
    private val resources: Resources,
    private val resources: Resources,
    private val settings: ClockSettings?,
    private val settings: ClockSettings?,
    private val hasStepClockAnimation: Boolean = false,
) : ClockController {
) : ClockController {
    override val smallClock: DefaultClockFaceController
    override val smallClock: DefaultClockFaceController
    override val largeClock: LargeClockFaceController
    override val largeClock: LargeClockFaceController
@@ -170,7 +171,8 @@ class DefaultClockController(
        view: AnimatableClockView,
        view: AnimatableClockView,
        seedColor: Int?,
        seedColor: Int?,
    ) : DefaultClockFaceController(view, seedColor) {
    ) : DefaultClockFaceController(view, seedColor) {
        override val config = ClockFaceConfig(hasCustomPositionUpdatedAnimation = true)
        override val config =
            ClockFaceConfig(hasCustomPositionUpdatedAnimation = hasStepClockAnimation)


        init {
        init {
            animations = LargeClockAnimations(view, 0f, 0f)
            animations = LargeClockAnimations(view, 0f, 0f)
+10 −3
Original line number Original line Diff line number Diff line
@@ -29,10 +29,11 @@ const val DEFAULT_CLOCK_NAME = "Default Clock"
const val DEFAULT_CLOCK_ID = "DEFAULT"
const val DEFAULT_CLOCK_ID = "DEFAULT"


/** Provides the default system clock */
/** Provides the default system clock */
class DefaultClockProvider constructor(
class DefaultClockProvider(
    val ctx: Context,
    val ctx: Context,
    val layoutInflater: LayoutInflater,
    val layoutInflater: LayoutInflater,
    val resources: Resources
    val resources: Resources,
    val hasStepClockAnimation: Boolean = false
) : ClockProvider {
) : ClockProvider {
    override fun getClocks(): List<ClockMetadata> =
    override fun getClocks(): List<ClockMetadata> =
        listOf(ClockMetadata(DEFAULT_CLOCK_ID, DEFAULT_CLOCK_NAME))
        listOf(ClockMetadata(DEFAULT_CLOCK_ID, DEFAULT_CLOCK_NAME))
@@ -42,7 +43,13 @@ class DefaultClockProvider constructor(
            throw IllegalArgumentException("${settings.clockId} is unsupported by $TAG")
            throw IllegalArgumentException("${settings.clockId} is unsupported by $TAG")
        }
        }


        return DefaultClockController(ctx, layoutInflater, resources, settings)
        return DefaultClockController(
            ctx,
            layoutInflater,
            resources,
            settings,
            hasStepClockAnimation,
        )
    }
    }


    override fun getClockThumbnail(id: ClockId): Drawable? {
    override fun getClockThumbnail(id: ClockId): Drawable? {
+5 −3
Original line number Original line Diff line number Diff line
@@ -46,7 +46,6 @@ import com.android.keyguard.KeyguardClockSwitch.ClockSize;
import com.android.keyguard.logging.KeyguardLogger;
import com.android.keyguard.logging.KeyguardLogger;
import com.android.systemui.R;
import com.android.systemui.R;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.Flags;
import com.android.systemui.plugins.ClockController;
import com.android.systemui.plugins.ClockController;
import com.android.systemui.statusbar.notification.AnimatableProperty;
import com.android.systemui.statusbar.notification.AnimatableProperty;
import com.android.systemui.statusbar.notification.PropertyAnimator;
import com.android.systemui.statusbar.notification.PropertyAnimator;
@@ -363,7 +362,7 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
        boolean customClockAnimation = clock != null
        boolean customClockAnimation = clock != null
                && clock.getLargeClock().getConfig().getHasCustomPositionUpdatedAnimation();
                && clock.getLargeClock().getConfig().getHasCustomPositionUpdatedAnimation();


        if (mFeatureFlags.isEnabled(Flags.STEP_CLOCK_ANIMATION) && customClockAnimation) {
        if (customClockAnimation) {
            // Find the clock, so we can exclude it from this transition.
            // Find the clock, so we can exclude it from this transition.
            FrameLayout clockContainerView = mView.findViewById(R.id.lockscreen_clock_view_large);
            FrameLayout clockContainerView = mView.findViewById(R.id.lockscreen_clock_view_large);


@@ -400,8 +399,10 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
    @VisibleForTesting
    @VisibleForTesting
    static class SplitShadeTransitionAdapter extends Transition {
    static class SplitShadeTransitionAdapter extends Transition {
        private static final String PROP_BOUNDS_LEFT = "splitShadeTransitionAdapter:boundsLeft";
        private static final String PROP_BOUNDS_LEFT = "splitShadeTransitionAdapter:boundsLeft";
        private static final String PROP_BOUNDS_RIGHT = "splitShadeTransitionAdapter:boundsRight";
        private static final String PROP_X_IN_WINDOW = "splitShadeTransitionAdapter:xInWindow";
        private static final String PROP_X_IN_WINDOW = "splitShadeTransitionAdapter:xInWindow";
        private static final String[] TRANSITION_PROPERTIES = { PROP_BOUNDS_LEFT, PROP_X_IN_WINDOW};
        private static final String[] TRANSITION_PROPERTIES = {
                PROP_BOUNDS_LEFT, PROP_BOUNDS_RIGHT, PROP_X_IN_WINDOW};


        private final KeyguardClockSwitchController mController;
        private final KeyguardClockSwitchController mController;


@@ -412,6 +413,7 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV


        private void captureValues(TransitionValues transitionValues) {
        private void captureValues(TransitionValues transitionValues) {
            transitionValues.values.put(PROP_BOUNDS_LEFT, transitionValues.view.getLeft());
            transitionValues.values.put(PROP_BOUNDS_LEFT, transitionValues.view.getLeft());
            transitionValues.values.put(PROP_BOUNDS_RIGHT, transitionValues.view.getRight());
            int[] locationInWindowTmp = new int[2];
            int[] locationInWindowTmp = new int[2];
            transitionValues.view.getLocationInWindow(locationInWindowTmp);
            transitionValues.view.getLocationInWindow(locationInWindowTmp);
            transitionValues.values.put(PROP_X_IN_WINDOW, locationInWindowTmp[0]);
            transitionValues.values.put(PROP_X_IN_WINDOW, locationInWindowTmp[0]);
+5 −1
Original line number Original line Diff line number Diff line
@@ -63,7 +63,11 @@ public abstract class ClockRegistryModule {
                bgDispatcher,
                bgDispatcher,
                featureFlags.isEnabled(Flags.LOCKSCREEN_CUSTOM_CLOCKS),
                featureFlags.isEnabled(Flags.LOCKSCREEN_CUSTOM_CLOCKS),
                /* handleAllUsers= */ true,
                /* handleAllUsers= */ true,
                new DefaultClockProvider(context, layoutInflater, resources),
                new DefaultClockProvider(
                        context,
                        layoutInflater,
                        resources,
                        featureFlags.isEnabled(Flags.STEP_CLOCK_ANIMATION)),
                context.getString(R.string.lockscreen_clock_id_fallback),
                context.getString(R.string.lockscreen_clock_id_fallback),
                logBuffer,
                logBuffer,
                /* keepAllLoaded = */ false,
                /* keepAllLoaded = */ false,