Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e32d71e6 authored by Charles Chen's avatar Charles Chen Committed by Android Build Coastguard Worker
Browse files

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
(cherry picked from commit c2313021)
Merged-In: Ic58edee8e239e94b9986f06b499281487a9a973d
parent 0d3ff311
Loading
Loading
Loading
Loading
+3 −16
Original line number Diff line number Diff line
@@ -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);
        }