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

Commit c37e3ade 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
(cherry picked from commit 3f793d7d)
Merged-In: Ie5acefe043575b198ce1fbd1526cc82116649cb3
parent 614f8384
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -605,23 +605,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(), "end", 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(), "cancel", 0);
            BackgroundThread.getHandler().removeCallbacks(mTimeoutRunnable);
            mTimeoutRunnable = null;
        }