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;