Merge "Add some debug logging to UsageStatsService."
diff --git a/services/usage/java/com/android/server/usage/BroadcastResponseStatsTracker.java b/services/usage/java/com/android/server/usage/BroadcastResponseStatsTracker.java
index aa01f31..24fda17 100644
--- a/services/usage/java/com/android/server/usage/BroadcastResponseStatsTracker.java
+++ b/services/usage/java/com/android/server/usage/BroadcastResponseStatsTracker.java
@@ -16,6 +16,8 @@
 
 package com.android.server.usage;
 
+import static com.android.server.usage.UsageStatsService.DEBUG_RESPONSE_STATS;
+
 import android.annotation.ElapsedRealtimeLong;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
@@ -23,9 +25,11 @@
 import android.annotation.UserIdInt;
 import android.app.usage.BroadcastResponseStats;
 import android.os.UserHandle;
+import android.text.TextUtils;
 import android.util.LongSparseArray;
 import android.util.Slog;
 import android.util.SparseArray;
+import android.util.TimeUtils;
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.util.IndentingPrintWriter;
@@ -69,6 +73,12 @@
     void reportBroadcastDispatchEvent(int sourceUid, @NonNull String targetPackage,
             UserHandle targetUser, long idForResponseEvent,
             @ElapsedRealtimeLong long timestampMs) {
+        if (DEBUG_RESPONSE_STATS) {
+            Slog.d(TAG, TextUtils.formatSimple(
+                    "reportBroadcastDispatchEvent; srcUid=%d, tgtPkg=%s, tgtUsr=%d, id=%d, ts=%s",
+                    sourceUid, targetPackage, targetUser, idForResponseEvent,
+                    TimeUtils.formatDuration(timestampMs)));
+        }
         synchronized (mLock) {
             final LongSparseArray<BroadcastEvent> broadcastEvents =
                     getOrCreateBroadcastEventsLocked(targetPackage, targetUser);
@@ -99,6 +109,12 @@
 
     private void reportNotificationEvent(@NotificationEvent int event,
             @NonNull String packageName, UserHandle user, @ElapsedRealtimeLong long timestampMs) {
+        if (DEBUG_RESPONSE_STATS) {
+            Slog.d(TAG, TextUtils.formatSimple(
+                    "reportNotificationEvent; event=<%s>, pkg=%s, usr=%d, ts=%s",
+                    notificationEventToString(event), packageName, user.getIdentifier(),
+                    TimeUtils.formatDuration(timestampMs)));
+        }
         // TODO (206518114): Store last N events to dump for debugging purposes.
         synchronized (mLock) {
             final LongSparseArray<BroadcastEvent> broadcastEvents =
@@ -288,6 +304,20 @@
         return userResponseStats.getOrCreateBroadcastResponseStats(broadcastEvent);
     }
 
+    @NonNull
+    private String notificationEventToString(@NotificationEvent int event) {
+        switch (event) {
+            case NOTIFICATION_EVENT_POSTED:
+                return "posted";
+            case NOTIFICATION_EVENT_UPDATED:
+                return "updated";
+            case NOTIFICATION_EVENT_CANCELLED:
+                return "cancelled";
+            default:
+                return String.valueOf(event);
+        }
+    }
+
     void dump(@NonNull IndentingPrintWriter ipw) {
         ipw.println("Broadcast response stats:");
         ipw.increaseIndent();
diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java
index e28839efa..e90d28a 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsService.java
@@ -89,6 +89,7 @@
 import android.util.ArrayMap;
 import android.util.ArraySet;
 import android.util.AtomicFile;
+import android.util.Log;
 import android.util.Slog;
 import android.util.SparseArray;
 import android.util.SparseIntArray;
@@ -141,6 +142,7 @@
             = SystemProperties.getBoolean("persist.debug.time_correction", true);
 
     static final boolean DEBUG = false; // Never submit with true
+    static final boolean DEBUG_RESPONSE_STATS = DEBUG || Log.isLoggable(TAG, Log.DEBUG);
     static final boolean COMPRESS_TIME = false;
 
     private static final long TEN_SECONDS = 10 * 1000;