From fa10d0a3da937ecaebdba7382662a2f4c1e82622 Mon Sep 17 00:00:00 2001 From: Hongwei Wang Date: Fri, 8 Jan 2021 16:03:17 -0800 Subject: [PATCH] Skip sending TaskInfo change while not in pip When recents animation finishes, it eventually triggers ActivityRecord.setPictureInPictureParams if the Activity is pip-able. And in the autoEnterPip case, this happens before the windowing mode being flipped to PINNED and therefore callbacks the FullscreenTaskListener and resets the leash to (0, 0). Since it does not make sense dispatching TaskInfo change while not in pinned mode, we simply skip it here. Video: http://rcll/aaaaaabFQoRHlzixHdtY/eFlluOg7dAqjzsS6G8UYoX Bug: 177073398 Test: see video Change-Id: I782f94a1b5fe19973f21e1694b8d688575f1b7e8 --- services/core/java/com/android/server/wm/Task.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index a0e6b423f299e..b52a6c935a895 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -5098,7 +5098,9 @@ class Task extends WindowContainer { } void onPictureInPictureParamsChanged() { - dispatchTaskInfoChangedIfNeeded(true /* force */); + if (inPinnedWindowingMode()) { + dispatchTaskInfoChangedIfNeeded(true /* force */); + } } /**