Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java +4 −2 Original line number Diff line number Diff line Loading @@ -739,12 +739,14 @@ public abstract class WMShellBaseModule { ActivityTaskManager activityTaskManager, Optional<DesktopUserRepositories> desktopUserRepositories, TaskStackTransitionObserver taskStackTransitionObserver, @ShellMainThread ShellExecutor mainExecutor @ShellMainThread ShellExecutor mainExecutor, DesktopState desktopState ) { return Optional.ofNullable( RecentTasksController.create(context, shellInit, shellController, shellCommandHandler, taskStackListener, activityTaskManager, desktopUserRepositories, taskStackTransitionObserver, mainExecutor)); desktopUserRepositories, taskStackTransitionObserver, mainExecutor, desktopState)); } @BindsOptionalOf Loading libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java +12 −8 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ import com.android.wm.shell.protolog.ShellProtoLogGroup; import com.android.wm.shell.shared.GroupedTaskInfo; import com.android.wm.shell.shared.annotations.ExternalThread; import com.android.wm.shell.shared.annotations.ShellMainThread; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; import com.android.wm.shell.shared.desktopmode.DesktopState; import com.android.wm.shell.shared.split.SplitBounds; import com.android.wm.shell.sysui.ShellCommandHandler; import com.android.wm.shell.sysui.ShellController; Loading Loading @@ -109,6 +109,7 @@ public class RecentTasksController implements TaskStackListenerCallback, private final ActivityTaskManager mActivityTaskManager; private final TaskStackTransitionObserver mTaskStackTransitionObserver; private final RecentsShellCommandHandler mRecentsShellCommandHandler; private final DesktopState mDesktopState; private RecentsTransitionHandler mTransitionHandler = null; private IRecentTasksListener mListener; private final boolean mPcFeatureEnabled; Loading Loading @@ -150,14 +151,15 @@ public class RecentTasksController implements TaskStackListenerCallback, ActivityTaskManager activityTaskManager, Optional<DesktopUserRepositories> desktopUserRepositories, TaskStackTransitionObserver taskStackTransitionObserver, @ShellMainThread ShellExecutor mainExecutor @ShellMainThread ShellExecutor mainExecutor, DesktopState desktopState ) { if (!context.getResources().getBoolean(com.android.internal.R.bool.config_hasRecents)) { return null; } return new RecentTasksController(context, shellInit, shellController, shellCommandHandler, taskStackListener, activityTaskManager, desktopUserRepositories, taskStackTransitionObserver, mainExecutor); taskStackTransitionObserver, mainExecutor, desktopState); } RecentTasksController(Context context, Loading @@ -168,7 +170,8 @@ public class RecentTasksController implements TaskStackListenerCallback, ActivityTaskManager activityTaskManager, Optional<DesktopUserRepositories> desktopUserRepositories, TaskStackTransitionObserver taskStackTransitionObserver, ShellExecutor mainExecutor) { ShellExecutor mainExecutor, DesktopState desktopState) { mContext = context; mShellController = shellController; mShellCommandHandler = shellCommandHandler; Loading @@ -179,6 +182,7 @@ public class RecentTasksController implements TaskStackListenerCallback, mTaskStackTransitionObserver = taskStackTransitionObserver; mMainExecutor = mainExecutor; mRecentsShellCommandHandler = new RecentsShellCommandHandler(this); mDesktopState = desktopState; shellInit.addInitCallback(this::onInit, this); } Loading Loading @@ -489,7 +493,7 @@ public class RecentTasksController implements TaskStackListenerCallback, private boolean shouldEnableRunningTasksForDesktopMode() { return mPcFeatureEnabled || (DesktopModeStatus.canEnterDesktopMode(mContext) || (mDesktopState.canEnterDesktopMode() && DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_TASKBAR_RUNNING_APPS.isTrue()); } Loading Loading @@ -583,7 +587,7 @@ public class RecentTasksController implements TaskStackListenerCallback, private void initializeDesksMap(boolean multipleDesktopsEnabled) { mTmpDesks.clear(); if (DesktopModeStatus.canEnterDesktopMode(mContext) if (mDesktopState.canEnterDesktopMode() && mDesktopUserRepositories.isPresent()) { if (multipleDesktopsEnabled) { for (var deskId : mDesktopUserRepositories.get().getCurrent().getAllDeskIds()) { Loading Loading @@ -675,8 +679,8 @@ public class RecentTasksController implements TaskStackListenerCallback, } // Desktop tasks if (DesktopModeStatus.canEnterDesktopMode(mContext) && mDesktopUserRepositories.isPresent() if (mDesktopState.canEnterDesktopMode() && mDesktopUserRepositories.isPresent() && mDesktopUserRepositories.get().getCurrent().isActiveTask(taskId)) { // If task has their app bounds set to null which happens after reboot, set the // app bounds to persisted lastFullscreenBounds. Also set the position in parent Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentTasksControllerTest.java +15 −15 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession; import static com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_WINDOWING_PERSISTENCE; import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_DESK; import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_FULLSCREEN; Loading Loading @@ -69,8 +68,6 @@ import android.view.SurfaceControl; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; import com.android.dx.mockito.inline.extended.ExtendedMockito; import com.android.dx.mockito.inline.extended.StaticMockitoSession; import com.android.window.flags.Flags; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.ShellTestCase; Loading @@ -81,7 +78,7 @@ import com.android.wm.shell.desktopmode.DesktopRepository; import com.android.wm.shell.desktopmode.DesktopUserRepositories; import com.android.wm.shell.desktopmode.DesktopWallpaperActivity; import com.android.wm.shell.shared.GroupedTaskInfo; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; import com.android.wm.shell.shared.desktopmode.FakeDesktopState; import com.android.wm.shell.shared.split.SplitBounds; import com.android.wm.shell.sysui.ShellCommandHandler; import com.android.wm.shell.sysui.ShellController; Loading @@ -92,7 +89,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.quality.Strictness; import org.mockito.MockitoAnnotations; import java.util.ArrayList; import java.util.Arrays; Loading Loading @@ -130,6 +127,7 @@ public class RecentTasksControllerTest extends ShellTestCase { private DesktopRepository mDesktopRepository; @Mock private UserManager mUserManager; private FakeDesktopState mDesktopState; private ShellTaskOrganizer mShellTaskOrganizer; private RecentTasksController mRecentTasksController; Loading @@ -137,14 +135,14 @@ public class RecentTasksControllerTest extends ShellTestCase { private ShellInit mShellInit; private ShellController mShellController; private TestShellExecutor mMainExecutor; private static StaticMockitoSession sMockitoSession; private AutoCloseable mMocksInit = null; @Before public void setUp() { sMockitoSession = mockitoSession().initMocks(this).strictness(Strictness.LENIENT) .mockStatic(DesktopModeStatus.class).startMocking(); ExtendedMockito.doReturn(true) .when(() -> DesktopModeStatus.canEnterDesktopMode(any())); mDesktopState = new FakeDesktopState(); mDesktopState.setCanEnterDesktopMode(true); mMocksInit = MockitoAnnotations.openMocks(this); mMainExecutor = new TestShellExecutor(); when(mDesktopUserRepositories.getCurrent()).thenReturn(mDesktopRepository); Loading @@ -158,7 +156,7 @@ public class RecentTasksControllerTest extends ShellTestCase { mRecentTasksControllerReal = new RecentTasksController(mContext, mShellInit, mShellController, mShellCommandHandler, mTaskStackListener, mActivityTaskManager, Optional.of(mDesktopUserRepositories), mTaskStackTransitionObserver, mMainExecutor); mMainExecutor, mDesktopState); mRecentTasksController = spy(mRecentTasksControllerReal); mShellTaskOrganizer = new ShellTaskOrganizer(mShellInit, mShellCommandHandler, null /* sizeCompatUI */, Optional.empty(), Optional.of(mRecentTasksController), Loading @@ -167,8 +165,11 @@ public class RecentTasksControllerTest extends ShellTestCase { } @After public void tearDown() { sMockitoSession.finishMocking(); public void tearDown() throws Exception { if (mMocksInit != null) { mMocksInit.close(); mMocksInit = null; } } @Test Loading Loading @@ -409,8 +410,7 @@ public class RecentTasksControllerTest extends ShellTestCase { @Test public void testGetRecentTasks_hasActiveDesktopTasks_proto2Disabled_doNotGroupFreeformTasks() { ExtendedMockito.doReturn(false) .when(() -> DesktopModeStatus.canEnterDesktopMode(any())); mDesktopState.setCanEnterDesktopMode(false); RecentTaskInfo t1 = makeTaskInfo(1); RecentTaskInfo t2 = makeTaskInfo(2); Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentsTransitionHandlerTest.java +13 −13 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_OPEN; import static android.view.WindowManager.TRANSIT_TO_FRONT; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession; import static com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_RECENTS_TRANSITIONS_CORNERS_BUGFIX; import static com.android.wm.shell.Flags.FLAG_ENABLE_RECENTS_BOOKEND_TRANSITION; import static com.android.wm.shell.recents.RecentsTransitionStateListener.TRANSITION_STATE_ANIMATING; Loading Loading @@ -65,8 +64,6 @@ import androidx.annotation.NonNull; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.dx.mockito.inline.extended.ExtendedMockito; import com.android.dx.mockito.inline.extended.StaticMockitoSession; import com.android.internal.os.IResultReceiver; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.ShellTestCase; Loading @@ -77,7 +74,7 @@ import com.android.wm.shell.common.TaskStackListenerImpl; import com.android.wm.shell.desktopmode.DesktopRepository; import com.android.wm.shell.desktopmode.DesktopUserRepositories; import com.android.wm.shell.shared.R; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; import com.android.wm.shell.shared.desktopmode.FakeDesktopState; import com.android.wm.shell.sysui.ShellCommandHandler; import com.android.wm.shell.sysui.ShellController; import com.android.wm.shell.sysui.ShellInit; Loading @@ -91,7 +88,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.quality.Strictness; import org.mockito.MockitoAnnotations; import java.util.Optional; Loading Loading @@ -136,14 +133,14 @@ public class RecentsTransitionHandlerTest extends ShellTestCase { private ShellInit mShellInit; private ShellController mShellController; private TestShellExecutor mMainExecutor; private static StaticMockitoSession sMockitoSession; private AutoCloseable mMocksInit = null; @Before public void setUp() { sMockitoSession = mockitoSession().initMocks(this).strictness(Strictness.LENIENT) .mockStatic(DesktopModeStatus.class).startMocking(); ExtendedMockito.doReturn(true) .when(() -> DesktopModeStatus.canEnterDesktopMode(any())); var desktopState = new FakeDesktopState(); desktopState.setCanEnterDesktopMode(true); mMocksInit = MockitoAnnotations.openMocks(this); when(mDesktopUserRepositories.getCurrent()).thenReturn(mDesktopRepository); mMainExecutor = new TestShellExecutor(); Loading @@ -160,7 +157,7 @@ public class RecentsTransitionHandlerTest extends ShellTestCase { mRecentTasksControllerReal = new RecentTasksController(mContext, mShellInit, mShellController, mShellCommandHandler, mTaskStackListener, mActivityTaskManager, Optional.of(mDesktopUserRepositories), mTaskStackTransitionObserver, mMainExecutor); mMainExecutor, desktopState); mRecentTasksController = spy(mRecentTasksControllerReal); mShellTaskOrganizer = new ShellTaskOrganizer(mShellInit, mShellCommandHandler, null /* sizeCompatUI */, Optional.empty(), Optional.of(mRecentTasksController), Loading @@ -178,8 +175,11 @@ public class RecentsTransitionHandlerTest extends ShellTestCase { } @After public void tearDown() { sMockitoSession.finishMocking(); public void tearDown() throws Exception { if (mMocksInit != null) { mMocksInit.close(); mMocksInit = null; } } @Test Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java +4 −2 Original line number Diff line number Diff line Loading @@ -739,12 +739,14 @@ public abstract class WMShellBaseModule { ActivityTaskManager activityTaskManager, Optional<DesktopUserRepositories> desktopUserRepositories, TaskStackTransitionObserver taskStackTransitionObserver, @ShellMainThread ShellExecutor mainExecutor @ShellMainThread ShellExecutor mainExecutor, DesktopState desktopState ) { return Optional.ofNullable( RecentTasksController.create(context, shellInit, shellController, shellCommandHandler, taskStackListener, activityTaskManager, desktopUserRepositories, taskStackTransitionObserver, mainExecutor)); desktopUserRepositories, taskStackTransitionObserver, mainExecutor, desktopState)); } @BindsOptionalOf Loading
libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java +12 −8 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ import com.android.wm.shell.protolog.ShellProtoLogGroup; import com.android.wm.shell.shared.GroupedTaskInfo; import com.android.wm.shell.shared.annotations.ExternalThread; import com.android.wm.shell.shared.annotations.ShellMainThread; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; import com.android.wm.shell.shared.desktopmode.DesktopState; import com.android.wm.shell.shared.split.SplitBounds; import com.android.wm.shell.sysui.ShellCommandHandler; import com.android.wm.shell.sysui.ShellController; Loading Loading @@ -109,6 +109,7 @@ public class RecentTasksController implements TaskStackListenerCallback, private final ActivityTaskManager mActivityTaskManager; private final TaskStackTransitionObserver mTaskStackTransitionObserver; private final RecentsShellCommandHandler mRecentsShellCommandHandler; private final DesktopState mDesktopState; private RecentsTransitionHandler mTransitionHandler = null; private IRecentTasksListener mListener; private final boolean mPcFeatureEnabled; Loading Loading @@ -150,14 +151,15 @@ public class RecentTasksController implements TaskStackListenerCallback, ActivityTaskManager activityTaskManager, Optional<DesktopUserRepositories> desktopUserRepositories, TaskStackTransitionObserver taskStackTransitionObserver, @ShellMainThread ShellExecutor mainExecutor @ShellMainThread ShellExecutor mainExecutor, DesktopState desktopState ) { if (!context.getResources().getBoolean(com.android.internal.R.bool.config_hasRecents)) { return null; } return new RecentTasksController(context, shellInit, shellController, shellCommandHandler, taskStackListener, activityTaskManager, desktopUserRepositories, taskStackTransitionObserver, mainExecutor); taskStackTransitionObserver, mainExecutor, desktopState); } RecentTasksController(Context context, Loading @@ -168,7 +170,8 @@ public class RecentTasksController implements TaskStackListenerCallback, ActivityTaskManager activityTaskManager, Optional<DesktopUserRepositories> desktopUserRepositories, TaskStackTransitionObserver taskStackTransitionObserver, ShellExecutor mainExecutor) { ShellExecutor mainExecutor, DesktopState desktopState) { mContext = context; mShellController = shellController; mShellCommandHandler = shellCommandHandler; Loading @@ -179,6 +182,7 @@ public class RecentTasksController implements TaskStackListenerCallback, mTaskStackTransitionObserver = taskStackTransitionObserver; mMainExecutor = mainExecutor; mRecentsShellCommandHandler = new RecentsShellCommandHandler(this); mDesktopState = desktopState; shellInit.addInitCallback(this::onInit, this); } Loading Loading @@ -489,7 +493,7 @@ public class RecentTasksController implements TaskStackListenerCallback, private boolean shouldEnableRunningTasksForDesktopMode() { return mPcFeatureEnabled || (DesktopModeStatus.canEnterDesktopMode(mContext) || (mDesktopState.canEnterDesktopMode() && DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_TASKBAR_RUNNING_APPS.isTrue()); } Loading Loading @@ -583,7 +587,7 @@ public class RecentTasksController implements TaskStackListenerCallback, private void initializeDesksMap(boolean multipleDesktopsEnabled) { mTmpDesks.clear(); if (DesktopModeStatus.canEnterDesktopMode(mContext) if (mDesktopState.canEnterDesktopMode() && mDesktopUserRepositories.isPresent()) { if (multipleDesktopsEnabled) { for (var deskId : mDesktopUserRepositories.get().getCurrent().getAllDeskIds()) { Loading Loading @@ -675,8 +679,8 @@ public class RecentTasksController implements TaskStackListenerCallback, } // Desktop tasks if (DesktopModeStatus.canEnterDesktopMode(mContext) && mDesktopUserRepositories.isPresent() if (mDesktopState.canEnterDesktopMode() && mDesktopUserRepositories.isPresent() && mDesktopUserRepositories.get().getCurrent().isActiveTask(taskId)) { // If task has their app bounds set to null which happens after reboot, set the // app bounds to persisted lastFullscreenBounds. Also set the position in parent Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentTasksControllerTest.java +15 −15 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession; import static com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_WINDOWING_PERSISTENCE; import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_DESK; import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_FULLSCREEN; Loading Loading @@ -69,8 +68,6 @@ import android.view.SurfaceControl; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; import com.android.dx.mockito.inline.extended.ExtendedMockito; import com.android.dx.mockito.inline.extended.StaticMockitoSession; import com.android.window.flags.Flags; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.ShellTestCase; Loading @@ -81,7 +78,7 @@ import com.android.wm.shell.desktopmode.DesktopRepository; import com.android.wm.shell.desktopmode.DesktopUserRepositories; import com.android.wm.shell.desktopmode.DesktopWallpaperActivity; import com.android.wm.shell.shared.GroupedTaskInfo; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; import com.android.wm.shell.shared.desktopmode.FakeDesktopState; import com.android.wm.shell.shared.split.SplitBounds; import com.android.wm.shell.sysui.ShellCommandHandler; import com.android.wm.shell.sysui.ShellController; Loading @@ -92,7 +89,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.quality.Strictness; import org.mockito.MockitoAnnotations; import java.util.ArrayList; import java.util.Arrays; Loading Loading @@ -130,6 +127,7 @@ public class RecentTasksControllerTest extends ShellTestCase { private DesktopRepository mDesktopRepository; @Mock private UserManager mUserManager; private FakeDesktopState mDesktopState; private ShellTaskOrganizer mShellTaskOrganizer; private RecentTasksController mRecentTasksController; Loading @@ -137,14 +135,14 @@ public class RecentTasksControllerTest extends ShellTestCase { private ShellInit mShellInit; private ShellController mShellController; private TestShellExecutor mMainExecutor; private static StaticMockitoSession sMockitoSession; private AutoCloseable mMocksInit = null; @Before public void setUp() { sMockitoSession = mockitoSession().initMocks(this).strictness(Strictness.LENIENT) .mockStatic(DesktopModeStatus.class).startMocking(); ExtendedMockito.doReturn(true) .when(() -> DesktopModeStatus.canEnterDesktopMode(any())); mDesktopState = new FakeDesktopState(); mDesktopState.setCanEnterDesktopMode(true); mMocksInit = MockitoAnnotations.openMocks(this); mMainExecutor = new TestShellExecutor(); when(mDesktopUserRepositories.getCurrent()).thenReturn(mDesktopRepository); Loading @@ -158,7 +156,7 @@ public class RecentTasksControllerTest extends ShellTestCase { mRecentTasksControllerReal = new RecentTasksController(mContext, mShellInit, mShellController, mShellCommandHandler, mTaskStackListener, mActivityTaskManager, Optional.of(mDesktopUserRepositories), mTaskStackTransitionObserver, mMainExecutor); mMainExecutor, mDesktopState); mRecentTasksController = spy(mRecentTasksControllerReal); mShellTaskOrganizer = new ShellTaskOrganizer(mShellInit, mShellCommandHandler, null /* sizeCompatUI */, Optional.empty(), Optional.of(mRecentTasksController), Loading @@ -167,8 +165,11 @@ public class RecentTasksControllerTest extends ShellTestCase { } @After public void tearDown() { sMockitoSession.finishMocking(); public void tearDown() throws Exception { if (mMocksInit != null) { mMocksInit.close(); mMocksInit = null; } } @Test Loading Loading @@ -409,8 +410,7 @@ public class RecentTasksControllerTest extends ShellTestCase { @Test public void testGetRecentTasks_hasActiveDesktopTasks_proto2Disabled_doNotGroupFreeformTasks() { ExtendedMockito.doReturn(false) .when(() -> DesktopModeStatus.canEnterDesktopMode(any())); mDesktopState.setCanEnterDesktopMode(false); RecentTaskInfo t1 = makeTaskInfo(1); RecentTaskInfo t2 = makeTaskInfo(2); Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentsTransitionHandlerTest.java +13 −13 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_OPEN; import static android.view.WindowManager.TRANSIT_TO_FRONT; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession; import static com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_RECENTS_TRANSITIONS_CORNERS_BUGFIX; import static com.android.wm.shell.Flags.FLAG_ENABLE_RECENTS_BOOKEND_TRANSITION; import static com.android.wm.shell.recents.RecentsTransitionStateListener.TRANSITION_STATE_ANIMATING; Loading Loading @@ -65,8 +64,6 @@ import androidx.annotation.NonNull; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.dx.mockito.inline.extended.ExtendedMockito; import com.android.dx.mockito.inline.extended.StaticMockitoSession; import com.android.internal.os.IResultReceiver; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.ShellTestCase; Loading @@ -77,7 +74,7 @@ import com.android.wm.shell.common.TaskStackListenerImpl; import com.android.wm.shell.desktopmode.DesktopRepository; import com.android.wm.shell.desktopmode.DesktopUserRepositories; import com.android.wm.shell.shared.R; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; import com.android.wm.shell.shared.desktopmode.FakeDesktopState; import com.android.wm.shell.sysui.ShellCommandHandler; import com.android.wm.shell.sysui.ShellController; import com.android.wm.shell.sysui.ShellInit; Loading @@ -91,7 +88,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.quality.Strictness; import org.mockito.MockitoAnnotations; import java.util.Optional; Loading Loading @@ -136,14 +133,14 @@ public class RecentsTransitionHandlerTest extends ShellTestCase { private ShellInit mShellInit; private ShellController mShellController; private TestShellExecutor mMainExecutor; private static StaticMockitoSession sMockitoSession; private AutoCloseable mMocksInit = null; @Before public void setUp() { sMockitoSession = mockitoSession().initMocks(this).strictness(Strictness.LENIENT) .mockStatic(DesktopModeStatus.class).startMocking(); ExtendedMockito.doReturn(true) .when(() -> DesktopModeStatus.canEnterDesktopMode(any())); var desktopState = new FakeDesktopState(); desktopState.setCanEnterDesktopMode(true); mMocksInit = MockitoAnnotations.openMocks(this); when(mDesktopUserRepositories.getCurrent()).thenReturn(mDesktopRepository); mMainExecutor = new TestShellExecutor(); Loading @@ -160,7 +157,7 @@ public class RecentsTransitionHandlerTest extends ShellTestCase { mRecentTasksControllerReal = new RecentTasksController(mContext, mShellInit, mShellController, mShellCommandHandler, mTaskStackListener, mActivityTaskManager, Optional.of(mDesktopUserRepositories), mTaskStackTransitionObserver, mMainExecutor); mMainExecutor, desktopState); mRecentTasksController = spy(mRecentTasksControllerReal); mShellTaskOrganizer = new ShellTaskOrganizer(mShellInit, mShellCommandHandler, null /* sizeCompatUI */, Optional.empty(), Optional.of(mRecentTasksController), Loading @@ -178,8 +175,11 @@ public class RecentsTransitionHandlerTest extends ShellTestCase { } @After public void tearDown() { sMockitoSession.finishMocking(); public void tearDown() throws Exception { if (mMocksInit != null) { mMocksInit.close(); mMocksInit = null; } } @Test Loading