From c9b84b7d27e6366845faac997b35a02e8c12c23b Mon Sep 17 00:00:00 2001 From: Hongwei Wang Date: Thu, 11 May 2023 17:02:41 -0700 Subject: [PATCH] Skip record snapshot for changes from PiP task The transition framework would try to record snapshot before any transition animation. This in turn causes a bad snapshot being taken when we leave/exit PiP. Ignore that code path since we do not record snapshot for PiP task anyway. Video: http://recall/-/aaaaaabFQoRHlzixHdtY/hkm5SwtKZ2i6kyFMOyeJxf Bug: 281783504 Test: manually, see video Change-Id: Iea19a4bb63d03cd18c95c39f68a469d83ac4d018 --- services/core/java/com/android/server/wm/Transition.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index 1e2d26eabd64e..1f99d694d01ab 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -1470,6 +1470,9 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { final ActivityRecord ar = mParticipants.valueAt(i).asActivityRecord(); if (ar == null || ar.getTask() == null || ar.getTask().isVisibleRequested()) continue; + final ChangeInfo change = mChanges.get(ar); + // Intentionally skip record snapshot for changes originated from PiP. + if (change != null && change.mWindowingMode == WINDOWING_MODE_PINNED) continue; mController.mSnapshotController.mTaskSnapshotController.recordSnapshot( ar.getTask(), false /* allowSnapshotHome */); }