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

Commit 7ee5fd29 authored by Yuichiro Hanada's avatar Yuichiro Hanada
Browse files

Add exit from desktop by minimize logging

Flag: com.android.window.flags.enable_minimize_button
Bug: 375505722
Test: WMShellUnitTests
Change-Id: I34967aab060eac17f30d0db8ec0a0437529ceaf3
parent eeff0ad5
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -541,7 +541,8 @@ class DesktopModeEventLogger {
                FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EXIT_REASON__RETURN_HOME_OR_OVERVIEW
                FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EXIT_REASON__RETURN_HOME_OR_OVERVIEW
            ),
            ),
            TASK_FINISHED(FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EXIT_REASON__TASK_FINISHED),
            TASK_FINISHED(FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EXIT_REASON__TASK_FINISHED),
            SCREEN_OFF(FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EXIT_REASON__SCREEN_OFF)
            SCREEN_OFF(FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EXIT_REASON__SCREEN_OFF),
            TASK_MINIMIZED(FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EXIT_REASON__TASK_MINIMIZED),
        }
        }


        /**
        /**
+1 −0
Original line number Original line Diff line number Diff line
@@ -382,6 +382,7 @@ class DesktopModeLoggerTransitionObserver(
            transitionInfo.type == TRANSIT_EXIT_DESKTOP_MODE_KEYBOARD_SHORTCUT ->
            transitionInfo.type == TRANSIT_EXIT_DESKTOP_MODE_KEYBOARD_SHORTCUT ->
                ExitReason.KEYBOARD_SHORTCUT_EXIT
                ExitReason.KEYBOARD_SHORTCUT_EXIT
            transitionInfo.isExitToRecentsTransition() -> ExitReason.RETURN_HOME_OR_OVERVIEW
            transitionInfo.isExitToRecentsTransition() -> ExitReason.RETURN_HOME_OR_OVERVIEW
            transitionInfo.type == Transitions.TRANSIT_MINIMIZE -> ExitReason.TASK_MINIMIZED
            else -> {
            else -> {
                ProtoLog.w(
                ProtoLog.w(
                    WM_SHELL_DESKTOP_MODE,
                    WM_SHELL_DESKTOP_MODE,
+18 −0
Original line number Original line Diff line number Diff line
@@ -59,6 +59,7 @@ import com.android.wm.shell.shared.desktopmode.DesktopModeStatus
import com.android.wm.shell.sysui.ShellInit
import com.android.wm.shell.sysui.ShellInit
import com.android.wm.shell.transition.TransitionInfoBuilder
import com.android.wm.shell.transition.TransitionInfoBuilder
import com.android.wm.shell.transition.Transitions
import com.android.wm.shell.transition.Transitions
import com.android.wm.shell.transition.Transitions.TRANSIT_MINIMIZE
import kotlin.test.assertFalse
import kotlin.test.assertFalse
import kotlin.test.assertTrue
import kotlin.test.assertTrue
import org.junit.Before
import org.junit.Before
@@ -521,6 +522,23 @@ class DesktopModeLoggerTransitionObserverTest : ShellTestCase() {
    verifyTaskRemovedAndExitLogging(ExitReason.TASK_FINISHED, DEFAULT_TASK_UPDATE)
    verifyTaskRemovedAndExitLogging(ExitReason.TASK_FINISHED, DEFAULT_TASK_UPDATE)
  }
  }


  @Test
  fun transitMinimize_logExitReasongMinimized() {
      // add a freeform task
      transitionObserver.addTaskInfosToCachedMap(createTaskInfo(WINDOWING_MODE_FREEFORM))
      transitionObserver.isSessionActive = true

      // minimize the task
      val change = createChange(TRANSIT_MINIMIZE, createTaskInfo(WINDOWING_MODE_FULLSCREEN))
      val transitionInfo = TransitionInfoBuilder(TRANSIT_MINIMIZE).addChange(change).build()
      callOnTransitionReady(transitionInfo)

      assertFalse(transitionObserver.isSessionActive)
      verify(desktopModeEventLogger, times(1)).logSessionExit(eq(ExitReason.TASK_MINIMIZED))
      verify(desktopModeEventLogger, times(1)).logTaskRemoved(eq(DEFAULT_TASK_UPDATE))
      verifyZeroInteractions(desktopModeEventLogger)
  }

  @Test
  @Test
  fun sessionExitByRecents_cancelledAnimation_sessionRestored() {
  fun sessionExitByRecents_cancelledAnimation_sessionRestored() {
    // add a freeform task to an existing session
    // add a freeform task to an existing session