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

Commit 7173943e authored by Beth Thibodeau's avatar Beth Thibodeau
Browse files

Fix reactivated media card when recommendation is invalid

Recently active media should show whenever we get an active
recommendation card, even if it is invalid. This was not happening and the
media card would only be visible if the recommendation card was valid.

This adds a condition to hasActiveMediaOrRecommendation that checks
whether a card was reactivated, so that MediaHosts calling it get the
correct visibility.

Fixes: 241150583
Test: manual (steps in bug)
Test: atest MediaDataFilterTest
Change-Id: I5347367bc86a9ca499a47b3ef310e9e5774d79c5
parent bd614b00
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -266,11 +266,11 @@ class MediaDataFilter @Inject constructor(
    }

    /**
     * Are there any media notifications active, including the recommendation?
     * Are there any active media entries, including the recommendation?
     */
    fun hasActiveMediaOrRecommendation() =
            userEntries.any { it.value.active } ||
                    (smartspaceMediaData.isActive && smartspaceMediaData.isValid())
    fun hasActiveMediaOrRecommendation() = userEntries.any { it.value.active } ||
            (smartspaceMediaData.isActive &&
                (smartspaceMediaData.isValid() || reactivatedKey != null))

    /**
     * Are there any media entries we should display?
+4 −4
Original line number Diff line number Diff line
@@ -17,9 +17,9 @@
package com.android.systemui.media

import android.app.smartspace.SmartspaceAction
import androidx.test.filters.SmallTest
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
import androidx.test.filters.SmallTest
import com.android.internal.logging.InstanceId
import com.android.systemui.SysuiTestCase
import com.android.systemui.broadcast.BroadcastDispatcher
@@ -29,18 +29,18 @@ import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.eq
import com.android.systemui.util.time.FakeSystemClock
import com.google.common.truth.Truth.assertThat
import java.util.concurrent.Executor
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.anyBoolean
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.Mock
import org.mockito.Mockito.`when`
import org.mockito.Mockito.never
import org.mockito.Mockito.reset
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations
import java.util.concurrent.Executor

private const val KEY = "TEST_KEY"
private const val KEY_ALT = "TEST_KEY_2"
@@ -433,7 +433,7 @@ class MediaDataFilterTest : SysuiTestCase() {
        val dataCurrentAndActive = dataCurrent.copy(active = true)
        verify(listener).onMediaDataLoaded(eq(KEY), eq(KEY), eq(dataCurrentAndActive), eq(true),
                eq(100), eq(true))
        assertThat(mediaDataFilter.hasActiveMediaOrRecommendation()).isFalse()
        assertThat(mediaDataFilter.hasActiveMediaOrRecommendation()).isTrue()
        // Smartspace update shouldn't be propagated for the empty rec list.
        verify(listener, never()).onSmartspaceMediaDataLoaded(any(), any(), anyBoolean())
        verify(logger, never()).logRecommendationAdded(any(), any())