Merge "Do not start another transition from handleRequest" into udc-dev
This commit is contained in:
@@ -41,7 +41,6 @@ import android.os.RemoteException;
|
||||
import android.os.UserHandle;
|
||||
import android.provider.Settings;
|
||||
import android.util.ArraySet;
|
||||
import android.util.Pair;
|
||||
import android.view.SurfaceControl;
|
||||
import android.view.WindowManager;
|
||||
import android.window.DisplayAreaInfo;
|
||||
@@ -364,10 +363,7 @@ public class DesktopModeController implements RemoteCallable<DesktopModeControll
|
||||
}
|
||||
ProtoLog.d(WM_SHELL_DESKTOP_MODE, "handle shell transition request: %s", request);
|
||||
|
||||
Pair<Transitions.TransitionHandler, WindowContainerTransaction> subHandler =
|
||||
mTransitions.dispatchRequest(transition, request, this);
|
||||
WindowContainerTransaction wct = subHandler != null
|
||||
? subHandler.second : new WindowContainerTransaction();
|
||||
WindowContainerTransaction wct = new WindowContainerTransaction();
|
||||
bringDesktopAppsToFront(wct);
|
||||
wct.reorder(request.getTriggerTask().token, true /* onTop */);
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@ import static org.mockito.Mockito.clearInvocations;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.verifyZeroInteractions;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.ActivityManager.RunningTaskInfo;
|
||||
@@ -418,6 +419,17 @@ public class DesktopModeControllerTest extends ShellTestCase {
|
||||
assertThat(wct).isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHandleTransitionRequest_taskOpen_doesNotStartAnotherTransition() {
|
||||
RunningTaskInfo trigger = new RunningTaskInfo();
|
||||
trigger.token = new MockToken().token();
|
||||
trigger.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM);
|
||||
mController.handleRequest(
|
||||
mock(IBinder.class),
|
||||
new TransitionRequestInfo(TRANSIT_OPEN, trigger, null /* remote */));
|
||||
verifyZeroInteractions(mTransitions);
|
||||
}
|
||||
|
||||
private DesktopModeController createController() {
|
||||
return new DesktopModeController(mContext, mShellInit, mShellController,
|
||||
mShellTaskOrganizer, mRootTaskDisplayAreaOrganizer, mTransitions,
|
||||
|
||||
Reference in New Issue
Block a user