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

Commit bc7a82e6 authored by Siarhei Vishniakou's avatar Siarhei Vishniakou Committed by Automerger Merge Worker
Browse files

Merge "Revert "Check mInputEventReceiver before sending timeline"" into sc-dev am: f3779061

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

Change-Id: I140690f397572b8a956d432ac9d3d2c44714a4c1
parents a197302f f3779061
Loading
Loading
Loading
Loading
+9 −13
Original line number Diff line number Diff line
@@ -1200,7 +1200,8 @@ public final class ViewRootImpl implements ViewParent,
                            Looper.myLooper());

                    if (mAttachInfo.mThreadedRenderer != null) {
                        InputMetricsListener listener = new InputMetricsListener();
                        InputMetricsListener listener =
                                new InputMetricsListener(mInputEventReceiver);
                        mHardwareRendererObserver = new HardwareRendererObserver(
                                listener, listener.data, mHandler, true /*waitForPresentTime*/);
                        mAttachInfo.mThreadedRenderer.addObserver(mHardwareRendererObserver);
@@ -1396,9 +1397,6 @@ public final class ViewRootImpl implements ViewParent,
                if (mAttachInfo.mThreadedRenderer != null) {
                    mAttachInfo.mHardwareAccelerated =
                            mAttachInfo.mHardwareAccelerationRequested = true;
                    if (mHardwareRendererObserver != null) {
                        mAttachInfo.mThreadedRenderer.addObserver(mHardwareRendererObserver);
                    }
                }
            }
        }
@@ -8083,9 +8081,6 @@ public final class ViewRootImpl implements ViewParent,
        ThreadedRenderer hardwareRenderer = mAttachInfo.mThreadedRenderer;

        if (hardwareRenderer != null) {
            if (mHardwareRendererObserver != null) {
                hardwareRenderer.removeObserver(mHardwareRendererObserver);
            }
            if (mView != null) {
                hardwareRenderer.destroyHardwareResources(mView);
            }
@@ -8587,12 +8582,18 @@ public final class ViewRootImpl implements ViewParent,
            super.dispose();
        }
    }
    private WindowInputEventReceiver mInputEventReceiver;
    WindowInputEventReceiver mInputEventReceiver;

    final class InputMetricsListener
            implements HardwareRendererObserver.OnFrameMetricsAvailableListener {
        public long[] data = new long[FrameMetrics.Index.FRAME_STATS_COUNT];

        private InputEventReceiver mReceiver;

        InputMetricsListener(InputEventReceiver receiver) {
            mReceiver = receiver;
        }

        @Override
        public void onFrameMetricsAvailable(int dropCountSinceLastInvocation) {
            final int inputEventId = (int) data[FrameMetrics.Index.INPUT_EVENT_ID];
@@ -8605,11 +8606,6 @@ public final class ViewRootImpl implements ViewParent,
                // available, we cannot compute end-to-end input latency metrics.
                return;
            }
            final long gpuCompletedTime = data[FrameMetrics.Index.GPU_COMPLETED];
            if (mInputEventReceiver == null) {
                return;
            }
            mInputEventReceiver.reportTimeline(inputEventId, gpuCompletedTime, presentTime);
        }
    }
    HardwareRendererObserver mHardwareRendererObserver;