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

Commit 0c645014 authored by Wei Sheng Shih's avatar Wei Sheng Shih Committed by Android (Google) Code Review
Browse files

Merge "Fix transfer splash screen view been called twice from onDraw" into sc-v2-dev

parents eda40724 4ee97aa4
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -4178,15 +4178,20 @@ public final class ActivityThread extends ClientTransactionHandler
        view.requestLayout();

        view.getViewTreeObserver().addOnDrawListener(new ViewTreeObserver.OnDrawListener() {
            private boolean mHandled = false;
            @Override
            public void onDraw() {
                if (mHandled) {
                    return;
                }
                mHandled = true;
                // Transfer the splash screen view from shell to client.
                // Call syncTransferSplashscreenViewTransaction at the first onDraw so we can ensure
                // the client view is ready to show and we can use applyTransactionOnDraw to make
                // all transitions happen at the same frame.
                syncTransferSplashscreenViewTransaction(
                        view, r.token, decorView, startingWindowLeash);
                view.postOnAnimation(() -> view.getViewTreeObserver().removeOnDrawListener(this));
                view.post(() -> view.getViewTreeObserver().removeOnDrawListener(this));
            }
        });
    }