From 7173943e6380c58c707c5dbf7fca674ab7d62f12 Mon Sep 17 00:00:00 2001 From: Beth Thibodeau Date: Mon, 8 Aug 2022 18:33:22 -0500 Subject: [PATCH] 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 --- .../src/com/android/systemui/media/MediaDataFilter.kt | 8 ++++---- .../src/com/android/systemui/media/MediaDataFilterTest.kt | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaDataFilter.kt b/packages/SystemUI/src/com/android/systemui/media/MediaDataFilter.kt index 81efdf591b41a..e0c8d66cb6fd6 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaDataFilter.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaDataFilter.kt @@ -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? diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/MediaDataFilterTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/MediaDataFilterTest.kt index 6a532d74967f1..6468fe1a81d7e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/MediaDataFilterTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/MediaDataFilterTest.kt @@ -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())