From e1b53c90c7c7f0a1cdc33713dcaeb49958ae3712 Mon Sep 17 00:00:00 2001 From: Charles Chen Date: Fri, 29 Oct 2021 22:01:16 +0800 Subject: [PATCH] Only allow resizeable Activity to create TaskFragment TaskFragment is usually occupied a portion of the owner Task. Using a non-resizable Activity limits the ability to resize Activity within TaskFragment. This CL prohibits non-resizeable Activity to create TaskFragment. Test: TaskFragmentOrganizerPolicyTests Bug: 199689901 Change-Id: I10ebfc90de1b571466b048400696061df1bc0206 --- .../com/android/server/wm/WindowOrganizerController.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/services/core/java/com/android/server/wm/WindowOrganizerController.java b/services/core/java/com/android/server/wm/WindowOrganizerController.java index 6e706e9df0030..f25d065f979b1 100644 --- a/services/core/java/com/android/server/wm/WindowOrganizerController.java +++ b/services/core/java/com/android/server/wm/WindowOrganizerController.java @@ -1177,6 +1177,12 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub sendTaskFragmentOperationFailure(organizer, errorCallbackToken, exception); return; } + if (!ownerActivity.isResizeable()) { + final IllegalArgumentException exception = new IllegalArgumentException("Not allowed" + + " to operate with non-resizable owner Activity"); + sendTaskFragmentOperationFailure(organizer, errorCallbackToken, exception); + return; + } // The ownerActivity has to belong to the same app as the root Activity of the target Task. final ActivityRecord rootActivity = ownerActivity.getTask().getRootActivity(); if (rootActivity.getUid() != ownerActivity.getUid()) {