Register task fragment organzer before sending events

Set task fragment organizer before performing operations on one,
so that no events are skipped.

Bug: 193932429
Test: Manual, using reference organizer implementation.
Change-Id: I916b8c0265689dfbd539894b88a97c53b4f8a52c
This commit is contained in:
Andrii Kulian
2021-07-16 18:15:06 -07:00
parent f7f941743d
commit 9e163f8320

View File

@@ -1094,11 +1094,13 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
}
final TaskFragment taskFragment = new TaskFragment(mService,
creationParams.getFragmentToken(), true /* createdByOrganizer */);
// Set task fragment organizer immediately, since it might have to be notified about further
// actions.
taskFragment.setTaskFragmentOrganizer(
creationParams.getOrganizer(), ownerActivity.getPid());
ownerActivity.getTask().addChild(taskFragment, POSITION_TOP);
taskFragment.setWindowingMode(creationParams.getWindowingMode());
taskFragment.setBounds(creationParams.getInitialBounds());
taskFragment.setTaskFragmentOrganizer(
creationParams.getOrganizer(), ownerActivity.getPid());
mLaunchTaskFragments.put(creationParams.getFragmentToken(), taskFragment);
}