From 9e163f832092f92a25c81fba1d923c39b2434bda Mon Sep 17 00:00:00 2001 From: Andrii Kulian Date: Fri, 16 Jul 2021 18:15:06 -0700 Subject: [PATCH] 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 --- .../com/android/server/wm/WindowOrganizerController.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/WindowOrganizerController.java b/services/core/java/com/android/server/wm/WindowOrganizerController.java index 45b5875864819..0ea68f937415a 100644 --- a/services/core/java/com/android/server/wm/WindowOrganizerController.java +++ b/services/core/java/com/android/server/wm/WindowOrganizerController.java @@ -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); }