From b42ed1c2d4098b2e4b4834bb9b372174b70fc822 Mon Sep 17 00:00:00 2001 From: Shawn Lin Date: Sun, 26 Feb 2023 08:50:50 +0000 Subject: [PATCH] Update Home task bounds when display size changed in kids mode Otherwise the Home task would show incorrect size on different orientation. Bug: 266507175 Test: Enter Kids mode launcher and rotate device Change-Id: Icf258a1bc7b3399f56983ea2670316824bfafe68 --- .../android/wm/shell/kidsmode/KidsModeTaskOrganizer.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/kidsmode/KidsModeTaskOrganizer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/kidsmode/KidsModeTaskOrganizer.java index ac13f96585b61..f9e0ca53b32d2 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/kidsmode/KidsModeTaskOrganizer.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/kidsmode/KidsModeTaskOrganizer.java @@ -247,6 +247,11 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer { mLaunchRootTask = taskInfo; } + if (mHomeTask != null && mHomeTask.taskId == taskInfo.taskId + && !taskInfo.equals(mHomeTask)) { + mHomeTask = taskInfo; + } + super.onTaskInfoChanged(taskInfo); } @@ -364,6 +369,7 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer { final WindowContainerTransaction wct = getWindowContainerTransaction(); final Rect taskBounds = calculateBounds(); wct.setBounds(mLaunchRootTask.token, taskBounds); + wct.setBounds(mHomeTask.token, new Rect(0, 0, mDisplayWidth, mDisplayHeight)); mSyncQueue.queue(wct); final SurfaceControl finalLeash = mLaunchRootLeash; mSyncQueue.runInSync(t -> {