Loading services/core/java/com/android/server/wm/TaskOrganizerController.java +1 −1 Original line number Diff line number Diff line Loading @@ -602,7 +602,7 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub { void onTaskVanished(ITaskOrganizer organizer, Task task) { final TaskOrganizerState state = mTaskOrganizerStates.get(organizer.asBinder()); if (state != null && state.removeTask(task, false /* removeFromSystem */)) { if (state != null && state.removeTask(task, task.mRemoveWithTaskOrganizer)) { onTaskVanishedInternal(organizer, task); } } Loading services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java +36 −0 Original line number Diff line number Diff line Loading @@ -246,6 +246,42 @@ public class WindowOrganizerTests extends WindowTestsBase { assertFalse(rootTask.isOrganized()); } @Test public void testRemoveWithOrganizerRemovesTask() throws RemoteException { final ITaskOrganizer organizer = registerMockOrganizer(); final Task rootTask = createRootTask(); final Task task = createTask(rootTask); rootTask.mRemoveWithTaskOrganizer = true; mWm.mAtmService.mTaskOrganizerController.dispatchPendingEvents(); verify(organizer).onTaskAppeared(any(RunningTaskInfo.class), any(SurfaceControl.class)); assertTrue(rootTask.isOrganized()); spyOn(mWm.mAtmService); rootTask.setTaskOrganizer(null); mWm.mAtmService.mTaskOrganizerController.dispatchPendingEvents(); verify(mWm.mAtmService).removeTask(eq(rootTask.mTaskId)); } @Test public void testNoRemoveWithOrganizerNoRemoveTask() throws RemoteException { final ITaskOrganizer organizer = registerMockOrganizer(); final Task rootTask = createRootTask(); final Task task = createTask(rootTask); rootTask.mRemoveWithTaskOrganizer = false; mWm.mAtmService.mTaskOrganizerController.dispatchPendingEvents(); verify(organizer).onTaskAppeared(any(RunningTaskInfo.class), any(SurfaceControl.class)); assertTrue(rootTask.isOrganized()); spyOn(mWm.mAtmService); rootTask.setTaskOrganizer(null); mWm.mAtmService.mTaskOrganizerController.dispatchPendingEvents(); verify(mWm.mAtmService, never()).removeTask(eq(rootTask.mTaskId)); } @Test public void testUnregisterOrganizer() throws RemoteException { final ITaskOrganizer organizer = registerMockOrganizer(); Loading Loading
services/core/java/com/android/server/wm/TaskOrganizerController.java +1 −1 Original line number Diff line number Diff line Loading @@ -602,7 +602,7 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub { void onTaskVanished(ITaskOrganizer organizer, Task task) { final TaskOrganizerState state = mTaskOrganizerStates.get(organizer.asBinder()); if (state != null && state.removeTask(task, false /* removeFromSystem */)) { if (state != null && state.removeTask(task, task.mRemoveWithTaskOrganizer)) { onTaskVanishedInternal(organizer, task); } } Loading
services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java +36 −0 Original line number Diff line number Diff line Loading @@ -246,6 +246,42 @@ public class WindowOrganizerTests extends WindowTestsBase { assertFalse(rootTask.isOrganized()); } @Test public void testRemoveWithOrganizerRemovesTask() throws RemoteException { final ITaskOrganizer organizer = registerMockOrganizer(); final Task rootTask = createRootTask(); final Task task = createTask(rootTask); rootTask.mRemoveWithTaskOrganizer = true; mWm.mAtmService.mTaskOrganizerController.dispatchPendingEvents(); verify(organizer).onTaskAppeared(any(RunningTaskInfo.class), any(SurfaceControl.class)); assertTrue(rootTask.isOrganized()); spyOn(mWm.mAtmService); rootTask.setTaskOrganizer(null); mWm.mAtmService.mTaskOrganizerController.dispatchPendingEvents(); verify(mWm.mAtmService).removeTask(eq(rootTask.mTaskId)); } @Test public void testNoRemoveWithOrganizerNoRemoveTask() throws RemoteException { final ITaskOrganizer organizer = registerMockOrganizer(); final Task rootTask = createRootTask(); final Task task = createTask(rootTask); rootTask.mRemoveWithTaskOrganizer = false; mWm.mAtmService.mTaskOrganizerController.dispatchPendingEvents(); verify(organizer).onTaskAppeared(any(RunningTaskInfo.class), any(SurfaceControl.class)); assertTrue(rootTask.isOrganized()); spyOn(mWm.mAtmService); rootTask.setTaskOrganizer(null); mWm.mAtmService.mTaskOrganizerController.dispatchPendingEvents(); verify(mWm.mAtmService, never()).removeTask(eq(rootTask.mTaskId)); } @Test public void testUnregisterOrganizer() throws RemoteException { final ITaskOrganizer organizer = registerMockOrganizer(); Loading