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

Commit 70211742 authored by Chong Zhang's avatar Chong Zhang
Browse files

Do not change surface properties when waiting for transition to ready

Window could become drawn before transition is ready, when transition
is waiting for the animation spec. If we show the surface too early,
one or more frame will be shown with wrong scale.

bug: 28296945
bug: 27742244
Change-Id: I34e84ed8a37ecdb71eb975351f1ee39d14dfba25
parent c39532df
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -1441,6 +1441,18 @@ class WindowStateAnimator {
            return;
        }

        // Do not change surface properties of opening apps if we are waiting for the
        // transition to be ready. transitionGoodToGo could be not ready even after all
        // opening apps are drawn. It's only waiting on isFetchingAppTransitionsSpecs()
        // to get the animation spec. (For example, go into Recents and immediately open
        // the same app again before the app's surface is destroyed or saved, the surface
        // is always ready in the whole process.) If we go ahead here, the opening app
        // will be shown with the full size before the correct animation spec arrives.
        if (mService.mAppTransition.isReady() && isDummyAnimation() &&
                mService.mOpeningApps.contains(w.mAppToken)) {
            return;
        }

        boolean displayed = false;

        computeShownFrameLocked();