Add wallpaper to sync set during collection

Prevent wallpaper flickers caused by early changes in
visibility caused by operations not controlled by the transition

Fix: 283465374
Test: Manual, unlock device with fingerprint multiple times
Change-Id: I1e1f26db1889d7e9feb9a17b4be5fbcf5f3b0419
This commit is contained in:
Marzia Favaro
2023-06-29 13:31:15 +00:00
parent c7753c320f
commit 8966a1337a
2 changed files with 3 additions and 7 deletions

View File

@@ -613,12 +613,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
}
}
if (mParticipants.contains(wc)) return;
// Wallpaper is like in a static drawn state unless display may have changes, so exclude
// the case to reduce transition latency waiting for the unchanged wallpaper to redraw.
final boolean needSync = (!isWallpaper(wc) || mParticipants.contains(wc.mDisplayContent))
// Transient-hide may be hidden later, so no need to request redraw.
&& !isInTransientHide(wc);
if (needSync) {
// Transient-hide may be hidden later, so no need to request redraw.
if (!isInTransientHide(wc)) {
mSyncEngine.addToSyncSet(mSyncId, wc);
}
ChangeInfo info = mChanges.get(wc);

View File

@@ -5665,7 +5665,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
}
if (mIsWallpaper) {
// TODO(b/233286785): Add sync support to wallpaper.
return false;
return true;
}
// In the WindowContainer implementation we immediately mark ready
// since a generic WindowContainer only needs to wait for its