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

Commit c02fcbb0 authored by Gustav Sennton's avatar Gustav Sennton
Browse files

Minor fixes to DesktopTasksLimiter and DesktopModeEventLogger

Adding minor fixes/refactorings in preparation for Desktop
minimize/unminimize metrics.

Bug: 358002042
Test: DesktopTasksLimiterTest, DesktopModeEventLoggerTest
Flag: com.android.window.flags.enable_desktop_windowing_mode
Change-Id: Ia9ff064cd1a60d63593dc8c4084c9e0c71a08f93
parent 1bb06ef3
Loading
Loading
Loading
Loading
+11 −37
Original line number Diff line number Diff line
@@ -73,25 +73,9 @@ class DesktopModeEventLogger {
            sessionId,
            taskUpdate.instanceId
        )
        FrameworkStatsLog.write(
            DESKTOP_MODE_TASK_UPDATE_ATOM_ID,
            /* task_event */
        logTaskUpdate(
            FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_ADDED,
            /* 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
        )
            sessionId, taskUpdate)
    }

    /**
@@ -105,25 +89,9 @@ class DesktopModeEventLogger {
            sessionId,
            taskUpdate.instanceId
        )
        FrameworkStatsLog.write(
            DESKTOP_MODE_TASK_UPDATE_ATOM_ID,
            /* task_event */
        logTaskUpdate(
            FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_REMOVED,
            /* 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
        )
            sessionId, taskUpdate)
    }

    /**
@@ -137,10 +105,16 @@ class DesktopModeEventLogger {
            sessionId,
            taskUpdate.instanceId
        )
        logTaskUpdate(
            FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_INFO_CHANGED,
            sessionId, taskUpdate)
    }

    private fun logTaskUpdate(taskEvent: Int, sessionId: Int, taskUpdate: TaskUpdate) {
        FrameworkStatsLog.write(
            DESKTOP_MODE_TASK_UPDATE_ATOM_ID,
            /* task_event */
            FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_INFO_CHANGED,
            taskEvent,
            /* instance_id */
            taskUpdate.instanceId,
            /* uid */
+12 −12
Original line number Diff line number Diff line
@@ -70,11 +70,11 @@ class DesktopTasksLimiter (

    // TODO(b/333018485): replace this observer when implementing the minimize-animation
    private inner class MinimizeTransitionObserver : TransitionObserver {
        private val mPendingTransitionTokensAndTasks = mutableMapOf<IBinder, TaskDetails>()
        private val mActiveTransitionTokensAndTasks = mutableMapOf<IBinder, TaskDetails>()
        private val pendingTransitionTokensAndTasks = mutableMapOf<IBinder, TaskDetails>()
        private val activeTransitionTokensAndTasks = mutableMapOf<IBinder, TaskDetails>()

        fun addPendingTransitionToken(transition: IBinder, taskDetails: TaskDetails) {
            mPendingTransitionTokensAndTasks[transition] = taskDetails
            pendingTransitionTokensAndTasks[transition] = taskDetails
        }

        override fun onTransitionReady(
@@ -83,9 +83,7 @@ class DesktopTasksLimiter (
            startTransaction: SurfaceControl.Transaction,
            finishTransaction: SurfaceControl.Transaction
        ) {
            val taskToMinimize = mPendingTransitionTokensAndTasks.remove(transition) ?: return
            taskToMinimize.transitionInfo = info
            mActiveTransitionTokensAndTasks[transition] = taskToMinimize
            val taskToMinimize = pendingTransitionTokensAndTasks.remove(transition) ?: return

            if (!taskRepository.isActiveTask(taskToMinimize.taskId)) return

@@ -97,6 +95,8 @@ class DesktopTasksLimiter (
                return
            }

            taskToMinimize.transitionInfo = info
            activeTransitionTokensAndTasks[transition] = taskToMinimize
            this@DesktopTasksLimiter.markTaskMinimized(
                    taskToMinimize.displayId, taskToMinimize.taskId)
        }
@@ -121,7 +121,7 @@ class DesktopTasksLimiter (
        }

        override fun onTransitionStarting(transition: IBinder) {
            val mActiveTaskDetails = mActiveTransitionTokensAndTasks[transition]
            val mActiveTaskDetails = activeTransitionTokensAndTasks[transition]
            if (mActiveTaskDetails != null && mActiveTaskDetails.transitionInfo != null) {
                // Begin minimize window CUJ instrumentation.
                interactionJankMonitor.begin(
@@ -132,11 +132,11 @@ class DesktopTasksLimiter (
        }

        override fun onTransitionMerged(merged: IBinder, playing: IBinder) {
            if (mActiveTransitionTokensAndTasks.remove(merged) != null) {
            if (activeTransitionTokensAndTasks.remove(merged) != null) {
                interactionJankMonitor.end(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
            }
            mPendingTransitionTokensAndTasks.remove(merged)?.let { taskToTransfer ->
                mPendingTransitionTokensAndTasks[playing] = taskToTransfer
            pendingTransitionTokensAndTasks.remove(merged)?.let { taskToTransfer ->
                pendingTransitionTokensAndTasks[playing] = taskToTransfer
            }
        }

@@ -144,14 +144,14 @@ class DesktopTasksLimiter (
            ProtoLog.v(
                    ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE,
                    "DesktopTasksLimiter: transition %s finished", transition)
            if (mActiveTransitionTokensAndTasks.remove(transition) != null) {
            if (activeTransitionTokensAndTasks.remove(transition) != null) {
                if (aborted) {
                    interactionJankMonitor.cancel(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
                } else {
                    interactionJankMonitor.end(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
                }
            }
            mPendingTransitionTokensAndTasks.remove(transition)
            pendingTransitionTokensAndTasks.remove(transition)
        }
    }