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

Commit 3f793d7d authored by Nicholas Ambur's avatar Nicholas Ambur
Browse files

add LatencyTracker tracing cancel / timeout events

Bug: 265850090
Test: manual invoke hotword trigger collecting trace and verify in
Perfetto UI that trace has cancel and timeout events

Change-Id: Ie5acefe043575b198ce1fbd1526cc82116649cb3
parent 65a2a1e7
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -611,23 +611,27 @@ public class LatencyTracker {

        void begin(@NonNull Runnable timeoutAction) {
            mStartRtc = SystemClock.elapsedRealtime();
            Trace.asyncTraceBegin(TRACE_TAG_APP, traceName(), 0);
            Trace.asyncTraceForTrackBegin(TRACE_TAG_APP, traceName(), traceName(), 0);

            // start counting timeout.
            mTimeoutRunnable = timeoutAction;
            mTimeoutRunnable = () -> {
                Trace.instantForTrack(TRACE_TAG_APP, traceName(), "timeout");
                timeoutAction.run();
            };
            BackgroundThread.getHandler()
                    .postDelayed(mTimeoutRunnable, TimeUnit.SECONDS.toMillis(15));
        }

        void end() {
            mEndRtc = SystemClock.elapsedRealtime();
            Trace.asyncTraceEnd(TRACE_TAG_APP, traceName(), 0);
            Trace.asyncTraceForTrackEnd(TRACE_TAG_APP, traceName(), 0);
            BackgroundThread.getHandler().removeCallbacks(mTimeoutRunnable);
            mTimeoutRunnable = null;
        }

        void cancel() {
            Trace.asyncTraceEnd(TRACE_TAG_APP, traceName(), 0);
            Trace.instantForTrack(TRACE_TAG_APP, traceName(), "cancel");
            Trace.asyncTraceForTrackEnd(TRACE_TAG_APP, traceName(), 0);
            BackgroundThread.getHandler().removeCallbacks(mTimeoutRunnable);
            mTimeoutRunnable = null;
        }