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

Commit 3eb4d642 authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Fixing missing reportDrawFinish method in windowCallbacksCompat

Test: Verified on launcher that there is no ANR
Bug: 77695434
Change-Id: I1c382ea24fee15835637ed9d4055161a99ff3625
parent 98831af7
Loading
Loading
Loading
Loading
+19 −5
Original line number Diff line number Diff line
@@ -60,6 +60,12 @@ public class WindowCallbacksCompat {
        }
    };

    private final View mView;

    public WindowCallbacksCompat(View view) {
        mView = view;
    }

    public void onWindowSizeIsChanging(Rect newBounds, boolean fullscreen, Rect systemInsets,
            Rect stableInsets) { }

@@ -72,12 +78,20 @@ public class WindowCallbacksCompat {
        return false;
    }

    public void onRequestDraw(boolean reportNextDraw) { }
    public void onRequestDraw(boolean reportNextDraw) {
        if (reportNextDraw) {
            reportDrawFinish();
        }
    }

    public void onPostDraw(Canvas canvas) { }

    public final boolean addToView(View view) {
        ViewRootImpl root = view.getViewRootImpl();
    public void reportDrawFinish() {
        mView.getViewRootImpl().reportDrawFinish();
    }

    public boolean attach() {
        ViewRootImpl root = mView.getViewRootImpl();
        if (root != null) {
            root.addWindowCallbacks(mWindowCallbacks);
            root.requestInvalidateRootRenderNode();
@@ -86,8 +100,8 @@ public class WindowCallbacksCompat {
        return false;
    }

    public final void removeFromView(View view) {
        ViewRootImpl root = view.getViewRootImpl();
    public void detach() {
        ViewRootImpl root = mView.getViewRootImpl();
        if (root != null) {
            root.removeWindowCallbacks(mWindowCallbacks);
        }