Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb1a487f authored by Riddle Hsu's avatar Riddle Hsu Committed by Android (Google) Code Review
Browse files

Merge "Avoid creating wallpaper rotation leash if it is not in transition" into main

parents 1078f3c9 4b41d4b9
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -1766,7 +1766,19 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
        }

        for (int i = 0; i < mTargets.size(); ++i) {
            final DisplayArea da = mTargets.get(i).mContainer.asDisplayArea();
            final WindowContainer<?> wc = mTargets.get(i).mContainer;
            final WallpaperWindowToken wp = wc.asWallpaperToken();
            if (wp != null) {
                // If on a rotation leash, the wallpaper token surface needs to be shown explicitly
                // because shell only gets the leash and the wallpaper token surface is not allowed
                // to be changed by non-transition logic until the transition is finished.
                if (Flags.ensureWallpaperInTransitions() && wp.isVisibleRequested()
                        && wp.getFixedRotationLeash() != null) {
                    transaction.show(wp.mSurfaceControl);
                }
                continue;
            }
            final DisplayArea<?> da = wc.asDisplayArea();
            if (da == null) continue;
            if (da.isVisibleRequested()) {
                mController.mValidateDisplayVis.remove(da);
@@ -2168,14 +2180,6 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
                        && !wallpaperIsOwnTarget(wallpaper)) {
                    wallpaper.setVisibleRequested(false);
                }
                if (showWallpaper && Flags.ensureWallpaperInTransitions()
                        && wallpaper.isVisibleRequested()
                        && getLeashSurface(wallpaper, t) != wallpaper.getSurfaceControl()) {
                    // If on a rotation leash, we need to explicitly show the wallpaper surface
                    // because shell only gets the leash and we don't allow non-transition logic
                    // to touch the surfaces until the transition is over.
                    t.show(wallpaper.getSurfaceControl());
                }
            }
        }
    }