Loading services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +6 −0 Original line number Diff line number Diff line Loading @@ -841,6 +841,12 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { logIfTransactionTooLarge(r.intent, r.getSavedState()); if (r.isEmbedded()) { // Sending TaskFragmentInfo to client to ensure the info is updated before // the activity creation. mService.mTaskFragmentOrganizerController.dispatchPendingInfoChangedEvent( r.getOrganizedTaskFragment()); } // Create activity launch transaction. final ClientTransaction clientTransaction = ClientTransaction.obtain( Loading services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java +39 −22 Original line number Diff line number Diff line Loading @@ -505,11 +505,30 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr } for (int i = 0, n = mPendingTaskFragmentEvents.size(); i < n; i++) { PendingTaskFragmentEvent event = mPendingTaskFragmentEvents.get(i); dispatchEvent(event); } mPendingTaskFragmentEvents.clear(); } void dispatchPendingInfoChangedEvent(TaskFragment taskFragment) { PendingTaskFragmentEvent event = getPendingTaskFragmentEvent(taskFragment, PendingTaskFragmentEvent.EVENT_INFO_CHANGED); if (event == null) { return; } dispatchEvent(event); mPendingTaskFragmentEvents.remove(event); } private void dispatchEvent(PendingTaskFragmentEvent event) { final ITaskFragmentOrganizer taskFragmentOrg = event.mTaskFragmentOrg; final TaskFragment taskFragment = event.mTaskFragment; final TaskFragmentOrganizerState state = mTaskFragmentOrganizerState.get(taskFragmentOrg.asBinder()); if (state == null) continue; if (state == null) { return; } switch (event.mEventType) { case PendingTaskFragmentEvent.EVENT_APPEARED: state.onTaskFragmentAppeared(taskFragmentOrg, taskFragment); Loading @@ -528,6 +547,4 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr event.mException); } } mPendingTaskFragmentEvents.clear(); } } Loading
services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +6 −0 Original line number Diff line number Diff line Loading @@ -841,6 +841,12 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { logIfTransactionTooLarge(r.intent, r.getSavedState()); if (r.isEmbedded()) { // Sending TaskFragmentInfo to client to ensure the info is updated before // the activity creation. mService.mTaskFragmentOrganizerController.dispatchPendingInfoChangedEvent( r.getOrganizedTaskFragment()); } // Create activity launch transaction. final ClientTransaction clientTransaction = ClientTransaction.obtain( Loading
services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java +39 −22 Original line number Diff line number Diff line Loading @@ -505,11 +505,30 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr } for (int i = 0, n = mPendingTaskFragmentEvents.size(); i < n; i++) { PendingTaskFragmentEvent event = mPendingTaskFragmentEvents.get(i); dispatchEvent(event); } mPendingTaskFragmentEvents.clear(); } void dispatchPendingInfoChangedEvent(TaskFragment taskFragment) { PendingTaskFragmentEvent event = getPendingTaskFragmentEvent(taskFragment, PendingTaskFragmentEvent.EVENT_INFO_CHANGED); if (event == null) { return; } dispatchEvent(event); mPendingTaskFragmentEvents.remove(event); } private void dispatchEvent(PendingTaskFragmentEvent event) { final ITaskFragmentOrganizer taskFragmentOrg = event.mTaskFragmentOrg; final TaskFragment taskFragment = event.mTaskFragment; final TaskFragmentOrganizerState state = mTaskFragmentOrganizerState.get(taskFragmentOrg.asBinder()); if (state == null) continue; if (state == null) { return; } switch (event.mEventType) { case PendingTaskFragmentEvent.EVENT_APPEARED: state.onTaskFragmentAppeared(taskFragmentOrg, taskFragment); Loading @@ -528,6 +547,4 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr event.mException); } } mPendingTaskFragmentEvents.clear(); } }