Merge changes from topic "trace-columbus-b253489562" into tm-qpr-dev

* changes:
  Guard against possible exception when tracing
  TraceUtils updates, new helper for runnables
This commit is contained in:
Peter Kalauskas
2022-12-02 16:52:42 +00:00
committed by Android (Google) Code Review
3 changed files with 28 additions and 11 deletions

View File

@@ -458,7 +458,9 @@ public class MediaControlPanel {
if (mMediaViewHolder == null) { if (mMediaViewHolder == null) {
return; return;
} }
Trace.beginSection("MediaControlPanel#bindPlayer<" + key + ">"); if (Trace.isEnabled()) {
Trace.traceBegin(Trace.TRACE_TAG_APP, "MediaControlPanel#bindPlayer<" + key + ">");
}
mKey = key; mKey = key;
mMediaData = data; mMediaData = data;
MediaSession.Token token = data.getToken(); MediaSession.Token token = data.getToken();
@@ -1179,8 +1181,10 @@ public class MediaControlPanel {
return; return;
} }
Trace.beginSection( if (Trace.isEnabled()) {
"MediaControlPanel#bindRecommendation<" + data.getPackageName() + ">"); Trace.traceBegin(Trace.TRACE_TAG_APP,
"MediaControlPanel#bindRecommendation<" + data.getPackageName() + ">");
}
mRecommendationData = data; mRecommendationData = data;
mSmartspaceId = SmallHash.hash(data.getTargetId()); mSmartspaceId = SmallHash.hash(data.getTargetId());

View File

@@ -51,7 +51,9 @@ public abstract class Pluggable<This> {
*/ */
public final void invalidateList(@Nullable String reason) { public final void invalidateList(@Nullable String reason) {
if (mListener != null) { if (mListener != null) {
Trace.beginSection("Pluggable<" + mName + ">.invalidateList"); if (Trace.isEnabled()) {
Trace.traceBegin(Trace.TRACE_TAG_APP, "Pluggable<" + mName + ">.invalidateList");
}
mListener.onPluggableInvalidated((This) this, reason); mListener.onPluggableInvalidated((This) this, reason);
Trace.endSection(); Trace.endSection();
} }

View File

@@ -22,11 +22,22 @@ import android.os.Trace
* Run a block within a [Trace] section. * Run a block within a [Trace] section.
* Calls [Trace.beginSection] before and [Trace.endSection] after the passed block. * Calls [Trace.beginSection] before and [Trace.endSection] after the passed block.
*/ */
inline fun <T> traceSection(tag: String, block: () -> T): T { inline fun <T> traceSection(tag: String, block: () -> T): T =
Trace.beginSection(tag) if (Trace.isTagEnabled(Trace.TRACE_TAG_APP)) {
try { Trace.traceBegin(Trace.TRACE_TAG_APP, tag)
return block() try {
} finally { block()
Trace.endSection() } 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() } }
}
} }
} }