diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityRecord.java | 9 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 009794265179..91d4056a0e7b 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -2596,6 +2596,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A return parent != null ? parent.getOrganizedTaskFragment() : null; } + boolean isEmbedded() { + final TaskFragment parent = getTaskFragment(); + return parent != null && parent.isEmbedded(); + } + @Override @Nullable TaskDisplayArea getDisplayArea() { @@ -2687,7 +2692,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A boolean isResizeable() { return mAtmService.mForceResizableActivities || ActivityInfo.isResizeableMode(info.resizeMode) - || info.supportsPictureInPicture(); + || info.supportsPictureInPicture() + // If the activity can be embedded, it should inherit the bounds of task fragment. + || isEmbedded(); } /** @return whether this activity is non-resizeable but is forced to be resizable. */ diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java index 9ad479a261ef..9a14e7d94e31 100644 --- a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java @@ -2724,9 +2724,11 @@ public class ActivityRecordTests extends WindowTestsBase { mAtm, null /* fragmentToken */, false /* createdByOrganizer */); fragmentSetup.accept(taskFragment2, new Rect(width / 2, 0, width, height)); task.addChild(taskFragment2, POSITION_TOP); - final ActivityRecord activity2 = new ActivityBuilder(mAtm).build(); + final ActivityRecord activity2 = new ActivityBuilder(mAtm) + .setResizeMode(ActivityInfo.RESIZE_MODE_UNRESIZEABLE).build(); activity2.mVisibleRequested = true; taskFragment2.addChild(activity2); + assertTrue(activity2.isResizeable()); activity1.reparent(taskFragment1, POSITION_TOP); assertEquals(task, activity1.mStartingData.mAssociatedTask); |