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

View File

@@ -51,7 +51,9 @@ public abstract class Pluggable<This> {
*/
public final void invalidateList(@Nullable String reason) {
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);
Trace.endSection();
}

View File

@@ -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 <T> traceSection(tag: String, block: () -> T): T {
Trace.beginSection(tag)
try {
return block()
} finally {
Trace.endSection()
inline fun <T> 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() } }
}
}
}
}