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

Commit 43d826bf authored by Sherry Zhou's avatar Sherry Zhou Committed by Automerger Merge Worker
Browse files

Merge "Fix weather clock clipped when swiping in Lockscreen" into udc-dev am:...

Merge "Fix weather clock clipped when swiping in Lockscreen" into udc-dev am: 3146826c am: 1a566d3e

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23048058



Change-Id: I715a9248a2c8063c7e97af43100e777a02b79714
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents f0eea371 1a566d3e
Loading
Loading
Loading
Loading
+14 −0
Original line number Original line Diff line number Diff line
@@ -178,6 +178,20 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
        }
        }
    }
    }


    /**
     * Set alpha directly to mView will clip clock, so we set alpha to clock face instead
     */
    public void setAlpha(float alpha) {
        ClockController clock = getClock();
        if (clock != null) {
            clock.getLargeClock().getView().setAlpha(alpha);
            clock.getSmallClock().getView().setAlpha(alpha);
        }
        if (mStatusArea != null) {
            mStatusArea.setAlpha(alpha);
        }
    }

    /**
    /**
     * Attach the controller to the view it relates to.
     * Attach the controller to the view it relates to.
     */
     */
+27 −0
Original line number Original line Diff line number Diff line
@@ -135,4 +135,31 @@ public class KeyguardStatusView extends GridLayout {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        Trace.endSection();
        Trace.endSection();
    }
    }

    /**
     * Clock content will be clipped when goes beyond bounds,
     * so we setAlpha for all views except clock
     */
    public void setAlpha(float alpha, boolean excludeClock) {
        if (!excludeClock) {
            setAlpha(alpha);
            return;
        }
        if (alpha == 1 || alpha == 0) {
            setAlpha(alpha);
        }
        for (int i = 0; i < getChildCount(); i++) {
            View child = getChildAt(i);
            if (child == mStatusViewContainer) {
                for (int j = 0; j < mStatusViewContainer.getChildCount(); j++) {
                    View innerChild = mStatusViewContainer.getChildAt(j);
                    if (innerChild != mClockView) {
                        innerChild.setAlpha(alpha);
                    }
                }
            } else {
                child.setAlpha(alpha);
            }
        }
    }
}
}
+2 −1
Original line number Original line Diff line number Diff line
@@ -180,7 +180,8 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
     */
     */
    public void setAlpha(float alpha) {
    public void setAlpha(float alpha) {
        if (!mKeyguardVisibilityHelper.isVisibilityAnimating()) {
        if (!mKeyguardVisibilityHelper.isVisibilityAnimating()) {
            mView.setAlpha(alpha);
            mView.setAlpha(alpha, true);
            mKeyguardClockSwitchController.setAlpha(alpha);
        }
        }
    }
    }


+12 −2
Original line number Original line Diff line number Diff line
@@ -134,6 +134,7 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase {


    private KeyguardClockSwitchController mController;
    private KeyguardClockSwitchController mController;
    private View mSliceView;
    private View mSliceView;
    private LinearLayout mStatusArea;
    private FakeExecutor mExecutor;
    private FakeExecutor mExecutor;


    @Before
    @Before
@@ -195,8 +196,8 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase {


        mSliceView = new View(getContext());
        mSliceView = new View(getContext());
        when(mView.findViewById(R.id.keyguard_slice_view)).thenReturn(mSliceView);
        when(mView.findViewById(R.id.keyguard_slice_view)).thenReturn(mSliceView);
        when(mView.findViewById(R.id.keyguard_status_area)).thenReturn(
        mStatusArea = new LinearLayout(getContext());
                new LinearLayout(getContext()));
        when(mView.findViewById(R.id.keyguard_status_area)).thenReturn(mStatusArea);
    }
    }


    @Test
    @Test
@@ -401,6 +402,15 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase {
        assertNull(mController.getClock());
        assertNull(mController.getClock());
    }
    }


    @Test
    public void testSetAlpha_setClockAlphaForCLockFace() {
        mController.onViewAttached();
        mController.setAlpha(0.5f);
        verify(mLargeClockView).setAlpha(0.5f);
        verify(mSmallClockView).setAlpha(0.5f);
        assertEquals(0.5f, mStatusArea.getAlpha(), 0.0f);
    }

    private void verifyAttachment(VerificationMode times) {
    private void verifyAttachment(VerificationMode times) {
        verify(mClockRegistry, times).registerClockChangeListener(
        verify(mClockRegistry, times).registerClockChangeListener(
                any(ClockRegistry.ClockChangeListener.class));
                any(ClockRegistry.ClockChangeListener.class));
+10 −0
Original line number Original line Diff line number Diff line
@@ -24,6 +24,8 @@ class KeyguardStatusViewTest : SysuiTestCase() {
        get() = keyguardStatusView.findViewById(R.id.status_view_media_container)
        get() = keyguardStatusView.findViewById(R.id.status_view_media_container)
    private val statusViewContainer: ViewGroup
    private val statusViewContainer: ViewGroup
        get() = keyguardStatusView.findViewById(R.id.status_view_container)
        get() = keyguardStatusView.findViewById(R.id.status_view_container)
    private val clockView: ViewGroup
        get() = keyguardStatusView.findViewById(R.id.keyguard_clock_container)
    private val childrenExcludingMedia
    private val childrenExcludingMedia
        get() = statusViewContainer.children.filter { it != mediaView }
        get() = statusViewContainer.children.filter { it != mediaView }


@@ -56,4 +58,12 @@ class KeyguardStatusViewTest : SysuiTestCase() {
            assertThat(it.translationY).isEqualTo(translationY)
            assertThat(it.translationY).isEqualTo(translationY)
        }
        }
    }
    }

    @Test
    fun setAlphaExcludeClock() {
        keyguardStatusView.setAlpha(0.5f, /* excludeClock= */true)
        assertThat(statusViewContainer.alpha).isNotEqualTo(0.5f)
        assertThat(mediaView.alpha).isEqualTo(0.5f)
        assertThat(clockView.alpha).isNotEqualTo(0.5f)
    }
}
}