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

Commit 494706d9 authored by Wei Sheng Shih's avatar Wei Sheng Shih Committed by Automerger Merge Worker
Browse files

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

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16561482

Change-Id: If8a3b2bddc7583da65673258ae2fe1c64ab840a2
parents 45253200 0c645014
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -4177,15 +4177,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));
            }
        });
    }