MediaMetrics: Add logSessionId handling

Test: adb shell dumpsys media.metrics
Test: atest mediametrics_tests
Bug: 181032765
Change-Id: I030555abeaf2f286b61a85032bc767581c2e605e
diff --git a/services/mediametrics/statsd_audiotrack.cpp b/services/mediametrics/statsd_audiotrack.cpp
index 6b08a78..fd809c8 100644
--- a/services/mediametrics/statsd_audiotrack.cpp
+++ b/services/mediametrics/statsd_audiotrack.cpp
@@ -32,6 +32,7 @@
 #include <statslog.h>
 
 #include "MediaMetricsService.h"
+#include "StringUtils.h"
 #include "frameworks/proto_logging/stats/enums/stats/mediametrics/mediametrics.pb.h"
 #include "iface_statsd.h"
 
@@ -132,12 +133,20 @@
         return false;
     }
 
+    // Android S
+    // log_session_id (string)
+    std::string logSessionId;
+    (void)item->getString("android.media.audiotrack.logSessionId", &logSessionId);
+    const auto logSessionIdForStats =
+            mediametrics::stringutils::sanitizeLogSessionId(logSessionId);
+
     if (enabled_statsd) {
         android::util::BytesField bf_serialized( serialized.c_str(), serialized.size());
         (void)android::util::stats_write(android::util::MEDIAMETRICS_AUDIOTRACK_REPORTED,
                                    timestamp, pkgName.c_str(), pkgVersionCode,
                                    mediaApexVersion,
-                                   bf_serialized);
+                                   bf_serialized,
+                                   logSessionIdForStats.c_str());
 
     } else {
         ALOGV("NOT sending: private data (len=%zu)", strlen(serialized.c_str()));