diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index d23b9540f451b..c314c387605c1 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -2019,7 +2019,13 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { final DisplayContent dc = wc.asDisplayContent(); if (dc == null || !mChanges.get(dc).hasChanged()) continue; dc.sendNewConfiguration(); - setReady(dc, true); + // Set to ready if no other change controls the ready state. But if there is, such as + // if an activity is pausing, it will call setReady(ar, false) and wait for the next + // resumed activity. Then do not set to ready because the transition only contains + // partial participants. Otherwise the transition may only handle HIDE and miss OPEN. + if (!mReadyTracker.mUsed) { + setReady(dc, true); + } } }