Merge "When calling removeTask pass mRemoveWithTaskOrganizer" into tm-dev

This commit is contained in:
Mady Mellor
2022-04-08 00:02:26 +00:00
committed by Android (Google) Code Review
2 changed files with 37 additions and 1 deletions

View File

@@ -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);
}
}

View File

@@ -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();