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

Commit 0fc279fb authored by Pragya Bajoria's avatar Pragya Bajoria Committed by Android (Google) Code Review
Browse files

Merge "Register UserChangeListener in DesktopTasksController" into main

parents 650efbed 9fcffe41
Loading
Loading
Loading
Loading
+12 −1
Original line number Original line Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.wm.shell.desktopmode
package com.android.wm.shell.desktopmode


import android.app.ActivityManager.RunningTaskInfo
import android.app.ActivityManager.RunningTaskInfo
import android.app.ActivityManager
import android.app.ActivityOptions
import android.app.ActivityOptions
import android.app.KeyguardManager
import android.app.KeyguardManager
import android.app.PendingIntent
import android.app.PendingIntent
@@ -101,6 +102,7 @@ import com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_DESKTO
import com.android.wm.shell.sysui.ShellCommandHandler
import com.android.wm.shell.sysui.ShellCommandHandler
import com.android.wm.shell.sysui.ShellController
import com.android.wm.shell.sysui.ShellController
import com.android.wm.shell.sysui.ShellInit
import com.android.wm.shell.sysui.ShellInit
import com.android.wm.shell.sysui.UserChangeListener
import com.android.wm.shell.transition.OneShotRemoteHandler
import com.android.wm.shell.transition.OneShotRemoteHandler
import com.android.wm.shell.transition.Transitions
import com.android.wm.shell.transition.Transitions
import com.android.wm.shell.windowdecor.DragPositioningCallbackUtility
import com.android.wm.shell.windowdecor.DragPositioningCallbackUtility
@@ -146,10 +148,12 @@ class DesktopTasksController(
) :
) :
    RemoteCallable<DesktopTasksController>,
    RemoteCallable<DesktopTasksController>,
    Transitions.TransitionHandler,
    Transitions.TransitionHandler,
    DragAndDropController.DragAndDropListener {
    DragAndDropController.DragAndDropListener,
    UserChangeListener {


    private val desktopMode: DesktopModeImpl
    private val desktopMode: DesktopModeImpl
    private var visualIndicator: DesktopModeVisualIndicator? = null
    private var visualIndicator: DesktopModeVisualIndicator? = null
    private var userId: Int
    private val desktopModeShellCommandHandler: DesktopModeShellCommandHandler =
    private val desktopModeShellCommandHandler: DesktopModeShellCommandHandler =
        DesktopModeShellCommandHandler(this)
        DesktopModeShellCommandHandler(this)
    private val mOnAnimationFinishedCallback =
    private val mOnAnimationFinishedCallback =
@@ -193,6 +197,7 @@ class DesktopTasksController(
        if (DesktopModeStatus.canEnterDesktopMode(context)) {
        if (DesktopModeStatus.canEnterDesktopMode(context)) {
            shellInit.addInitCallback({ onInit() }, this)
            shellInit.addInitCallback({ onInit() }, this)
        }
        }
        userId = ActivityManager.getCurrentUser()
    }
    }


    private fun onInit() {
    private fun onInit() {
@@ -204,6 +209,7 @@ class DesktopTasksController(
            { createExternalInterface() },
            { createExternalInterface() },
            this
            this
        )
        )
        shellController.addUserChangeListener(this);
        transitions.addHandler(this)
        transitions.addHandler(this)
        dragToDesktopTransitionHandler.dragToDesktopStateListener = dragToDesktopStateListener
        dragToDesktopTransitionHandler.dragToDesktopStateListener = dragToDesktopStateListener
        recentsTransitionHandler.addTransitionStateListener(
        recentsTransitionHandler.addTransitionStateListener(
@@ -1779,6 +1785,11 @@ class DesktopTasksController(
        return true
        return true
    }
    }


    // TODO(b/366397912): Support full multi-user mode in Windowing.
    override fun onUserChanged(newUserId: Int, userContext: Context) {
        userId = newUserId
    }

    private fun dump(pw: PrintWriter, prefix: String) {
    private fun dump(pw: PrintWriter, prefix: String) {
        val innerPrefix = "$prefix  "
        val innerPrefix = "$prefix  "
        pw.println("${prefix}DesktopTasksController")
        pw.println("${prefix}DesktopTasksController")
+6 −0
Original line number Original line Diff line number Diff line
@@ -144,6 +144,7 @@ import org.mockito.Mockito.clearInvocations
import org.mockito.Mockito.mock
import org.mockito.Mockito.mock
import org.mockito.Mockito.spy
import org.mockito.Mockito.spy
import org.mockito.Mockito.verify
import org.mockito.Mockito.verify
import org.mockito.Mockito.times
import org.mockito.kotlin.any
import org.mockito.kotlin.any
import org.mockito.kotlin.anyOrNull
import org.mockito.kotlin.anyOrNull
import org.mockito.kotlin.atLeastOnce
import org.mockito.kotlin.atLeastOnce
@@ -3201,6 +3202,11 @@ class DesktopTasksControllerTest : ShellTestCase() {
      Rect())
      Rect())
  }
  }


  @Test
  fun shellController_registersUserChangeListener() {
      verify(shellController, times(1)).addUserChangeListener(any())
  }

  /**
  /**
   * Assert that an unhandled drag event launches a PendingIntent with the
   * Assert that an unhandled drag event launches a PendingIntent with the
   * windowing mode and bounds we are expecting.
   * windowing mode and bounds we are expecting.