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

Commit c83c9b24 authored by Beth Thibodeau's avatar Beth Thibodeau
Browse files

Only update arrow constraints if visibility changes

Bug: 439283215
Flag: com.android.systemui.media_carousel_arrows
Test: atest MediaControlPanelTest
Change-Id: I9244cde3147947f4ee6072012d2d8c70537a526e
parent f15f0541
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -205,6 +205,7 @@ public class MediaControlPanel {
    private boolean mIsArtworkBound = false;
    private int mArtworkBoundId = 0;
    private int mArtworkNextBindRequestId = 0;
    private boolean mPageArrowsVisible = false;

    private final KeyguardStateController mKeyguardStateController;
    private final ActivityIntentHelper mActivityIntentHelper;
@@ -1095,7 +1096,8 @@ public class MediaControlPanel {
    }

    void setPageArrowsVisible(boolean visible) {
        if (!Flags.mediaCarouselArrows()) return;
        if (!Flags.mediaCarouselArrows() || mPageArrowsVisible == visible) return;
        mPageArrowsVisible = visible;

        ConstraintSet expandedSet = mMediaViewController.getExpandedLayout();
        setVisibleAndAlpha(expandedSet, R.id.page_left, visible);
+18 −0
Original line number Diff line number Diff line
@@ -118,6 +118,7 @@ import org.mockito.Mockito.`when` as whenever
import org.mockito.junit.MockitoJUnit
import org.mockito.kotlin.any
import org.mockito.kotlin.argumentCaptor
import org.mockito.kotlin.clearInvocations
import org.mockito.kotlin.eq

private const val KEY = "TEST_KEY"
@@ -1923,6 +1924,20 @@ public class MediaControlPanelTest : SysuiTestCase() {
        verify(collapsedSet).setGuidelineEnd(eq(R.id.action_button_guideline), eq(guidePx))
    }

    @RequiresFlagsEnabled(Flags.FLAG_MEDIA_CAROUSEL_ARROWS)
    @Test
    fun setArrowsVisible_alreadyVisible_noOp() {
        setArrowsVisible()

        // If same visibility is set again, does not update the constraints again
        player.setPageArrowsVisible(true)
        verify(expandedSet).setVisibility(R.id.page_left, ConstraintSet.VISIBLE)
        verify(expandedSet).setVisibility(R.id.page_right, ConstraintSet.VISIBLE)

        verify(collapsedSet).setVisibility(R.id.page_left, ConstraintSet.VISIBLE)
        verify(collapsedSet).setVisibility(R.id.page_right, ConstraintSet.VISIBLE)
    }

    @RequiresFlagsEnabled(Flags.FLAG_MEDIA_CAROUSEL_ARROWS)
    @Test
    fun setArrowsNotVisible() {
@@ -1931,6 +1946,9 @@ public class MediaControlPanelTest : SysuiTestCase() {

        player.attachPlayer(viewHolder)
        player.bindPlayer(mediaData, PACKAGE)
        player.setPageArrowsVisible(true)
        clearInvocations(expandedSet)
        clearInvocations(collapsedSet)

        player.setPageArrowsVisible(false)