diff options
| author | 2024-07-12 19:22:25 +0000 | |
|---|---|---|
| committer | 2024-07-12 19:22:25 +0000 | |
| commit | 017ecfe28319cbb9fe64c2c9afba40b2cd70a0cc (patch) | |
| tree | 11426e4433e54fb8997c12c5d8f11b1c9321a3c2 | |
| parent | 464060da5da7c0faaa1783ba1f04023b7e9caa6d (diff) | |
| parent | 0ff31a6deea225198a0bdf1872296598ffe6f228 (diff) | |
Merge changes Iab5fda19,I2b192ee8 into main
* changes:
[SB][Screen Chips] Add logs for chip & dialog interactions.
[SB][Screen Chips] Finish adding logs to repo, interactor, and VM flows.
20 files changed, 152 insertions, 14 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/mediaprojection/data/repository/MediaProjectionManagerRepository.kt b/packages/SystemUI/src/com/android/systemui/mediaprojection/data/repository/MediaProjectionManagerRepository.kt index 760ff7dd1ed8..c90f1970671d 100644 --- a/packages/SystemUI/src/com/android/systemui/mediaprojection/data/repository/MediaProjectionManagerRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/mediaprojection/data/repository/MediaProjectionManagerRepository.kt @@ -69,7 +69,11 @@ constructor( } override suspend fun stopProjecting() { - withContext(backgroundDispatcher) { mediaProjectionManager.stopActiveProjection() } + withContext(backgroundDispatcher) { + // TODO(b/332662551): Convert Logcat to LogBuffer. + Log.d(TAG, "Requesting MediaProjectionManager#stopActiveProjection") + mediaProjectionManager.stopActiveProjection() + } } override val mediaProjectionState: Flow<MediaProjectionState> = diff --git a/packages/SystemUI/src/com/android/systemui/mediarouter/MediaRouterLog.kt b/packages/SystemUI/src/com/android/systemui/mediarouter/MediaRouterLog.kt new file mode 100644 index 000000000000..16bf0ffbf9e9 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/mediarouter/MediaRouterLog.kt @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.mediarouter + +import javax.inject.Qualifier + +/** Logs for events related to MediaRouter APIs. */ +@Qualifier +@MustBeDocumented +@Retention(AnnotationRetention.RUNTIME) +annotation class MediaRouterLog diff --git a/packages/SystemUI/src/com/android/systemui/mediarouter/MediaRouterModule.kt b/packages/SystemUI/src/com/android/systemui/mediarouter/MediaRouterModule.kt index c07e3a0e7cec..df5dae4dd33a 100644 --- a/packages/SystemUI/src/com/android/systemui/mediarouter/MediaRouterModule.kt +++ b/packages/SystemUI/src/com/android/systemui/mediarouter/MediaRouterModule.kt @@ -16,12 +16,25 @@ package com.android.systemui.mediarouter +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.log.LogBuffer +import com.android.systemui.log.LogBufferFactory import com.android.systemui.mediarouter.data.repository.MediaRouterRepository import com.android.systemui.mediarouter.data.repository.MediaRouterRepositoryImpl import dagger.Binds import dagger.Module +import dagger.Provides @Module interface MediaRouterModule { @Binds fun mediaRouterRepository(impl: MediaRouterRepositoryImpl): MediaRouterRepository + + companion object { + @Provides + @SysUISingleton + @MediaRouterLog + fun provideMediaRouterLogBuffer(factory: LogBufferFactory): LogBuffer { + return factory.create("MediaRouter", 50) + } + } } diff --git a/packages/SystemUI/src/com/android/systemui/mediarouter/data/repository/MediaRouterRepository.kt b/packages/SystemUI/src/com/android/systemui/mediarouter/data/repository/MediaRouterRepository.kt index 998d76ced9f7..debb667bbb15 100644 --- a/packages/SystemUI/src/com/android/systemui/mediarouter/data/repository/MediaRouterRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/mediarouter/data/repository/MediaRouterRepository.kt @@ -18,6 +18,9 @@ package com.android.systemui.mediarouter.data.repository import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.log.LogBuffer +import com.android.systemui.log.core.LogLevel +import com.android.systemui.mediarouter.MediaRouterLog import com.android.systemui.statusbar.policy.CastController import com.android.systemui.statusbar.policy.CastDevice import com.android.systemui.utils.coroutines.flow.conflatedCallbackFlow @@ -26,6 +29,9 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.stateIn /** A repository for data coming from MediaRouter APIs. */ @@ -43,23 +49,29 @@ class MediaRouterRepositoryImpl constructor( @Application private val scope: CoroutineScope, private val castController: CastController, + @MediaRouterLog private val logger: LogBuffer, ) : MediaRouterRepository { override val castDevices: StateFlow<List<CastDevice>> = conflatedCallbackFlow { - val callback = - CastController.Callback { - val mediaRouterCastDevices = - castController.castDevices.filter { - it.origin == CastDevice.CastOrigin.MediaRouter - } - trySend(mediaRouterCastDevices) - } + val callback = CastController.Callback { trySend(castController.castDevices) } castController.addCallback(callback) awaitClose { castController.removeCallback(callback) } } + // The CastController.Callback is pretty noisy and sends the same values multiple times + // in a row, so use a distinctUntilChanged before logging. + .distinctUntilChanged() + .onEach { allDevices -> + val logString = allDevices.map { it.shortLogString }.toString() + logger.log(TAG, LogLevel.INFO, { str1 = logString }, { "All cast devices: $str1" }) + } + .map { it.filter { device -> device.origin == CastDevice.CastOrigin.MediaRouter } } .stateIn(scope, SharingStarted.WhileSubscribed(), emptyList()) override fun stopCasting(device: CastDevice) { castController.stopCasting(device) } + + companion object { + private const val TAG = "MediaRouterRepo" + } } diff --git a/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingController.java b/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingController.java index 3dc207063060..af1b6e1127ad 100644 --- a/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingController.java +++ b/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingController.java @@ -258,6 +258,7 @@ public class RecordingController * Stop the recording */ public void stopRecording() { + // TODO(b/332662551): Convert Logcat to LogBuffer. try { if (mStopIntent != null) { mStopIntent.send(mInteractiveBroadcastOption); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModel.kt index ed1756aff8c1..11ccdff687a1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModel.kt @@ -23,8 +23,11 @@ import com.android.systemui.common.shared.model.ContentDescription import com.android.systemui.common.shared.model.Icon import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.log.LogBuffer +import com.android.systemui.log.core.LogLevel import com.android.systemui.plugins.ActivityStarter import com.android.systemui.res.R +import com.android.systemui.statusbar.chips.StatusBarChipsLog import com.android.systemui.statusbar.chips.call.domain.interactor.CallChipInteractor import com.android.systemui.statusbar.chips.ui.model.ColorsModel import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel @@ -48,6 +51,7 @@ constructor( interactor: CallChipInteractor, systemClock: SystemClock, private val activityStarter: ActivityStarter, + @StatusBarChipsLog private val logger: LogBuffer, ) : OngoingActivityChipViewModel { override val chip: StateFlow<OngoingActivityChipModel> = interactor.ongoingCallState @@ -86,9 +90,9 @@ constructor( } return View.OnClickListener { view -> + logger.log(TAG, LogLevel.INFO, {}, { "Chip clicked" }) val backgroundView = view.requireViewById<ChipBackgroundContainer>(R.id.ongoing_activity_chip_background) - // TODO(b/332662551): Log the click event. // This mimics OngoingCallController#updateChipClickListener. activityStarter.postStartActivityDismissingKeyguard( state.intent, @@ -108,5 +112,6 @@ constructor( R.string.ongoing_phone_call_content_description, ), ) + private const val TAG = "CallVM" } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/casttootherdevice/domain/interactor/MediaRouterChipInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/casttootherdevice/domain/interactor/MediaRouterChipInteractor.kt index 6917f468ce14..7c95f1e42080 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/casttootherdevice/domain/interactor/MediaRouterChipInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/casttootherdevice/domain/interactor/MediaRouterChipInteractor.kt @@ -18,7 +18,10 @@ package com.android.systemui.statusbar.chips.casttootherdevice.domain.interactor import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.log.LogBuffer +import com.android.systemui.log.core.LogLevel import com.android.systemui.mediarouter.data.repository.MediaRouterRepository +import com.android.systemui.statusbar.chips.StatusBarChipsLog import com.android.systemui.statusbar.chips.casttootherdevice.domain.model.MediaRouterCastModel import com.android.systemui.statusbar.policy.CastDevice import javax.inject.Inject @@ -38,6 +41,7 @@ class MediaRouterChipInteractor constructor( @Application private val scope: CoroutineScope, private val mediaRouterRepository: MediaRouterRepository, + @StatusBarChipsLog private val logger: LogBuffer, ) { private val activeCastDevice: StateFlow<CastDevice?> = mediaRouterRepository.castDevices @@ -49,8 +53,10 @@ constructor( activeCastDevice .map { if (it != null) { + logger.log(TAG, LogLevel.INFO, { str1 = it.name }, { "State: Casting($str1)" }) MediaRouterCastModel.Casting(deviceName = it.name) } else { + logger.log(TAG, LogLevel.INFO, {}, { "State: DoingNothing" }) MediaRouterCastModel.DoingNothing } } @@ -60,4 +66,8 @@ constructor( fun stopCasting() { activeCastDevice.value?.let { mediaRouterRepository.stopCasting(it) } } + + companion object { + private const val TAG = "MediaRouter" + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModel.kt index f5e17df71ff9..afa9ccefab86 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModel.kt @@ -22,7 +22,10 @@ import com.android.systemui.common.shared.model.ContentDescription import com.android.systemui.common.shared.model.Icon import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.log.LogBuffer +import com.android.systemui.log.core.LogLevel import com.android.systemui.res.R +import com.android.systemui.statusbar.chips.StatusBarChipsLog import com.android.systemui.statusbar.chips.casttootherdevice.domain.interactor.MediaRouterChipInteractor import com.android.systemui.statusbar.chips.casttootherdevice.domain.model.MediaRouterCastModel import com.android.systemui.statusbar.chips.casttootherdevice.ui.view.EndCastScreenToOtherDeviceDialogDelegate @@ -58,6 +61,7 @@ constructor( private val mediaRouterChipInteractor: MediaRouterChipInteractor, private val systemClock: SystemClock, private val endMediaProjectionDialogHelper: EndMediaProjectionDialogHelper, + @StatusBarChipsLog private val logger: LogBuffer, ) : OngoingActivityChipViewModel { /** * The cast chip to show, based only on MediaProjection API events. @@ -123,6 +127,16 @@ constructor( override val chip: StateFlow<OngoingActivityChipModel> = combine(projectionChip, routerChip) { projection, router -> + logger.log( + TAG, + LogLevel.INFO, + { + str1 = projection.logName + str2 = router.logName + }, + { "projectionChip=$str1 > routerChip=$str2" } + ) + // A consequence of b/269975671 is that MediaRouter and MediaProjection APIs fire at // different times when *screen* casting: // @@ -149,10 +163,13 @@ constructor( /** Stops the currently active projection. */ private fun stopProjecting() { + logger.log(TAG, LogLevel.INFO, {}, { "Stop casting requested (projection)" }) mediaProjectionChipInteractor.stopProjecting() } + /** Stops the currently active media route. */ private fun stopMediaRouterCasting() { + logger.log(TAG, LogLevel.INFO, {}, { "Stop casting requested (router)" }) mediaRouterChipInteractor.stopCasting() } @@ -173,6 +190,8 @@ constructor( startTimeMs = systemClock.elapsedRealtime(), createDialogLaunchOnClickListener( createCastScreenToOtherDeviceDialogDelegate(state), + logger, + TAG, ), ) } @@ -188,6 +207,8 @@ constructor( colors = ColorsModel.Red, createDialogLaunchOnClickListener( createGenericCastToOtherDeviceDialogDelegate(deviceName), + logger, + TAG, ), ) } @@ -212,5 +233,6 @@ constructor( companion object { @DrawableRes val CAST_TO_OTHER_DEVICE_ICON = R.drawable.ic_cast_connected + private const val TAG = "CastToOtherVM" } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModel.kt index e201652242a5..0c349810257a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModel.kt @@ -23,8 +23,11 @@ import com.android.systemui.common.shared.model.ContentDescription import com.android.systemui.common.shared.model.Icon import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.log.LogBuffer +import com.android.systemui.log.core.LogLevel import com.android.systemui.res.R import com.android.systemui.screenrecord.data.model.ScreenRecordModel.Starting.Companion.toCountdownSeconds +import com.android.systemui.statusbar.chips.StatusBarChipsLog import com.android.systemui.statusbar.chips.mediaprojection.ui.view.EndMediaProjectionDialogHelper import com.android.systemui.statusbar.chips.screenrecord.domain.interactor.ScreenRecordChipInteractor import com.android.systemui.statusbar.chips.screenrecord.domain.model.ScreenRecordChipModel @@ -51,6 +54,7 @@ constructor( private val interactor: ScreenRecordChipInteractor, private val systemClock: SystemClock, private val endMediaProjectionDialogHelper: EndMediaProjectionDialogHelper, + @StatusBarChipsLog private val logger: LogBuffer, ) : OngoingActivityChipViewModel { override val chip: StateFlow<OngoingActivityChipModel> = interactor.screenRecordState @@ -76,6 +80,8 @@ constructor( startTimeMs = systemClock.elapsedRealtime(), createDialogLaunchOnClickListener( createDelegate(state.recordedTask), + logger, + TAG, ), ) } @@ -90,12 +96,18 @@ constructor( return EndScreenRecordingDialogDelegate( endMediaProjectionDialogHelper, context, - stopAction = interactor::stopRecording, + stopAction = this::stopRecording, recordedTask, ) } + private fun stopRecording() { + logger.log(TAG, LogLevel.INFO, {}, { "Stop recording requested" }) + interactor.stopRecording() + } + companion object { @DrawableRes val ICON = R.drawable.ic_screenrecord + private const val TAG = "ScreenRecordVM" } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModel.kt index 45260e18e1ff..ddebd3a0e3c2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModel.kt @@ -22,7 +22,10 @@ import com.android.systemui.common.shared.model.ContentDescription import com.android.systemui.common.shared.model.Icon import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.log.LogBuffer +import com.android.systemui.log.core.LogLevel import com.android.systemui.res.R +import com.android.systemui.statusbar.chips.StatusBarChipsLog import com.android.systemui.statusbar.chips.mediaprojection.domain.interactor.MediaProjectionChipInteractor import com.android.systemui.statusbar.chips.mediaprojection.domain.model.ProjectionChipModel import com.android.systemui.statusbar.chips.mediaprojection.ui.view.EndMediaProjectionDialogHelper @@ -52,6 +55,7 @@ constructor( private val mediaProjectionChipInteractor: MediaProjectionChipInteractor, private val systemClock: SystemClock, private val endMediaProjectionDialogHelper: EndMediaProjectionDialogHelper, + @StatusBarChipsLog private val logger: LogBuffer, ) : OngoingActivityChipViewModel { override val chip: StateFlow<OngoingActivityChipModel> = mediaProjectionChipInteractor.projection @@ -72,6 +76,7 @@ constructor( /** Stops the currently active projection. */ private fun stopProjecting() { + logger.log(TAG, LogLevel.INFO, {}, { "Stop sharing requested" }) mediaProjectionChipInteractor.stopProjecting() } @@ -87,7 +92,7 @@ constructor( colors = ColorsModel.Red, // TODO(b/332662551): Maybe use a MediaProjection API to fetch this time. startTimeMs = systemClock.elapsedRealtime(), - createDialogLaunchOnClickListener(createShareToAppDialogDelegate(state)), + createDialogLaunchOnClickListener(createShareToAppDialogDelegate(state), logger, TAG), ) } @@ -101,5 +106,6 @@ constructor( companion object { @DrawableRes val SHARE_TO_APP_ICON = R.drawable.ic_present_to_all + private const val TAG = "ShareToAppVM" } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipViewModel.kt index 65f94ac756cc..ee010f7a818b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipViewModel.kt @@ -17,6 +17,9 @@ package com.android.systemui.statusbar.chips.ui.viewmodel import android.view.View +import com.android.systemui.log.LogBuffer +import com.android.systemui.log.core.LogLevel +import com.android.systemui.statusbar.chips.StatusBarChipsLog import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel import com.android.systemui.statusbar.phone.SystemUIDialog import kotlinx.coroutines.flow.StateFlow @@ -33,8 +36,11 @@ interface OngoingActivityChipViewModel { /** Creates a chip click listener that launches a dialog created by [dialogDelegate]. */ fun createDialogLaunchOnClickListener( dialogDelegate: SystemUIDialog.Delegate, + @StatusBarChipsLog logger: LogBuffer, + tag: String, ): View.OnClickListener { - return View.OnClickListener { view -> + return View.OnClickListener { _ -> + logger.log(tag, LogLevel.INFO, {}, { "Chip clicked" }) val dialog = dialogDelegate.createDialog() dialog.show() } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/CastControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/CastControllerImpl.java index 45cb52a8b1ad..994a0d0ca76e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/CastControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/CastControllerImpl.java @@ -183,6 +183,7 @@ public class CastControllerImpl implements CastController { @Override public void stopCasting(CastDevice device) { + // TODO(b/332662551): Convert Logcat to LogBuffer. final boolean isProjection = device.getTag() instanceof MediaProjectionInfo; if (DEBUG) Log.d(TAG, "stopCasting isProjection=" + isProjection); if (isProjection) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/CastDevice.kt b/packages/SystemUI/src/com/android/systemui/statusbar/policy/CastDevice.kt index 5fc160bd5da3..68edd758808c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/CastDevice.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/CastDevice.kt @@ -38,6 +38,9 @@ data class CastDevice( ) { val isCasting = state == CastState.Connecting || state == CastState.Connected + val shortLogString: String = + "CastDevice(id=$id name=$name description=$description state=$state origin=$origin)" + companion object { /** Creates a [CastDevice] based on the provided information from MediaRouter. */ fun MediaRouter.RouteInfo.toCastDevice(context: Context): CastDevice { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipViewModelTest.kt index 2e0c7735c837..ca043f163854 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipViewModelTest.kt @@ -19,6 +19,7 @@ package com.android.systemui.statusbar.chips.ui.viewmodel import android.view.View import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase +import com.android.systemui.log.logcatLogBuffer import com.android.systemui.statusbar.chips.ui.viewmodel.OngoingActivityChipViewModel.Companion.createDialogLaunchOnClickListener import com.android.systemui.statusbar.phone.SystemUIDialog import kotlin.test.Test @@ -32,7 +33,12 @@ class OngoingActivityChipViewModelTest : SysuiTestCase() { @Test fun createDialogLaunchOnClickListener_showsDialogOnClick() { - val clickListener = createDialogLaunchOnClickListener(dialogDelegate) + val clickListener = + createDialogLaunchOnClickListener( + dialogDelegate, + logcatLogBuffer("OngoingActivityChipViewModelTest"), + "tag", + ) // Dialogs must be created on the main thread context.mainExecutor.execute { diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/mediarouter/data/repository/MediaRouterRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/mediarouter/data/repository/MediaRouterRepositoryKosmos.kt index eec99207446a..e1ecc517ec9f 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/mediarouter/data/repository/MediaRouterRepositoryKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/mediarouter/data/repository/MediaRouterRepositoryKosmos.kt @@ -18,6 +18,7 @@ package com.android.systemui.mediarouter.data.repository import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.applicationCoroutineScope +import com.android.systemui.log.logcatLogBuffer import com.android.systemui.statusbar.policy.fakeCastController val Kosmos.realMediaRouterRepository by @@ -25,6 +26,7 @@ val Kosmos.realMediaRouterRepository by MediaRouterRepositoryImpl( scope = applicationCoroutineScope, castController = fakeCastController, + logger = logcatLogBuffer("MediaRouter"), ) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModelKosmos.kt index ab71b5e2d6b9..1e304d979e03 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModelKosmos.kt @@ -20,6 +20,7 @@ import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.plugins.activityStarter import com.android.systemui.statusbar.chips.call.domain.interactor.callChipInteractor +import com.android.systemui.statusbar.chips.statusBarChipsLogger import com.android.systemui.util.time.fakeSystemClock val Kosmos.callChipViewModel: CallChipViewModel by @@ -29,5 +30,6 @@ val Kosmos.callChipViewModel: CallChipViewModel by interactor = callChipInteractor, systemClock = fakeSystemClock, activityStarter = activityStarter, + logger = statusBarChipsLogger, ) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/casttootherdevice/domain/interactor/MediaRouterChipInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/casttootherdevice/domain/interactor/MediaRouterChipInteractorKosmos.kt index cb18b687d5ed..1737bc4c7dfb 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/casttootherdevice/domain/interactor/MediaRouterChipInteractorKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/casttootherdevice/domain/interactor/MediaRouterChipInteractorKosmos.kt @@ -19,11 +19,13 @@ package com.android.systemui.statusbar.chips.casttootherdevice.domain.interactor import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.mediarouter.data.repository.fakeMediaRouterRepository +import com.android.systemui.statusbar.chips.statusBarChipsLogger val Kosmos.mediaRouterChipInteractor by Kosmos.Fixture { MediaRouterChipInteractor( scope = applicationCoroutineScope, mediaRouterRepository = fakeMediaRouterRepository, + logger = statusBarChipsLogger, ) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModelKosmos.kt index 2335f21b2094..3d85a4abbd68 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModelKosmos.kt @@ -22,6 +22,7 @@ import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.statusbar.chips.casttootherdevice.domain.interactor.mediaRouterChipInteractor import com.android.systemui.statusbar.chips.mediaprojection.domain.interactor.mediaProjectionChipInteractor import com.android.systemui.statusbar.chips.mediaprojection.ui.view.endMediaProjectionDialogHelper +import com.android.systemui.statusbar.chips.statusBarChipsLogger import com.android.systemui.util.time.fakeSystemClock val Kosmos.castToOtherDeviceChipViewModel: CastToOtherDeviceChipViewModel by @@ -33,5 +34,6 @@ val Kosmos.castToOtherDeviceChipViewModel: CastToOtherDeviceChipViewModel by mediaRouterChipInteractor = mediaRouterChipInteractor, systemClock = fakeSystemClock, endMediaProjectionDialogHelper = endMediaProjectionDialogHelper, + logger = statusBarChipsLogger, ) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModelKosmos.kt index 2773f825f368..e4bb1665a432 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModelKosmos.kt @@ -21,6 +21,7 @@ import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.statusbar.chips.mediaprojection.ui.view.endMediaProjectionDialogHelper import com.android.systemui.statusbar.chips.screenrecord.domain.interactor.screenRecordChipInteractor +import com.android.systemui.statusbar.chips.statusBarChipsLogger import com.android.systemui.util.time.fakeSystemClock val Kosmos.screenRecordChipViewModel: ScreenRecordChipViewModel by @@ -31,5 +32,6 @@ val Kosmos.screenRecordChipViewModel: ScreenRecordChipViewModel by interactor = screenRecordChipInteractor, endMediaProjectionDialogHelper = endMediaProjectionDialogHelper, systemClock = fakeSystemClock, + logger = statusBarChipsLogger, ) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModelKosmos.kt index 1b3108cdb5df..8ed7f9684d86 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModelKosmos.kt @@ -21,6 +21,7 @@ import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.statusbar.chips.mediaprojection.domain.interactor.mediaProjectionChipInteractor import com.android.systemui.statusbar.chips.mediaprojection.ui.view.endMediaProjectionDialogHelper +import com.android.systemui.statusbar.chips.statusBarChipsLogger import com.android.systemui.util.time.fakeSystemClock val Kosmos.shareToAppChipViewModel: ShareToAppChipViewModel by @@ -31,5 +32,6 @@ val Kosmos.shareToAppChipViewModel: ShareToAppChipViewModel by mediaProjectionChipInteractor = mediaProjectionChipInteractor, systemClock = fakeSystemClock, endMediaProjectionDialogHelper = endMediaProjectionDialogHelper, + logger = statusBarChipsLogger, ) } |