diff --git a/packages/SystemUI/src/com/android/systemui/util/TraceUtils.kt b/packages/SystemUI/src/com/android/systemui/util/TraceUtils.kt index 5b16ae999aa30..b311318fb111f 100644 --- a/packages/SystemUI/src/com/android/systemui/util/TraceUtils.kt +++ b/packages/SystemUI/src/com/android/systemui/util/TraceUtils.kt @@ -22,11 +22,22 @@ import android.os.Trace * Run a block within a [Trace] section. * Calls [Trace.beginSection] before and [Trace.endSection] after the passed block. */ -inline fun traceSection(tag: String, block: () -> T): T { - Trace.beginSection(tag) - try { - return block() - } finally { - Trace.endSection() +inline fun traceSection(tag: String, block: () -> T): T = + if (Trace.isTagEnabled(Trace.TRACE_TAG_APP)) { + Trace.traceBegin(Trace.TRACE_TAG_APP, tag) + try { + block() + } finally { + Trace.traceEnd(Trace.TRACE_TAG_APP) + } + } else { + block() + } + +class TraceUtils { + companion object { + inline fun traceRunnable(tag: String, crossinline block: () -> Unit): Runnable { + return Runnable { traceSection(tag) { block() } } + } } -} \ No newline at end of file +}