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

Commit 0ff31a6d authored by Caitlin Shkuratov's avatar Caitlin Shkuratov
Browse files

[SB][Screen Chips] Add logs for chip & dialog interactions.

Log when the chip was clicked, and if the user clicked "stop" on the
stop dialog.

Bug: 351785188
Bug: 332662551
Flag: com.android.systemui.status_bar_screen_sharing_chips

Test: Dump `StatusBarChips` log buffer after interacting with each of
the chip types, verify it has the new logs

Change-Id: Iab5fda1930250c5776e528db4bb304a7d091c8c0
parent 63100949
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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> =
+1 −0
Original line number Diff line number Diff line
@@ -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);
+6 −1
Original line number Diff line number Diff line
@@ -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"
    }
}
+7 −0
Original line number Diff line number Diff line
@@ -163,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()
    }

@@ -187,6 +190,8 @@ constructor(
            startTimeMs = systemClock.elapsedRealtime(),
            createDialogLaunchOnClickListener(
                createCastScreenToOtherDeviceDialogDelegate(state),
                logger,
                TAG,
            ),
        )
    }
@@ -202,6 +207,8 @@ constructor(
            colors = ColorsModel.Red,
            createDialogLaunchOnClickListener(
                createGenericCastToOtherDeviceDialogDelegate(deviceName),
                logger,
                TAG,
            ),
        )
    }
+13 −1
Original line number Diff line number Diff line
@@ -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"
    }
}
Loading