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

Commit 6c6d773d authored by Alex Shabalin's avatar Alex Shabalin Committed by Alexandr Shabalin
Browse files

Don't request suggestion when the player is in resumption state.

Previously, the suggestion could be requested for a player in resumption
state if other players are in the active state.

Fix: 441361020
Test: atest MediaControlPanelTest
Test: On a physical device
Flag: com.android.systemui.enable_suggested_device_ui
Change-Id: I55616f5da162a5d69d4c3ccb717bbad80b2c8cf6
parent bdf830e7
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -1088,11 +1088,7 @@ constructor(
        val visibleMediaIndex = mediaCarouselScrollHandler.visibleMediaIndex
        debugLogger.logCardVisibilityChanged(isCarouselVisible, visibleMediaIndex)

        if (
            !enableSuggestedDeviceUi() ||
                !isCarouselVisible ||
                MediaPlayerData.mediaData().all { it.second.resumption }
        ) {
        if (!enableSuggestedDeviceUi() || !isCarouselVisible) {
            return
        }
        if (MediaPlayerData.players().size > visibleMediaIndex) {
+3 −0
Original line number Diff line number Diff line
@@ -613,6 +613,9 @@ public class MediaControlPanel {
        if (!Flags.enableSuggestedDeviceUi()) {
            return;
        }
        if (mMediaData.getResumption()) {
            return;
        }
        @Nullable Runnable onSuggestionVisibleRunnable = mOnSuggestionSpaceVisibleRunnable;
        if (onSuggestionVisibleRunnable != null) {
            onSuggestionVisibleRunnable.run();
+38 −0
Original line number Diff line number Diff line
@@ -1326,6 +1326,44 @@ public class MediaControlPanelTest : SysuiTestCase() {
            .isEqualTo(View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS)
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SUGGESTED_DEVICE_UI)
    fun onPanelFullyVisible_activeState_requestsSuggestion() {
        player.attachPlayer(viewHolder)

        val suggestionData =
            SuggestionData(
                suggestedMediaDeviceData = null,
                onSuggestionSpaceVisible = mock(Runnable::class.java),
            )
        player.bindPlayer(
            mediaData.copy(suggestionData = suggestionData, resumption = false),
            PACKAGE,
        )
        player.onPanelFullyVisible()

        verify(suggestionData.onSuggestionSpaceVisible).run()
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SUGGESTED_DEVICE_UI)
    fun onPanelFullyVisible_resumptionState_doesNothing() {
        player.attachPlayer(viewHolder)

        val suggestionData =
            SuggestionData(
                suggestedMediaDeviceData = null,
                onSuggestionSpaceVisible = mock(Runnable::class.java),
            )
        player.bindPlayer(
            mediaData.copy(suggestionData = suggestionData, resumption = true),
            PACKAGE,
        )
        player.onPanelFullyVisible()

        verify(suggestionData.onSuggestionSpaceVisible, never()).run()
    }

    /* ***** Guts tests for the player ***** */

    @Test