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
This commit is contained in:
@@ -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?
|
||||
|
||||
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user