From 703eba7351a365da504433786d6b605e4b174cd0 Mon Sep 17 00:00:00 2001 From: Riddle Hsu Date: Thu, 17 Nov 2022 23:40:09 +0800 Subject: [PATCH] Remove unnecessary wallpaper adjustment on transition Since WallpaperController won't change wallpaper target if the closing target is in transition, the adjustWallpaperWindows won't change any state when transition is ready but spend the time to traverse. The entry points from AR#setVisibility->requestUpdateWallpaperIfNeeded and transition finish->commitVisibility->postApplyAnimation ->FINISH_LAYOUT_REDO_WALLPAPER are already enough to update. Bug: 260059642 Bug: 258880446 Test: WallpaperControllerTests Change-Id: I6b48099c455c2987c74b31b9d6d7d06d484a7c56 (cherry picked from commit 46332a8e65d57f4ee125125524e6f33bbd2472c7) --- services/core/java/com/android/server/wm/Transition.java | 7 ------- .../com/android/server/wm/WallpaperControllerTests.java | 9 --------- 2 files changed, 16 deletions(-) diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index b6e52aaff035b..f737b35188beb 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -918,13 +918,6 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe mOverrideOptions = null; return; } - // Ensure that wallpaper visibility is updated with the latest wallpaper target. - for (int i = mParticipants.size() - 1; i >= 0; --i) { - final WindowContainer wc = mParticipants.valueAt(i); - if (isWallpaper(wc) && wc.getDisplayContent() != null) { - wc.getDisplayContent().mWallpaperController.adjustWallpaperWindows(); - } - } mState = STATE_PLAYING; mStartTransaction = transaction; diff --git a/services/tests/wmtests/src/com/android/server/wm/WallpaperControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/WallpaperControllerTests.java index 63335086859d0..9090c55502484 100644 --- a/services/tests/wmtests/src/com/android/server/wm/WallpaperControllerTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/WallpaperControllerTests.java @@ -372,15 +372,6 @@ public class WallpaperControllerTests extends WindowTestsBase { dc.mTransitionController.finishTransition(transit); assertFalse(wallpaperWindow.isVisible()); assertFalse(token.isVisible()); - - // Assume wallpaper was visible. When transaction is ready without wallpaper target, - // wallpaper should be requested to be invisible. - token.setVisibility(true); - transit = dc.mTransitionController.createTransition(TRANSIT_CLOSE); - dc.mTransitionController.collect(token); - transit.onTransactionReady(transit.getSyncId(), t); - assertFalse(token.isVisibleRequested()); - assertTrue(token.isVisible()); } private static void prepareSmallerSecondDisplay(DisplayContent dc, int width, int height) {