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

Commit 234f8b68 authored by Ben Murdoch's avatar Ben Murdoch
Browse files

Log desktop mode changes to system event log.

This will show desktop windowing task changes in bugreports to enable
easier debugging and integration with features like battery historian.

Bug: 370682195
Flag: EXEMPT log only update
Test: adb logcat -b events

Change-Id: I62f40c2c4e99dc373436ece5bb30a7dd1f2c3fab
parent 45b826a7
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -197,6 +197,7 @@ java_library {
android_library {
    name: "WindowManager-Shell",
    srcs: [
        "src/com/android/wm/shell/EventLogTags.logtags",
        ":wm_shell_protolog_src",
        // TODO(b/168581922) protologtool do not support kotlin(*.kt)
        ":wm_shell-sources-kt",
+11 −0
Original line number Diff line number Diff line
# See system/logging/logcat/event.logtags for a description of the format of this file.

option java_package com.android.wm.shell

# Do not change these names without updating the checkin_events setting in
# google3/googledata/wireless/android/provisioning/gservices.config !!
#

38500 wm_shell_enter_desktop_mode (EnterReason|1|5),(SessionId|1|5)
38501 wm_shell_exit_desktop_mode (ExitReason|1|5),(SessionId|1|5)
38502 wm_shell_desktop_mode_task_update (TaskEvent|1|5),(InstanceId|1|5),(uid|1|5),(TaskHeight|1),(TaskWidth|1),(TaskX|1),(TaskY|1),(SessionId|1|5),(MinimiseReason|1|5),(UnminimiseReason|1|5),(VisibleTaskCount|1)
+25 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.wm.shell.desktopmode
import com.android.internal.annotations.VisibleForTesting
import com.android.internal.protolog.ProtoLog
import com.android.internal.util.FrameworkStatsLog
import com.android.wm.shell.EventLogTags
import com.android.wm.shell.protolog.ShellProtoLogGroup

/** Event logger for logging desktop mode session events */
@@ -41,6 +42,7 @@ class DesktopModeEventLogger {
            /* exitReason */ 0,
            /* session_id */ sessionId
        )
        EventLogTags.writeWmShellEnterDesktopMode(enterReason.reason, sessionId)
    }

    /**
@@ -61,6 +63,7 @@ class DesktopModeEventLogger {
            /* exitReason */ exitReason.reason,
            /* session_id */ sessionId
        )
        EventLogTags.writeWmShellExitDesktopMode(exitReason.reason, sessionId)
    }

    /**
@@ -135,6 +138,28 @@ class DesktopModeEventLogger {
            /* visible_task_count */
            taskUpdate.visibleTaskCount
        )
        EventLogTags.writeWmShellDesktopModeTaskUpdate(
            /* task_event */
            taskEvent,
            /* instance_id */
            taskUpdate.instanceId,
            /* uid */
            taskUpdate.uid,
            /* task_height */
            taskUpdate.taskHeight,
            /* task_width */
            taskUpdate.taskWidth,
            /* task_x */
            taskUpdate.taskX,
            /* task_y */
            taskUpdate.taskY,
            /* session_id */
            sessionId,
            taskUpdate.minimizeReason?.reason ?: UNSET_MINIMIZE_REASON,
            taskUpdate.unminimizeReason?.reason ?: UNSET_UNMINIMIZE_REASON,
            /* visible_task_count */
            taskUpdate.visibleTaskCount
        )
    }

    companion object {
+96 −3
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ package com.android.wm.shell.desktopmode
import com.android.dx.mockito.inline.extended.ExtendedMockito.verify
import com.android.internal.util.FrameworkStatsLog
import com.android.modules.utils.testing.ExtendedMockitoRule
import com.android.wm.shell.EventLogTags
import com.android.wm.shell.ShellTestCase
import com.android.wm.shell.desktopmode.DesktopModeEventLogger.Companion.EnterReason
import com.android.wm.shell.desktopmode.DesktopModeEventLogger.Companion.ExitReason
import com.android.wm.shell.desktopmode.DesktopModeEventLogger.Companion.MinimizeReason
@@ -34,14 +36,15 @@ import org.mockito.kotlin.eq
/**
 * Tests for [DesktopModeEventLogger].
 */
class DesktopModeEventLoggerTest {
class DesktopModeEventLoggerTest : ShellTestCase() {

    private val desktopModeEventLogger = DesktopModeEventLogger()

    @JvmField
    @Rule
    val extendedMockitoRule = ExtendedMockitoRule.Builder(this)
            .mockStatic(FrameworkStatsLog::class.java).build()!!
            .mockStatic(FrameworkStatsLog::class.java)
            .mockStatic(EventLogTags::class.java).build()!!

    @Test
    fun logSessionEnter_enterReason() = runBlocking {
@@ -60,6 +63,11 @@ class DesktopModeEventLoggerTest {
                eq(SESSION_ID)
            )
        }
        verify {
            EventLogTags.writeWmShellEnterDesktopMode(
                eq(EnterReason.UNKNOWN_ENTER.reason),
                eq(SESSION_ID))
        }
    }

    @Test
@@ -79,6 +87,11 @@ class DesktopModeEventLoggerTest {
                eq(SESSION_ID)
            )
        }
        verify {
            EventLogTags.writeWmShellExitDesktopMode(
                eq(ExitReason.UNKNOWN_EXIT.reason),
                eq(SESSION_ID))
        }
    }

    @Test
