From 7f9b6a6ca7023c1c51cdb350bbe71a64be8c61f9 Mon Sep 17 00:00:00 2001 From: Beverly Date: Thu, 13 Jan 2022 16:59:42 -0500 Subject: [PATCH] Update UIEventLogger To log an instanceId with the EventId without needing to provide package and uid. Test: manually log and check unbuffered log with adb shell cmd stats print-logs && adb logcat -s statsd:I Bug: 213483562 Change-Id: Idddf899c94a79e828acb80fe6da21a03468dcae2 --- .../com/android/internal/logging/UiEventLogger.java | 8 ++++++++ .../android/internal/logging/UiEventLoggerImpl.java | 11 ++++++++--- .../internal/logging/testing/UiEventLoggerFake.java | 5 +++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/core/java/com/android/internal/logging/UiEventLogger.java b/core/java/com/android/internal/logging/UiEventLogger.java index 2f4a14fad2ee5..5378b03fe1c56 100644 --- a/core/java/com/android/internal/logging/UiEventLogger.java +++ b/core/java/com/android/internal/logging/UiEventLogger.java @@ -57,6 +57,14 @@ public interface UiEventLogger { */ void log(@NonNull UiEventEnum event); + /** + * Log a simple event with an instance id, without package information. + * Does nothing if event.getId() <= 0. + * @param event an enum implementing UiEventEnum interface. + * @param instance An identifier obtained from an InstanceIdSequence. If null, reduces to log(). + */ + void log(@NonNull UiEventEnum event, @Nullable InstanceId instance); + /** * Log an event with package information. Does nothing if event.getId() <= 0. * Give both uid and packageName if both are known, but one may be omitted if unknown. diff --git a/core/java/com/android/internal/logging/UiEventLoggerImpl.java b/core/java/com/android/internal/logging/UiEventLoggerImpl.java index c0f44a5eb39b5..983e0fe6144e4 100644 --- a/core/java/com/android/internal/logging/UiEventLoggerImpl.java +++ b/core/java/com/android/internal/logging/UiEventLoggerImpl.java @@ -41,17 +41,22 @@ public class UiEventLoggerImpl implements UiEventLogger { } } + @Override + public void log(UiEventEnum event, InstanceId instanceId) { + logWithInstanceId(event, 0, null, instanceId); + } + @Override public void logWithInstanceId(UiEventEnum event, int uid, String packageName, InstanceId instance) { final int eventID = event.getId(); - if ((eventID > 0) && (instance != null)) { + if ((eventID > 0) && (instance != null)) { FrameworkStatsLog.write(FrameworkStatsLog.UI_EVENT_REPORTED, /* event_id = 1 */ eventID, /* uid = 2 */ uid, /* package_name = 3 */ packageName, /* instance_id = 4 */ instance.getId()); - } else { + } else if (eventID > 0) { log(event, uid, packageName); } } @@ -78,7 +83,7 @@ public class UiEventLoggerImpl implements UiEventLogger { /* package_name = 2 */ packageName, /* instance_id = 3 */ instance.getId(), /* position_picked = 4 */ position); - } else { + } else if ((eventID > 0)) { logWithPosition(event, uid, packageName, position); } } diff --git a/core/java/com/android/internal/logging/testing/UiEventLoggerFake.java b/core/java/com/android/internal/logging/testing/UiEventLoggerFake.java index 2d09434807a64..e303890c245a4 100644 --- a/core/java/com/android/internal/logging/testing/UiEventLoggerFake.java +++ b/core/java/com/android/internal/logging/testing/UiEventLoggerFake.java @@ -87,6 +87,11 @@ public class UiEventLoggerFake implements UiEventLogger { log(event, 0, null); } + @Override + public void log(UiEventEnum event, InstanceId instance) { + logWithInstanceId(event, 0, null, instance); + } + @Override public void log(UiEventEnum event, int uid, String packageName) { final int eventId = event.getId();