diff options
10 files changed, 99 insertions, 184 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModelTest.kt index 067b00c1658b..0551bfb89865 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModelTest.kt @@ -33,14 +33,13 @@ import com.android.systemui.media.controls.domain.pipeline.MediaDataFilterImpl import com.android.systemui.media.controls.domain.pipeline.interactor.mediaCarouselInteractor import com.android.systemui.media.controls.domain.pipeline.interactor.mediaRecommendationsInteractor import com.android.systemui.media.controls.domain.pipeline.mediaDataFilter -import com.android.systemui.media.controls.shared.mediaLogger -import com.android.systemui.media.controls.shared.mockMediaLogger import com.android.systemui.media.controls.shared.model.MediaData import com.android.systemui.media.controls.shared.model.SmartspaceMediaData import com.android.systemui.statusbar.notification.collection.provider.visualStabilityProvider import com.android.systemui.statusbar.notificationLockscreenUserManager import com.android.systemui.testKosmos import com.android.systemui.util.mockito.any +import com.android.systemui.util.mockito.eq import com.android.systemui.util.mockito.whenever import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.test.runTest @@ -49,16 +48,12 @@ import org.junit.Test import org.junit.runner.RunWith import org.mockito.ArgumentMatchers import org.mockito.Mockito -import org.mockito.kotlin.eq -import org.mockito.kotlin.never -import org.mockito.kotlin.reset -import org.mockito.kotlin.verify @SmallTest @RunWith(AndroidJUnit4::class) class MediaCarouselViewModelTest : SysuiTestCase() { - private val kosmos = testKosmos().apply { mediaLogger = mockMediaLogger } + private val kosmos = testKosmos() private val testScope = kosmos.testScope private val mediaDataFilter: MediaDataFilterImpl = kosmos.mediaDataFilter @@ -171,64 +166,6 @@ class MediaCarouselViewModelTest : SysuiTestCase() { assertThat(mediaControl.isMediaFromRec).isTrue() } - @Test - fun addMediaControlThenRemove_mediaEventsAreLogged() = - testScope.runTest { - val sortedMedia by collectLastValue(underTest.mediaItems) - val instanceId = InstanceId.fakeInstanceId(123) - - loadMediaControl(KEY, instanceId) - - val mediaControl = sortedMedia?.get(0) as MediaCommonViewModel.MediaControl - assertThat(mediaControl.instanceId).isEqualTo(instanceId) - - // when media control is added to carousel - mediaControl.onAdded(mediaControl) - - verify(kosmos.mediaLogger).logMediaCardAdded(eq(instanceId)) - - reset(kosmos.mediaLogger) - - // when media control is updated. - mediaControl.onUpdated(mediaControl) - - verify(kosmos.mediaLogger, never()).logMediaCardAdded(eq(instanceId)) - - mediaDataFilter.onMediaDataRemoved(KEY, true) - assertThat(sortedMedia).isEmpty() - - // when media control is removed from carousel - mediaControl.onRemoved(true) - - verify(kosmos.mediaLogger).logMediaCardRemoved(eq(instanceId)) - } - - @Test - fun addMediaRecommendationThenRemove_mediaEventsAreLogged() = - testScope.runTest { - val sortedMedia by collectLastValue(underTest.mediaItems) - kosmos.fakeFeatureFlagsClassic.set(Flags.MEDIA_RETAIN_RECOMMENDATIONS, false) - - loadMediaRecommendations() - - val mediaRecommendations = - sortedMedia?.get(0) as MediaCommonViewModel.MediaRecommendations - assertThat(mediaRecommendations.key).isEqualTo(KEY_MEDIA_SMARTSPACE) - - // when media recommendation is added to carousel - mediaRecommendations.onAdded(mediaRecommendations) - - verify(kosmos.mediaLogger).logMediaRecommendationCardAdded(eq(KEY_MEDIA_SMARTSPACE)) - - mediaDataFilter.onSmartspaceMediaDataRemoved(KEY, true) - assertThat(sortedMedia).isEmpty() - - // when media recommendation is removed from carousel - mediaRecommendations.onRemoved(true) - - verify(kosmos.mediaLogger).logMediaRecommendationCardRemoved(eq(KEY_MEDIA_SMARTSPACE)) - } - private fun loadMediaControl(key: String, instanceId: InstanceId, isPlaying: Boolean = true) { whenever(notificationLockscreenUserManager.isCurrentProfile(USER_ID)).thenReturn(true) whenever(notificationLockscreenUserManager.isProfileAvailable(USER_ID)).thenReturn(true) diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java b/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java index d1c9b8ea1803..52b0b87ddb58 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java @@ -369,9 +369,9 @@ public class LogModule { */ @Provides @SysUISingleton - @MediaLog - public static LogBuffer providesMediaLogBuffer(LogBufferFactory factory) { - return factory.create("MediaLog", 20); + @MediaLoadingLog + public static LogBuffer providesMediaLoadingLogBuffer(LogBufferFactory factory) { + return factory.create("MediaLoadingLog", 20); } /** Allows logging buffers to be tweaked via adb on debug builds but not on prod builds. */ diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaLog.kt b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaLoadingLog.kt index d1dc6f394ee5..05e1b2e2cd23 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaLog.kt +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaLoadingLog.kt @@ -19,5 +19,8 @@ package com.android.systemui.log.dagger import com.android.systemui.log.LogBuffer import javax.inject.Qualifier -/** A [LogBuffer] for [com.android.systemui.media.controls.shared.MediaLogger] */ -@Qualifier @MustBeDocumented @Retention(AnnotationRetention.RUNTIME) annotation class MediaLog +/** A [LogBuffer] for [com.android.systemui.media.controls.domain.pipeline.MediaLoadingLogger] */ +@Qualifier +@MustBeDocumented +@Retention(AnnotationRetention.RUNTIME) +annotation class MediaLoadingLog diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImpl.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImpl.kt index 68f1af311b1b..803e7efa7f60 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImpl.kt @@ -27,7 +27,6 @@ import com.android.systemui.broadcast.BroadcastSender import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.media.controls.data.repository.MediaFilterRepository -import com.android.systemui.media.controls.shared.MediaLogger import com.android.systemui.media.controls.shared.model.EXTRA_KEY_TRIGGER_RESUME import com.android.systemui.media.controls.shared.model.MediaData import com.android.systemui.media.controls.shared.model.MediaDataLoadingModel @@ -71,7 +70,7 @@ constructor( private val logger: MediaUiEventLogger, private val mediaFlags: MediaFlags, private val mediaFilterRepository: MediaFilterRepository, - private val mediaLogger: MediaLogger, + private val mediaLoadingLogger: MediaLoadingLogger, ) : MediaDataManager.Listener { /** Non-UI listeners to media changes. */ private val _listeners: MutableSet<MediaDataProcessor.Listener> = mutableSetOf() @@ -119,7 +118,7 @@ constructor( val isUpdate = mediaFilterRepository.addSelectedUserMediaEntry(data) - mediaLogger.logMediaLoaded(data.instanceId, data.active, "loading media") + mediaLoadingLogger.logMediaLoaded(data.instanceId, data.active, "loading media") mediaFilterRepository.addMediaDataLoadingState( MediaDataLoadingModel.Loaded(data.instanceId), isUpdate @@ -190,7 +189,7 @@ constructor( isSsReactivated = true ) ) - mediaLogger.logMediaLoaded( + mediaLoadingLogger.logMediaLoaded( mediaData.instanceId, mediaData.active, "reactivating media instead of smartspace" @@ -227,7 +226,7 @@ constructor( mediaFilterRepository.setRecommendationsLoadingState( SmartspaceMediaLoadingModel.Loaded(key, shouldPrioritizeMutable) ) - mediaLogger.logRecommendationLoaded(key, data.isActive, "loading recommendations") + mediaLoadingLogger.logRecommendationLoaded(key, data.isActive, "loading recommendations") listeners.forEach { it.onSmartspaceMediaDataLoaded(key, data, shouldPrioritizeMutable) } } @@ -238,7 +237,7 @@ constructor( mediaFilterRepository.addMediaDataLoadingState( MediaDataLoadingModel.Removed(instanceId) ) - mediaLogger.logMediaRemoved(instanceId, "removing media card") + mediaLoadingLogger.logMediaRemoved(instanceId, "removing media card") // Only notify listeners if something actually changed listeners.forEach { it.onMediaDataRemoved(key, userInitiated) } } @@ -254,7 +253,11 @@ constructor( mediaFilterRepository.addMediaDataLoadingState( MediaDataLoadingModel.Loaded(lastActiveId, immediately) ) - mediaLogger.logMediaLoaded(lastActiveId, it.active, "expiring reactivated id") + mediaLoadingLogger.logMediaLoaded( + lastActiveId, + it.active, + "expiring reactivated id" + ) listeners.forEach { listener -> getKey(lastActiveId)?.let { lastActiveKey -> listener.onMediaDataLoaded(lastActiveKey, lastActiveKey, it, immediately) @@ -275,7 +278,11 @@ constructor( mediaFilterRepository.setRecommendationsLoadingState( SmartspaceMediaLoadingModel.Removed(key, immediately) ) - mediaLogger.logRecommendationRemoved(key, immediately, "removing recommendations card") + mediaLoadingLogger.logRecommendationRemoved( + key, + immediately, + "removing recommendations card" + ) listeners.forEach { it.onSmartspaceMediaDataRemoved(key, immediately) } } @@ -289,7 +296,10 @@ constructor( mediaFilterRepository.addMediaDataLoadingState( MediaDataLoadingModel.Removed(data.instanceId) ) - mediaLogger.logMediaRemoved(data.instanceId, "Removing $key after profile change") + mediaLoadingLogger.logMediaRemoved( + data.instanceId, + "Removing $key after profile change" + ) listeners.forEach { listener -> listener.onMediaDataRemoved(key, false) } } } @@ -306,7 +316,7 @@ constructor( mediaFilterRepository.addMediaDataLoadingState( MediaDataLoadingModel.Removed(instanceId) ) - mediaLogger.logMediaRemoved(instanceId, "Removing media after user change") + mediaLoadingLogger.logMediaRemoved(instanceId, "Removing media after user change") getKey(instanceId)?.let { listenersCopy.forEach { listener -> listener.onMediaDataRemoved(it, false) } } @@ -319,7 +329,7 @@ constructor( MediaDataLoadingModel.Loaded(data.instanceId), isUpdate ) - mediaLogger.logMediaLoaded( + mediaLoadingLogger.logMediaLoaded( data.instanceId, data.active, "Re-adding $key after user change" diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/shared/MediaLogger.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaLoadingLogger.kt index 2b710b5a67b7..c6cfd659eed5 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/shared/MediaLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaLoadingLogger.kt @@ -14,18 +14,18 @@ * limitations under the License. */ -package com.android.systemui.media.controls.shared +package com.android.systemui.media.controls.domain.pipeline import com.android.internal.logging.InstanceId import com.android.systemui.dagger.SysUISingleton import com.android.systemui.log.LogBuffer import com.android.systemui.log.core.LogLevel -import com.android.systemui.log.dagger.MediaLog +import com.android.systemui.log.dagger.MediaLoadingLog import javax.inject.Inject /** A buffered log for media loading events. */ @SysUISingleton -class MediaLogger @Inject constructor(@MediaLog private val buffer: LogBuffer) { +class MediaLoadingLogger @Inject constructor(@MediaLoadingLog private val buffer: LogBuffer) { fun logMediaLoaded(instanceId: InstanceId, active: Boolean, reason: String) { buffer.log( @@ -78,43 +78,7 @@ class MediaLogger @Inject constructor(@MediaLog private val buffer: LogBuffer) { ) } - fun logMediaCardAdded(instanceId: InstanceId) { - buffer.log( - TAG, - LogLevel.DEBUG, - { str1 = instanceId.toString() }, - { "adding media card $str1 to carousel" } - ) - } - - fun logMediaCardRemoved(instanceId: InstanceId) { - buffer.log( - TAG, - LogLevel.DEBUG, - { str1 = instanceId.toString() }, - { "removing media card $str1 from carousel" } - ) - } - - fun logMediaRecommendationCardAdded(key: String) { - buffer.log( - TAG, - LogLevel.DEBUG, - { str1 = key }, - { "adding recommendation card $str1 to carousel" } - ) - } - - fun logMediaRecommendationCardRemoved(key: String) { - buffer.log( - TAG, - LogLevel.DEBUG, - { str1 = key }, - { "removing recommendation card $str1 from carousel" } - ) - } - companion object { - private const val TAG = "MediaLog" + private const val TAG = "MediaLoadingLog" } } diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModel.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModel.kt index e7f7171d5be3..c453a212a3cd 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModel.kt @@ -23,7 +23,6 @@ import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.media.controls.domain.pipeline.interactor.MediaCarouselInteractor import com.android.systemui.media.controls.domain.pipeline.interactor.factory.MediaControlInteractorFactory -import com.android.systemui.media.controls.shared.MediaLogger import com.android.systemui.media.controls.shared.model.MediaCommonModel import com.android.systemui.media.controls.util.MediaFlags import com.android.systemui.media.controls.util.MediaUiEventLogger @@ -53,7 +52,6 @@ constructor( private val recommendationsViewModel: MediaRecommendationsViewModel, private val logger: MediaUiEventLogger, private val mediaFlags: MediaFlags, - private val mediaLogger: MediaLogger, ) { val mediaItems: StateFlow<List<MediaCommonViewModel>> = @@ -133,14 +131,10 @@ constructor( instanceId = instanceId, immediatelyUpdateUi = commonModel.mediaLoadedModel.immediatelyUpdateUi, controlViewModel = createMediaControlViewModel(instanceId), - onAdded = { - mediaLogger.logMediaCardAdded(instanceId) - onMediaControlAddedOrUpdated(it, commonModel) - }, + onAdded = { onMediaControlAddedOrUpdated(it, commonModel) }, onRemoved = { interactor.removeMediaControl(instanceId, delay = 0L) mediaControlByInstanceId.remove(instanceId) - mediaLogger.logMediaCardRemoved(instanceId) }, onUpdated = { onMediaControlAddedOrUpdated(it, commonModel) }, isMediaFromRec = commonModel.isMediaFromRec, @@ -174,9 +168,6 @@ constructor( mediaFlags.isPersistentSsCardEnabled(), recsViewModel = recommendationsViewModel, onAdded = { commonViewModel -> - mediaLogger.logMediaRecommendationCardAdded( - commonModel.recsLoadingModel.key - ) onMediaRecommendationAddedOrUpdated( commonViewModel as MediaCommonViewModel.MediaRecommendations ) @@ -224,7 +215,6 @@ constructor( commonModel: MediaCommonModel.MediaRecommendations, immediatelyRemove: Boolean ) { - mediaLogger.logMediaRecommendationCardRemoved(commonModel.recsLoadingModel.key) if (immediatelyRemove || isReorderingAllowed()) { interactor.dismissSmartspaceRecommendation(commonModel.recsLoadingModel.key, 0L) mediaRecs = null diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImplTest.kt index 3705909cbc2b..850e2e014c57 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImplTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImplTest.kt @@ -31,7 +31,6 @@ import com.android.systemui.coroutines.collectLastValue import com.android.systemui.media.controls.MediaTestUtils import com.android.systemui.media.controls.data.repository.MediaFilterRepository import com.android.systemui.media.controls.data.repository.mediaFilterRepository -import com.android.systemui.media.controls.shared.mockMediaLogger import com.android.systemui.media.controls.shared.model.EXTRA_KEY_TRIGGER_RESUME import com.android.systemui.media.controls.shared.model.MediaCommonModel import com.android.systemui.media.controls.shared.model.MediaData @@ -115,7 +114,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { mediaSmartspaceLogger = mockMediaSmartspaceLogger mediaFilterRepository } - private val mediaLogger = kosmos.mockMediaLogger + private val mediaLoadingLogger = kosmos.mockMediaLoadingLogger @Before fun setup() { @@ -134,7 +133,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { logger, mediaFlags, repository, - mediaLogger, + mediaLoadingLogger, ) mediaDataFilter.mediaDataProcessor = mediaDataProcessor mediaDataFilter.addListener(listener) @@ -195,7 +194,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { verify(listener) .onMediaDataLoaded(eq(KEY), eq(null), eq(dataMain), eq(true), eq(0), eq(false)) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded(eq(dataMain.instanceId), eq(dataMain.active), anyString()) assertThat(currentMedia).containsExactly(mediaCommonModel) } @@ -211,7 +210,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { verify(listener, never()) .onMediaDataLoaded(any(), any(), any(), anyBoolean(), anyInt(), anyBoolean()) - verify(mediaLogger, never()).logMediaLoaded(any(), anyBoolean(), anyString()) + verify(mediaLoadingLogger, never()).logMediaLoaded(any(), anyBoolean(), anyString()) assertThat(currentMedia).doesNotContain(mediaCommonModel) } @@ -225,14 +224,14 @@ class MediaDataFilterImplTest : SysuiTestCase() { // GIVEN a media was removed for main user mediaDataFilter.onMediaDataLoaded(KEY, null, dataMain) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded(eq(dataMain.instanceId), eq(dataMain.active), anyString()) assertThat(currentMedia).containsExactly(mediaCommonModel) mediaDataFilter.onMediaDataRemoved(KEY, false) verify(listener).onMediaDataRemoved(eq(KEY), eq(false)) - verify(mediaLogger).logMediaRemoved(eq(dataMain.instanceId), anyString()) + verify(mediaLoadingLogger).logMediaRemoved(eq(dataMain.instanceId), anyString()) assertThat(currentMedia).doesNotContain(mediaCommonModel) } @@ -246,7 +245,8 @@ class MediaDataFilterImplTest : SysuiTestCase() { mediaDataFilter.onMediaDataRemoved(KEY, false) verify(listener, never()).onMediaDataRemoved(eq(KEY), eq(false)) - verify(mediaLogger, never()).logMediaRemoved(eq(dataGuest.instanceId), anyString()) + verify(mediaLoadingLogger, never()) + .logMediaRemoved(eq(dataGuest.instanceId), anyString()) assertThat(currentMedia).isEmpty() } @@ -259,7 +259,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { // GIVEN that we have a media loaded for main user mediaDataFilter.onMediaDataLoaded(KEY, null, dataMain) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded(eq(dataMain.instanceId), eq(dataMain.active), anyString()) assertThat(currentMedia).containsExactly(MediaCommonModel.MediaControl(mediaLoaded)) @@ -268,7 +268,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { // THEN we should remove the main user's media verify(listener).onMediaDataRemoved(eq(KEY), eq(false)) - verify(mediaLogger).logMediaRemoved(eq(dataMain.instanceId), anyString()) + verify(mediaLoadingLogger).logMediaRemoved(eq(dataMain.instanceId), anyString()) assertThat(currentMedia).isEmpty() } @@ -289,10 +289,10 @@ class MediaDataFilterImplTest : SysuiTestCase() { // THEN we should add back the guest user media verify(listener) .onMediaDataLoaded(eq(KEY_ALT), eq(null), eq(dataGuest), eq(true), eq(0), eq(false)) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded(eq(dataGuest.instanceId), eq(dataGuest.active), anyString()) - reset(mediaLogger) + reset(mediaLoadingLogger) // but not the main user's verify(listener, never()) @@ -304,7 +304,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { anyInt(), anyBoolean() ) - verify(mediaLogger, never()) + verify(mediaLoadingLogger, never()) .logMediaLoaded(eq(dataMain.instanceId), anyBoolean(), anyString()) assertThat(currentMedia) .containsExactly(MediaCommonModel.MediaControl(guestLoadedStatesModel)) @@ -327,7 +327,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { val mediaLoadedStatesModel = MediaDataLoadingModel.Loaded(dataMain.instanceId) // THEN we should remove the private profile media verify(listener).onMediaDataRemoved(eq(KEY_ALT), eq(false)) - verify(mediaLogger).logMediaRemoved(eq(dataGuest.instanceId), anyString()) + verify(mediaLoadingLogger).logMediaRemoved(eq(dataGuest.instanceId), anyString()) assertThat(currentMedia) .containsExactly(MediaCommonModel.MediaControl(mediaLoadedStatesModel)) } @@ -591,7 +591,8 @@ class MediaDataFilterImplTest : SysuiTestCase() { assertThat(hasActiveMedia(selectedUserEntries)).isFalse() verify(listener) .onSmartspaceMediaDataLoaded(eq(SMARTSPACE_KEY), eq(smartspaceData), eq(true)) - verify(mediaLogger).logRecommendationLoaded(eq(SMARTSPACE_KEY), eq(true), anyString()) + verify(mediaLoadingLogger) + .logRecommendationLoaded(eq(SMARTSPACE_KEY), eq(true), anyString()) verify(logger).logRecommendationAdded(SMARTSPACE_PACKAGE, SMARTSPACE_INSTANCE_ID) verify(logger, never()).logRecommendationActivated(any(), any(), any()) } @@ -621,8 +622,9 @@ class MediaDataFilterImplTest : SysuiTestCase() { verify(listener, never()) .onMediaDataLoaded(any(), any(), any(), anyBoolean(), anyInt(), anyBoolean()) verify(listener, never()).onSmartspaceMediaDataLoaded(any(), any(), anyBoolean()) - verify(mediaLogger, never()).logMediaLoaded(any(), anyBoolean(), anyString()) - verify(mediaLogger, never()).logRecommendationLoaded(any(), anyBoolean(), anyString()) + verify(mediaLoadingLogger, never()).logMediaLoaded(any(), anyBoolean(), anyString()) + verify(mediaLoadingLogger, never()) + .logRecommendationLoaded(any(), anyBoolean(), anyString()) verify(logger, never()).logRecommendationAdded(any(), any()) verify(logger, never()).logRecommendationActivated(any(), any(), any()) } @@ -660,7 +662,8 @@ class MediaDataFilterImplTest : SysuiTestCase() { assertThat(hasActiveMedia(selectedUserEntries)).isFalse() verify(listener) .onSmartspaceMediaDataLoaded(eq(SMARTSPACE_KEY), eq(smartspaceData), eq(true)) - verify(mediaLogger).logRecommendationLoaded(eq(SMARTSPACE_KEY), eq(true), anyString()) + verify(mediaLoadingLogger) + .logRecommendationLoaded(eq(SMARTSPACE_KEY), eq(true), anyString()) verify(logger).logRecommendationAdded(SMARTSPACE_PACKAGE, SMARTSPACE_INSTANCE_ID) verify(logger, never()).logRecommendationActivated(any(), any(), any()) } @@ -695,7 +698,8 @@ class MediaDataFilterImplTest : SysuiTestCase() { .isFalse() assertThat(hasActiveMedia(selectedUserEntries)).isFalse() verify(listener, never()).onSmartspaceMediaDataLoaded(any(), any(), anyBoolean()) - verify(mediaLogger, never()).logRecommendationLoaded(any(), anyBoolean(), anyString()) + verify(mediaLoadingLogger, never()) + .logRecommendationLoaded(any(), anyBoolean(), anyString()) verify(logger, never()).logRecommendationAdded(any(), any()) verify(logger, never()).logRecommendationActivated(any(), any(), any()) } @@ -723,10 +727,10 @@ class MediaDataFilterImplTest : SysuiTestCase() { assertThat(currentMedia).containsExactly(controlCommonModel) verify(listener) .onMediaDataLoaded(eq(KEY), eq(null), eq(dataCurrent), eq(true), eq(0), eq(false)) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded(eq(dataCurrent.instanceId), eq(dataCurrent.active), anyString()) - reset(mediaLogger) + reset(mediaLoadingLogger) // AND we get a smartspace signal mediaDataFilter.onSmartspaceMediaDataLoaded(SMARTSPACE_KEY, smartspaceData) @@ -745,9 +749,10 @@ class MediaDataFilterImplTest : SysuiTestCase() { verify(listener, never()) .onMediaDataLoaded(eq(KEY), eq(KEY), any(), anyBoolean(), anyInt(), anyBoolean()) verify(listener, never()).onSmartspaceMediaDataLoaded(any(), any(), anyBoolean()) - verify(mediaLogger, never()) + verify(mediaLoadingLogger, never()) .logMediaLoaded(eq(dataCurrent.instanceId), anyBoolean(), anyString()) - verify(mediaLogger, never()).logRecommendationLoaded(any(), anyBoolean(), anyString()) + verify(mediaLoadingLogger, never()) + .logRecommendationLoaded(any(), anyBoolean(), anyString()) verify(logger, never()).logRecommendationAdded(any(), any()) verify(logger, never()).logRecommendationActivated(any(), any(), any()) } @@ -770,7 +775,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { assertThat(currentMedia).containsExactly(controlCommonModel) verify(listener) .onMediaDataLoaded(eq(KEY), eq(null), eq(dataCurrent), eq(true), eq(0), eq(false)) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded(eq(dataCurrent.instanceId), eq(dataCurrent.active), anyString()) // AND we get a smartspace signal @@ -805,7 +810,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { eq(100), eq(true) ) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded( eq(dataCurrentAndActive.instanceId), eq(dataCurrentAndActive.active), @@ -813,7 +818,8 @@ class MediaDataFilterImplTest : SysuiTestCase() { ) // Smartspace update shouldn't be propagated for the empty rec list. verify(listener, never()).onSmartspaceMediaDataLoaded(any(), any(), anyBoolean()) - verify(mediaLogger, never()).logRecommendationLoaded(any(), anyBoolean(), anyString()) + verify(mediaLoadingLogger, never()) + .logRecommendationLoaded(any(), anyBoolean(), anyString()) verify(logger, never()).logRecommendationAdded(any(), any()) verify(logger).logRecommendationActivated(eq(APP_UID), eq(PACKAGE), eq(INSTANCE_ID)) } @@ -840,7 +846,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { assertThat(currentMedia).containsExactly(controlCommonModel) verify(listener) .onMediaDataLoaded(eq(KEY), eq(null), eq(dataCurrent), eq(true), eq(0), eq(false)) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded(eq(dataCurrent.instanceId), eq(dataCurrent.active), anyString()) // AND we get a smartspace signal @@ -859,7 +865,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { eq(100), eq(true) ) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded( eq(dataCurrentAndActive.instanceId), eq(dataCurrentAndActive.active), @@ -884,7 +890,8 @@ class MediaDataFilterImplTest : SysuiTestCase() { assertThat(currentMedia).containsExactly(controlCommonModel, recsCommonModel) verify(listener) .onSmartspaceMediaDataLoaded(eq(SMARTSPACE_KEY), eq(smartspaceData), eq(false)) - verify(mediaLogger).logRecommendationLoaded(eq(SMARTSPACE_KEY), eq(true), anyString()) + verify(mediaLoadingLogger) + .logRecommendationLoaded(eq(SMARTSPACE_KEY), eq(true), anyString()) verify(logger).logRecommendationAdded(SMARTSPACE_PACKAGE, SMARTSPACE_INSTANCE_ID) verify(logger).logRecommendationActivated(eq(APP_UID), eq(PACKAGE), eq(INSTANCE_ID)) } @@ -901,7 +908,8 @@ class MediaDataFilterImplTest : SysuiTestCase() { mediaDataFilter.onSmartspaceMediaDataRemoved(SMARTSPACE_KEY) verify(listener).onSmartspaceMediaDataRemoved(SMARTSPACE_KEY) - verify(mediaLogger).logRecommendationRemoved(eq(SMARTSPACE_KEY), eq(true), anyString()) + verify(mediaLoadingLogger) + .logRecommendationRemoved(eq(SMARTSPACE_KEY), eq(true), anyString()) assertThat(currentMedia).isEmpty() assertThat( hasActiveMediaOrRecommendation( @@ -933,7 +941,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { assertThat(currentMedia).containsExactly(controlCommonModel) verify(listener) .onMediaDataLoaded(eq(KEY), eq(null), eq(dataCurrent), eq(true), eq(0), eq(false)) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded(eq(dataCurrent.instanceId), eq(dataCurrent.active), anyString()) runCurrent() @@ -950,7 +958,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { eq(100), eq(true) ) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded( eq(dataCurrentAndActive.instanceId), eq(dataCurrentAndActive.active), @@ -960,7 +968,8 @@ class MediaDataFilterImplTest : SysuiTestCase() { mediaDataFilter.onSmartspaceMediaDataRemoved(SMARTSPACE_KEY) verify(listener).onSmartspaceMediaDataRemoved(SMARTSPACE_KEY) - verify(mediaLogger).logRecommendationRemoved(eq(SMARTSPACE_KEY), eq(true), anyString()) + verify(mediaLoadingLogger) + .logRecommendationRemoved(eq(SMARTSPACE_KEY), eq(true), anyString()) assertThat(currentMedia).containsExactly(controlCommonModel) assertThat( hasActiveMediaOrRecommendation( @@ -991,7 +1000,8 @@ class MediaDataFilterImplTest : SysuiTestCase() { verify(listener) .onSmartspaceMediaDataLoaded(eq(SMARTSPACE_KEY), eq(smartspaceData), eq(false)) - verify(mediaLogger).logRecommendationLoaded(eq(SMARTSPACE_KEY), eq(false), anyString()) + verify(mediaLoadingLogger) + .logRecommendationLoaded(eq(SMARTSPACE_KEY), eq(false), anyString()) assertThat(currentMedia).containsExactly(recsCommonModel) assertThat( hasActiveMediaOrRecommendation( @@ -1032,11 +1042,11 @@ class MediaDataFilterImplTest : SysuiTestCase() { verify(listener) .onMediaDataLoaded(eq(KEY), eq(null), eq(dataCurrent), eq(true), eq(0), eq(false)) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded(eq(dataCurrent.instanceId), eq(dataCurrent.active), anyString()) assertThat(currentMedia).containsExactly(controlCommonModel) - reset(mediaLogger) + reset(mediaLoadingLogger) // And an inactive recommendation is loaded mediaDataFilter.onSmartspaceMediaDataLoaded(SMARTSPACE_KEY, smartspaceData) @@ -1044,10 +1054,11 @@ class MediaDataFilterImplTest : SysuiTestCase() { // Smartspace is loaded but the media stays inactive verify(listener) .onSmartspaceMediaDataLoaded(eq(SMARTSPACE_KEY), eq(smartspaceData), eq(false)) - verify(mediaLogger).logRecommendationLoaded(eq(SMARTSPACE_KEY), eq(false), anyString()) + verify(mediaLoadingLogger) + .logRecommendationLoaded(eq(SMARTSPACE_KEY), eq(false), anyString()) verify(listener, never()) .onMediaDataLoaded(any(), any(), any(), anyBoolean(), anyInt(), anyBoolean()) - verify(mediaLogger, never()).logMediaLoaded(any(), anyBoolean(), anyString()) + verify(mediaLoadingLogger, never()).logMediaLoaded(any(), anyBoolean(), anyString()) assertThat(currentMedia).containsExactly(controlCommonModel, recsCommonModel) assertThat( hasActiveMediaOrRecommendation( @@ -1116,7 +1127,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { verify(listener) .onMediaDataLoaded(eq(KEY), eq(null), eq(dataCurrent), eq(true), eq(0), eq(false)) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded(eq(dataCurrent.instanceId), eq(dataCurrent.active), anyString()) assertThat(currentMedia).containsExactly(controlCommonModel) @@ -1145,7 +1156,7 @@ class MediaDataFilterImplTest : SysuiTestCase() { eq(100), eq(true) ) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded( eq(dataCurrentAndActive.instanceId), eq(dataCurrentAndActive.active), @@ -1163,7 +1174,8 @@ class MediaDataFilterImplTest : SysuiTestCase() { // And update the smartspace data state, but not prioritized verify(listener) .onSmartspaceMediaDataLoaded(eq(SMARTSPACE_KEY), eq(smartspaceData), eq(false)) - verify(mediaLogger).logRecommendationLoaded(eq(SMARTSPACE_KEY), eq(true), anyString()) + verify(mediaLoadingLogger) + .logRecommendationLoaded(eq(SMARTSPACE_KEY), eq(true), anyString()) } @Test @@ -1187,11 +1199,11 @@ class MediaDataFilterImplTest : SysuiTestCase() { verify(listener) .onMediaDataLoaded(eq(KEY), eq(null), eq(dataCurrent), eq(true), eq(0), eq(false)) - verify(mediaLogger) + verify(mediaLoadingLogger) .logMediaLoaded(eq(dataCurrent.instanceId), eq(dataCurrent.active), anyString()) assertThat(currentMedia).containsExactly(controlCommonModel) - reset(mediaLogger) + reset(mediaLoadingLogger) // AND we get a smartspace signal with extra to not trigger resume val extras = Bundle().apply { putBoolean(EXTRA_KEY_TRIGGER_RESUME, false) } @@ -1201,12 +1213,13 @@ class MediaDataFilterImplTest : SysuiTestCase() { // THEN listeners are not updated to show media verify(listener, never()) .onMediaDataLoaded(eq(KEY), eq(KEY), any(), eq(true), eq(100), eq(true)) - verify(mediaLogger, never()) + verify(mediaLoadingLogger, never()) .logMediaLoaded(eq(dataCurrent.instanceId), anyBoolean(), anyString()) // But the smartspace update is still propagated verify(listener) .onSmartspaceMediaDataLoaded(eq(SMARTSPACE_KEY), eq(smartspaceData), eq(false)) - verify(mediaLogger).logRecommendationLoaded(eq(SMARTSPACE_KEY), eq(true), anyString()) + verify(mediaLoadingLogger) + .logRecommendationLoaded(eq(SMARTSPACE_KEY), eq(true), anyString()) assertThat(currentMedia).containsExactly(controlCommonModel, recsCommonModel) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterKosmos.kt index 147318473998..b8b006098c6f 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterKosmos.kt @@ -21,7 +21,6 @@ import com.android.systemui.broadcast.BroadcastSender import com.android.systemui.concurrency.fakeExecutor import com.android.systemui.kosmos.Kosmos import com.android.systemui.media.controls.data.repository.mediaFilterRepository -import com.android.systemui.media.controls.shared.mediaLogger import com.android.systemui.media.controls.util.mediaFlags import com.android.systemui.media.controls.util.mediaUiEventLogger import com.android.systemui.settings.userTracker @@ -46,6 +45,6 @@ val Kosmos.mediaDataFilter by logger = mediaUiEventLogger, mediaFlags = mediaFlags, mediaFilterRepository = mediaFilterRepository, - mediaLogger = mediaLogger, + mediaLoadingLogger = mediaLoadingLogger, ) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/shared/MediaLoggerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/domain/pipeline/MediaLoadingLoggerKosmos.kt index 55c419e8ade1..96886f738dbd 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/shared/MediaLoggerKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/domain/pipeline/MediaLoadingLoggerKosmos.kt @@ -14,11 +14,12 @@ * limitations under the License. */ -package com.android.systemui.media.controls.shared +package com.android.systemui.media.controls.domain.pipeline import com.android.systemui.kosmos.Kosmos import com.android.systemui.log.logcatLogBuffer import org.mockito.Mockito.mock -var Kosmos.mediaLogger by Kosmos.Fixture { MediaLogger(logcatLogBuffer("MediaLogBuffer")) } -val Kosmos.mockMediaLogger by Kosmos.Fixture { mock(MediaLogger::class.java) } +val Kosmos.mediaLoadingLogger by + Kosmos.Fixture { MediaLoadingLogger(logcatLogBuffer("MediaLoadingLogBuffer")) } +val Kosmos.mockMediaLoadingLogger by Kosmos.Fixture { mock(MediaLoadingLogger::class.java) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModelKosmos.kt index 054ac2e39993..069995aa3fec 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModelKosmos.kt @@ -23,7 +23,6 @@ import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.kosmos.testDispatcher import com.android.systemui.media.controls.domain.pipeline.interactor.factory.mediaControlInteractorFactory import com.android.systemui.media.controls.domain.pipeline.interactor.mediaCarouselInteractor -import com.android.systemui.media.controls.shared.mediaLogger import com.android.systemui.media.controls.util.mediaFlags import com.android.systemui.media.controls.util.mediaUiEventLogger import com.android.systemui.statusbar.notification.collection.provider.visualStabilityProvider @@ -41,6 +40,5 @@ val Kosmos.mediaCarouselViewModel by recommendationsViewModel = mediaRecommendationsViewModel, logger = mediaUiEventLogger, mediaFlags = mediaFlags, - mediaLogger = mediaLogger, ) } |