Merge "Reduce unnecessary redraw of wallpaper with shell transition" into tm-qpr-dev

This commit is contained in:
TreeHugger Robot
2022-05-20 12:38:00 +00:00
committed by Android (Google) Code Review
2 changed files with 8 additions and 2 deletions

View File

@@ -6086,7 +6086,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
rootTask.ensureActivitiesVisible(starting, configChanges, preserveWindows, rootTask.ensureActivitiesVisible(starting, configChanges, preserveWindows,
notifyClients); notifyClients);
}); });
if (mTransitionController.isCollecting() if (mTransitionController.useShellTransitionsRotation()
&& mTransitionController.isCollecting()
&& mWallpaperController.getWallpaperTarget() != null) { && mWallpaperController.getWallpaperTarget() != null) {
// Also update wallpapers so that their requestedVisibility immediately reflects // Also update wallpapers so that their requestedVisibility immediately reflects
// the changes to activity visibility. // the changes to activity visibility.

View File

@@ -300,7 +300,12 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe
} }
} }
if (mParticipants.contains(wc)) return; 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 needSyncDraw = !isWallpaper(wc) || mParticipants.contains(wc.mDisplayContent);
if (needSyncDraw) {
mSyncEngine.addToSyncSet(mSyncId, wc); mSyncEngine.addToSyncSet(mSyncId, wc);
}
ChangeInfo info = mChanges.get(wc); ChangeInfo info = mChanges.get(wc);
if (info == null) { if (info == null) {
info = new ChangeInfo(wc); info = new ChangeInfo(wc);