diff options
3 files changed, 18 insertions, 0 deletions
diff --git a/core/proto/android/server/usagestatsservice.proto b/core/proto/android/server/usagestatsservice.proto index f26eefad24e1..e32c07f50ff2 100644 --- a/core/proto/android/server/usagestatsservice.proto +++ b/core/proto/android/server/usagestatsservice.proto @@ -93,6 +93,8 @@ message IntervalStatsProto { optional int32 task_root_package_index = 15; // task_root_class_index contains the index + 1 of the task root class name in the string pool optional int32 task_root_class_index = 16; + // locus_id_index contains the index + 1 of the locus id in the string pool + optional int32 locus_id_index = 17; } // The following fields contain supplemental data used to build IntervalStats, such as a string diff --git a/services/usage/java/com/android/server/usage/IntervalStats.java b/services/usage/java/com/android/server/usage/IntervalStats.java index 5ee3b4859d54..fd462c2e6dc2 100644 --- a/services/usage/java/com/android/server/usage/IntervalStats.java +++ b/services/usage/java/com/android/server/usage/IntervalStats.java @@ -234,6 +234,10 @@ public class IntervalStats { event.mTaskRootClass = getCachedStringRef(stringPool.get( parser.readInt(IntervalStatsProto.Event.TASK_ROOT_CLASS_INDEX) - 1)); break; + case (int) IntervalStatsProto.Event.LOCUS_ID_INDEX: + event.mLocusId = getCachedStringRef(stringPool.get( + parser.readInt(IntervalStatsProto.Event.LOCUS_ID_INDEX) - 1)); + break; case ProtoInputStream.NO_MORE_FIELDS: // Handle default values for certain events types switch (event.mEventType) { @@ -252,6 +256,11 @@ public class IntervalStats { event.mNotificationChannelId = ""; } break; + case LOCUS_ID_SET: + if (event.mLocusId == null) { + event.mLocusId = ""; + } + break; } return event; } diff --git a/services/usage/java/com/android/server/usage/UsageStatsProto.java b/services/usage/java/com/android/server/usage/UsageStatsProto.java index 463fc378c27d..78b14779d6b3 100644 --- a/services/usage/java/com/android/server/usage/UsageStatsProto.java +++ b/services/usage/java/com/android/server/usage/UsageStatsProto.java @@ -481,6 +481,13 @@ final class UsageStatsProto { } } break; + case UsageEvents.Event.LOCUS_ID_SET: + if (event.mLocusId != null) { + final int locusIdIndex = stats.mStringCache.indexOf(event.mLocusId); + if (locusIdIndex >= 0) { + proto.write(IntervalStatsProto.Event.LOCUS_ID_INDEX, locusIdIndex + 1); + } + } } proto.end(token); } |