@@ -108,6 +121,22 @@ class DesktopModeEventLoggerTest {
                /* visible_task_count */
                eq(TASK_COUNT))
        }

        verify {
            EventLogTags.writeWmShellDesktopModeTaskUpdate(
                eq(FrameworkStatsLog
                    .DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_ADDED),
                eq(TASK_UPDATE.instanceId),
                eq(TASK_UPDATE.uid),
                eq(TASK_UPDATE.taskHeight),
                eq(TASK_UPDATE.taskWidth),
                eq(TASK_UPDATE.taskX),
                eq(TASK_UPDATE.taskY),
                eq(SESSION_ID),
                eq(UNSET_MINIMIZE_REASON),
                eq(UNSET_UNMINIMIZE_REASON),
                eq(TASK_COUNT))
        }
    }

    @Test
@@ -137,6 +166,22 @@ class DesktopModeEventLoggerTest {
                /* visible_task_count */
                eq(TASK_COUNT))
        }

        verify {
            EventLogTags.writeWmShellDesktopModeTaskUpdate(
                eq(FrameworkStatsLog
                    .DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_REMOVED),
                eq(TASK_UPDATE.instanceId),
                eq(TASK_UPDATE.uid),
                eq(TASK_UPDATE.taskHeight),
                eq(TASK_UPDATE.taskWidth),
                eq(TASK_UPDATE.taskX),
                eq(TASK_UPDATE.taskY),
                eq(SESSION_ID),
                eq(UNSET_MINIMIZE_REASON),
                eq(UNSET_UNMINIMIZE_REASON),
                eq(TASK_COUNT))
        }
    }

    @Test
@@ -167,6 +212,22 @@ class DesktopModeEventLoggerTest {
                /* visible_task_count */
                eq(TASK_COUNT))
        }

        verify {
            EventLogTags.writeWmShellDesktopModeTaskUpdate(
                eq(FrameworkStatsLog
                    .DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_INFO_CHANGED),
                eq(TASK_UPDATE.instanceId),
                eq(TASK_UPDATE.uid),
                eq(TASK_UPDATE.taskHeight),
                eq(TASK_UPDATE.taskWidth),
                eq(TASK_UPDATE.taskX),
                eq(TASK_UPDATE.taskY),
                eq(SESSION_ID),
                eq(UNSET_MINIMIZE_REASON),
                eq(UNSET_UNMINIMIZE_REASON),
                eq(TASK_COUNT))
        }
    }

    @Test
@@ -200,6 +261,22 @@ class DesktopModeEventLoggerTest {
                /* visible_task_count */
                eq(TASK_COUNT))
        }

        verify {
            EventLogTags.writeWmShellDesktopModeTaskUpdate(
                eq(FrameworkStatsLog
                    .DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_INFO_CHANGED),
                eq(TASK_UPDATE.instanceId),
                eq(TASK_UPDATE.uid),
                eq(TASK_UPDATE.taskHeight),
                eq(TASK_UPDATE.taskWidth),
                eq(TASK_UPDATE.taskX),
                eq(TASK_UPDATE.taskY),
                eq(SESSION_ID),
                eq(MinimizeReason.TASK_LIMIT.reason),
                eq(UNSET_UNMINIMIZE_REASON),
                eq(TASK_COUNT))
        }
    }

    @Test
@@ -233,6 +310,22 @@ class DesktopModeEventLoggerTest {
                /* visible_task_count */
                eq(TASK_COUNT))
        }

        verify {
            EventLogTags.writeWmShellDesktopModeTaskUpdate(
                eq(FrameworkStatsLog
                    .DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_INFO_CHANGED),
                eq(TASK_UPDATE.instanceId),
                eq(TASK_UPDATE.uid),
                eq(TASK_UPDATE.taskHeight),
                eq(TASK_UPDATE.taskWidth),
                eq(TASK_UPDATE.taskX),
                eq(TASK_UPDATE.taskY),
                eq(SESSION_ID),
                eq(UNSET_MINIMIZE_REASON),
                eq(UnminimizeReason.TASKBAR_TAP.reason),
                eq(TASK_COUNT))
        }
    }

    companion object {