Set display change ready only if no one sets
Otherwise it will break some cases explicitly set ready to false,
such as if there is activity switch.
Bug: 268506437
Test: atest NexusLauncherTests:TaplTestsLauncher3
Test: Simulate the sequence: setRequestedOrientation()
-> finishActivity() -> startTransition().
The task surface should be visible.
Change-Id: Ie76092420a9285401818fd96fe36971e2890cb3d
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user