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

Commit d1311726 authored by Jorge Gil's avatar Jorge Gil
Browse files

Log App Handle drag metrics

For dragging into desktop, fullscreen or split-screen.

Bug: 341320112
Test: verified logs with go/atomtester
Flag: EXEMPT adding logs
Change-Id: I6811b7b168689a5405fe6b5edfa244926edcb1b7
parent 86cafeef
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -701,6 +701,7 @@ public abstract class WMShellModule {
            InputManager inputManager,
            FocusTransitionObserver focusTransitionObserver,
            DesktopModeEventLogger desktopModeEventLogger,
            DesktopModeUiEventLogger desktopModeUiEventLogger,
            DesktopTilingDecorViewModel desktopTilingDecorViewModel) {
        return new DesktopTasksController(
                context,
@@ -731,6 +732,7 @@ public abstract class WMShellModule {
                interactionJankMonitor,
                mainHandler,
                desktopModeEventLogger,
                desktopModeUiEventLogger,
                desktopTilingDecorViewModel);
    }

+7 −1
Original line number Diff line number Diff line
@@ -112,7 +112,13 @@ class DesktopModeUiEventLogger(
        @UiEvent(doc = "Tap on the split screen option under app handle menu")
        DESKTOP_WINDOW_APP_HANDLE_MENU_TAP_TO_SPLIT_SCREEN(2000),
        @UiEvent(doc = "Tap on the full screen option under app handle menu")
        DESKTOP_WINDOW_APP_HANDLE_MENU_TAP_TO_FULL_SCREEN(2001);
        DESKTOP_WINDOW_APP_HANDLE_MENU_TAP_TO_FULL_SCREEN(2001),
        @UiEvent(doc = "When user successfully drags the app handle to desktop mode")
        DESKTOP_WINDOW_APP_HANDLE_DRAG_TO_DESKTOP_MODE(2002),
        @UiEvent(doc = "When user successfully drags the app handle to split screen")
        DESKTOP_WINDOW_APP_HANDLE_DRAG_TO_SPLIT_SCREEN(2003),
        @UiEvent(doc = "When user successfully drags the app handle to full screen")
        DESKTOP_WINDOW_APP_HANDLE_DRAG_TO_FULL_SCREEN(2004);

        override fun getId(): Int = mId
    }
+18 −0
Original line number Diff line number Diff line
@@ -130,6 +130,7 @@ import java.util.Optional
import java.util.concurrent.Executor
import java.util.function.Consumer
import com.android.wm.shell.desktopmode.DesktopModeEventLogger.Companion.ResizeTrigger
import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum
import com.android.wm.shell.desktopmode.DragToDesktopTransitionHandler.Companion.DRAG_TO_DESKTOP_FINISH_ANIM_DURATION_MS
import com.android.wm.shell.desktopmode.EnterDesktopTaskTransitionHandler.FREEFORM_ANIMATION_DURATION
import com.android.wm.shell.desktopmode.ExitDesktopTaskTransitionHandler.FULLSCREEN_ANIMATION_DURATION
@@ -164,6 +165,7 @@ class DesktopTasksController(
    private val interactionJankMonitor: InteractionJankMonitor,
    @ShellMainThread private val handler: Handler,
    private val desktopModeEventLogger: DesktopModeEventLogger,
    private val desktopModeUiEventLogger: DesktopModeUiEventLogger,
    private val desktopTilingDecorViewModel: DesktopTilingDecorViewModel,
) :
    RemoteCallable<DesktopTasksController>,
@@ -2132,16 +2134,32 @@ class DesktopTasksController(
                // Start a new jank interaction for the drag release to desktop window animation.
                interactionJankMonitor.begin(taskSurface, context, handler,
                    CUJ_DESKTOP_MODE_ENTER_APP_HANDLE_DRAG_RELEASE, "to_desktop")
                desktopModeUiEventLogger.log(
                    taskInfo,
                    DesktopUiEventEnum.DESKTOP_WINDOW_APP_HANDLE_DRAG_TO_DESKTOP_MODE
                )
                finalizeDragToDesktop(taskInfo)
            }
            IndicatorType.NO_INDICATOR,
            IndicatorType.TO_FULLSCREEN_INDICATOR -> {
                desktopModeUiEventLogger.log(
                    taskInfo,
                    DesktopUiEventEnum.DESKTOP_WINDOW_APP_HANDLE_DRAG_TO_FULL_SCREEN
                )
                cancelDragToDesktop(taskInfo)
            }
            IndicatorType.TO_SPLIT_LEFT_INDICATOR -> {
                desktopModeUiEventLogger.log(
                    taskInfo,
                    DesktopUiEventEnum.DESKTOP_WINDOW_APP_HANDLE_DRAG_TO_SPLIT_SCREEN
                )
                requestSplit(taskInfo, leftOrTop = true)
            }
            IndicatorType.TO_SPLIT_RIGHT_INDICATOR -> {
                desktopModeUiEventLogger.log(
                    taskInfo,
                    DesktopUiEventEnum.DESKTOP_WINDOW_APP_HANDLE_DRAG_TO_SPLIT_SCREEN
                )
                requestSplit(taskInfo, leftOrTop = false)
            }
        }
+2 −0
Original line number Diff line number Diff line
@@ -217,6 +217,7 @@ class DesktopTasksControllerTest : ShellTestCase() {
  @Mock private lateinit var freeformTaskTransitionStarter: FreeformTaskTransitionStarter
  @Mock private lateinit var mockHandler: Handler
  @Mock private lateinit var desktopModeEventLogger: DesktopModeEventLogger
  @Mock private lateinit var desktopModeUiEventLogger: DesktopModeUiEventLogger
  @Mock lateinit var persistentRepository: DesktopPersistentRepository
  @Mock lateinit var motionEvent: MotionEvent
  @Mock lateinit var repositoryInitializer: DesktopRepositoryInitializer
@@ -343,6 +344,7 @@ class DesktopTasksControllerTest : ShellTestCase() {
        mockInteractionJankMonitor,
        mockHandler,
        desktopModeEventLogger,
        desktopModeUiEventLogger,
        desktopTilingDecorViewModel,
      )
  }