Write to the log when start a ranging session.

Test: statsd_testdrive 488 (reference: go/westworld-create-atom#step-3-test-your-atom)
Bug: 236175866
Change-Id: I4d0a679a31140e2470f7863d3388d122aaae8860
(cherry picked from commit 2679259213da0477a0ea57a4dc280df54018fbc8)
Merged-In: I4d0a679a31140e2470f7863d3388d122aaae8860
diff --git a/service/java/com/android/server/uwb/UwbMetrics.java b/service/java/com/android/server/uwb/UwbMetrics.java
index 0e369f1..6c1225c 100644
--- a/service/java/com/android/server/uwb/UwbMetrics.java
+++ b/service/java/com/android/server/uwb/UwbMetrics.java
@@ -66,6 +66,7 @@
         private long mStartTimeSinceBootMs;
         private int mInitLatencyMs;
         private int mInitStatus;
+        private int mRangingStatus;
         private int mActiveDuration;
         private int mRangingCount;
         private int mValidRangingCount;
@@ -133,6 +134,41 @@
             }
         }
 
+        private void convertRangingStatus(int status) {
+            mRangingStatus = UwbStatsLog.UWB_START_RANGING__STATUS__RANGING_GENERAL_FAILURE;
+            switch (status) {
+                case UwbUciConstants.STATUS_CODE_OK:
+                    mRangingStatus = UwbStatsLog.UWB_START_RANGING__STATUS__RANGING_SUCCESS;
+                    break;
+                case UwbUciConstants.STATUS_CODE_RANGING_TX_FAILED:
+                    mRangingStatus = UwbStatsLog.UWB_START_RANGING__STATUS__TX_FAILED;
+                    break;
+                case UwbUciConstants.STATUS_CODE_RANGING_RX_PHY_DEC_FAILED:
+                    mRangingStatus = UwbStatsLog.UWB_START_RANGING__STATUS__RX_PHY_DEC_FAILED;
+                    break;
+                case UwbUciConstants.STATUS_CODE_RANGING_RX_PHY_TOA_FAILED:
+                    mRangingStatus = UwbStatsLog.UWB_START_RANGING__STATUS__RX_PHY_TOA_FAILED;
+                    break;
+                case UwbUciConstants.STATUS_CODE_RANGING_RX_PHY_STS_FAILED:
+                    mRangingStatus = UwbStatsLog.UWB_START_RANGING__STATUS__RX_PHY_STS_FAILED;
+                    break;
+                case UwbUciConstants.STATUS_CODE_RANGING_RX_MAC_DEC_FAILED:
+                    mRangingStatus = UwbStatsLog.UWB_START_RANGING__STATUS__RX_MAC_DEC_FAILED;
+                    break;
+                case UwbUciConstants.STATUS_CODE_RANGING_RX_MAC_IE_DEC_FAILED:
+                    mRangingStatus = UwbStatsLog.UWB_START_RANGING__STATUS__RX_MAC_IE_DEC_FAILED;
+                    break;
+                case UwbUciConstants.STATUS_CODE_RANGING_RX_MAC_IE_MISSING:
+                    mRangingStatus = UwbStatsLog.UWB_START_RANGING__STATUS__RX_MAC_IE_MISSING;
+                    break;
+                case UwbUciConstants.STATUS_CODE_INVALID_PARAM:
+                case UwbUciConstants.STATUS_CODE_INVALID_RANGE:
+                case UwbUciConstants.STATUS_CODE_INVALID_MESSAGE_SIZE:
+                    mRangingStatus = UwbStatsLog.UWB_START_RANGING__STATUS__RANGING_BAD_PARAMS;
+                    break;
+            }
+        }
+
         @Override
         public String toString() {
             StringBuilder sb = new StringBuilder();
@@ -249,7 +285,12 @@
                 session.mHasValidRangingSinceStart = false;
                 return;
             }
+            session.convertRangingStatus(status);
             session.mStartTimeSinceBootMs = mUwbInjector.getElapsedSinceBootMillis();
+            UwbStatsLog.write(UwbStatsLog.UWB_RANGING_START, uwbSession.getProfileType(),
+                    session.mStsType, session.mIsInitiator,
+                    session.mIsController, session.mIsDiscoveredByFramework, session.mIsOutOfBand,
+                    session.mRangingStatus);
         }
     }