Fix TaskFragmentTrustedModeTest

The condition was inverted, and led to #reparentChildren didn't work.
This CL also removes some minimum dimension checks because it is covered in TaskFragment#isAllowedToEmbedActivity(ActivityRecord).


Test: atest TaskFragmentTrustedModeTest TaskFragmentOrganizerTest
Test: atest TaskFragmentOrganizerPolicyTest SplitActivityLifecycleTest
Fixes: 238054859
Bug: 233578672

Merged-In: Ic58edee8e239e94b9986f06b499281487a9a973d
Change-Id: Ic58edee8e239e94b9986f06b499281487a9a973d
This commit is contained in:
Charles Chen
2022-07-06 14:20:31 +08:00
parent 9b6a9578a1
commit c231302191

View File

@@ -759,7 +759,7 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
}
if (parent.isAllowedToEmbedActivity(activity) != EMBEDDING_ALLOWED) {
final Throwable exception = new SecurityException(
"The task fragment is not trusted to embed the given activity.");
"The task fragment is not allowed to embed the given activity.");
sendTaskFragmentOperationFailure(organizer, errorCallbackToken, exception);
break;
}
@@ -769,11 +769,6 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
sendTaskFragmentOperationFailure(organizer, errorCallbackToken, exception);
break;
}
if (parent.smallerThanMinDimension(activity)) {
sendMinimumDimensionViolation(parent, activity.getMinDimensions(),
errorCallbackToken, "reparentActivityToTask");
break;
}
activity.reparent(parent, POSITION_TOP);
effects |= TRANSACT_EFFECTS_LIFECYCLE;
@@ -1583,10 +1578,10 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
// We are reparenting activities to a new embedded TaskFragment, this operation is only
// allowed if the new parent is trusted by all reparent activities.
final boolean isEmbeddingDisallowed = oldParent.forAllActivities(activity ->
newParentTF.isAllowedToEmbedActivity(activity) == EMBEDDING_ALLOWED);
newParentTF.isAllowedToEmbedActivity(activity) != EMBEDDING_ALLOWED);
if (isEmbeddingDisallowed) {
final Throwable exception = new SecurityException(
"The new parent is not trusted to embed the activities.");
"The new parent is not allowed to embed the activities.");
sendTaskFragmentOperationFailure(organizer, errorCallbackToken, exception);
return;
}
@@ -1603,14 +1598,6 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
sendTaskFragmentOperationFailure(organizer, errorCallbackToken, exception);
return;
}
final Point minDimensions = oldParent.calculateMinDimension();
final Rect newParentBounds = newParentTF.getBounds();
if (newParentBounds.width() < minDimensions.x
|| newParentBounds.height() < minDimensions.y) {
sendMinimumDimensionViolation(newParentTF, minDimensions, errorCallbackToken,
"reparentTaskFragment");
return;
}
while (oldParent.hasChild()) {
oldParent.getChildAt(0).reparent(newParentTF, POSITION_TOP);
}