Merge "Do not make a getThreadTimeMicro() call when it is not needed. This was accidentally changed with https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15080830" into sc-dev am: 6c852aeabc am: b77fb08506

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15346904

Change-Id: I6552265f9258ea772b1774d00bd884cc2d530202
diff --git a/core/java/com/android/internal/os/BinderCallsStats.java b/core/java/com/android/internal/os/BinderCallsStats.java
index 6ce7cea..be91aac 100644
--- a/core/java/com/android/internal/os/BinderCallsStats.java
+++ b/core/java/com/android/internal/os/BinderCallsStats.java
@@ -220,8 +220,9 @@
     public CallSession callStarted(Binder binder, int code, int workSourceUid) {
         noteNativeThreadId();
 
+        boolean collectCpu = canCollect();
         // We always want to collect data for latency if it's enabled, regardless of device state.
-        if (!mCollectLatencyData && !canCollect()) {
+        if (!mCollectLatencyData && !collectCpu) {
             return null;
         }
 
@@ -233,7 +234,7 @@
         s.timeStarted = -1;
         s.recordedCall = shouldRecordDetailedData();
 
-        if (mRecordingAllTransactionsForUid || s.recordedCall) {
+        if (collectCpu && (mRecordingAllTransactionsForUid || s.recordedCall)) {
             s.cpuTimeStarted = getThreadTimeMicro();
             s.timeStarted = getElapsedRealtimeMicro();
         } else if (mCollectLatencyData) {