Merge "Do not add layout reason if there is no config effect" into tm-qpr-dev am: 5eb759d2c0

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18796087

Change-Id: I64c8244fdf8cb5fbde95c5ea1a9e658154d051b7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Riddle Hsu
2022-06-10 03:31:36 +00:00
committed by Automerger Merge Worker
3 changed files with 7 additions and 3 deletions

View File

@@ -470,6 +470,8 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr
.setException(exception)
.build();
mPendingTaskFragmentEvents.add(pendingEvent);
// Make sure the error event will be dispatched if there are no other changes.
mAtmService.mWindowManager.mWindowPlacerLocked.requestTraversal();
}
void onActivityReparentToTask(ActivityRecord activity) {

View File

@@ -525,7 +525,7 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
}
}
if ((effects & TRANSACT_EFFECTS_CLIENT_CONFIG) == 0) {
if ((effects & TRANSACT_EFFECTS_CLIENT_CONFIG) != 0) {
mService.addWindowLayoutReasons(LAYOUT_REASON_CONFIG_CHANGED);
}
} finally {

View File

@@ -922,13 +922,14 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
.build();
doReturn(true).when(mTaskFragment).isAllowedToEmbedActivity(activity);
mWindowOrganizerController.mLaunchTaskFragments.put(mFragmentToken, mTaskFragment);
clearInvocations(mAtm.mRootWindowContainer);
// Reparent activity to mTaskFragment, which is smaller than activity's
// minimum dimensions.
mTransaction.reparentActivityToTaskFragment(mFragmentToken, activity.token)
.setErrorCallbackToken(mErrorToken);
mWindowOrganizerController.applyTransaction(mTransaction);
// The pending event will be dispatched on the handler (from requestTraversal).
waitHandlerIdle(mWm.mAnimationHandler);
verify(mOrganizer).onTaskFragmentError(eq(mErrorToken), any(SecurityException.class));
}
@@ -958,7 +959,6 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
doReturn(true).when(mTaskFragment).isAllowedToEmbedActivity(activity);
mWindowOrganizerController.mLaunchTaskFragments.put(oldFragToken, oldTaskFrag);
mWindowOrganizerController.mLaunchTaskFragments.put(mFragmentToken, mTaskFragment);
clearInvocations(mAtm.mRootWindowContainer);
// Reparent oldTaskFrag's children to mTaskFragment, which is smaller than activity's
// minimum dimensions.
@@ -966,6 +966,8 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
mTaskFragment.mRemoteToken.toWindowContainerToken())
.setErrorCallbackToken(mErrorToken);
mWindowOrganizerController.applyTransaction(mTransaction);
// The pending event will be dispatched on the handler (from requestTraversal).
waitHandlerIdle(mWm.mAnimationHandler);
verify(mOrganizer).onTaskFragmentError(eq(mErrorToken), any(SecurityException.class));
}