From e4ec07516eb1b824e25d57088963984d2175e5d7 Mon Sep 17 00:00:00 2001 From: Tony Huang Date: Fri, 14 Apr 2023 08:52:46 +0000 Subject: [PATCH] Make sure to clear outdated screenshot of splitting tasks Make sure to clear the screenshot of splitting tasks if it's taking the new one or being dismissed from split. Bug: 272420717 Bug: 278134600 Test: pass existing tests Change-Id: Ia159deccc8f0024143200e4dd44fadf67974a198 --- .../android/wm/shell/common/split/SplitDecorManager.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitDecorManager.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitDecorManager.java index bdf0ac2ed30cf..4c2e0dafe698b 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitDecorManager.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitDecorManager.java @@ -164,6 +164,10 @@ public class SplitDecorManager extends WindowlessWindowManager { t.remove(mGapBackgroundLeash); mGapBackgroundLeash = null; } + if (mScreenshot != null) { + t.remove(mScreenshot); + mScreenshot = null; + } mHostLeash = null; mIcon = null; mResizingIconView = null; @@ -323,6 +327,8 @@ public class SplitDecorManager extends WindowlessWindowManager { if (!mShown && mIsResizing && !mOldBounds.equals(mResizingBounds)) { if (mScreenshotAnimator != null && mScreenshotAnimator.isRunning()) { mScreenshotAnimator.cancel(); + } else if (mScreenshot != null) { + t.remove(mScreenshot); } mTempRect.set(mOldBounds); @@ -339,6 +345,8 @@ public class SplitDecorManager extends WindowlessWindowManager { if (!mShown && mIsResizing && !mOldBounds.equals(mResizingBounds)) { if (mScreenshotAnimator != null && mScreenshotAnimator.isRunning()) { mScreenshotAnimator.cancel(); + } else if (mScreenshot != null) { + t.remove(mScreenshot); } mScreenshot = screenshot;