summaryrefslogtreecommitdiff
path: root/services/usage/java
diff options
context:
space:
mode:
authorVarun Shah <varunshah@google.com>2020-05-06 20:48:06 -0700
committerVarun Shah <varunshah@google.com>2020-05-07 21:34:09 -0700
commit7ce78c23df6ffc3e01e146aab6eb59480d12e244 (patch)
tree4dabfacb0eab2b3aaa63fe0094f127dbc9a75e11 /services/usage/java
parent698590ca101e33b300e436c28012619f9a942550 (diff)
Persist Locus Id Event to UsageStatsProto.
Currently, we are only using UsageStatsProto for backup and restore purposes but to ensure it is in sync with UsageStatsProtoV2, adding the recently added LOCUS_ID event. This enables us to easily fall back to the earlier proto version if there are issues with V2. This also allows us to backup all events data if we decide to do that in the future before updating the B&R restore logic to use V2. Bug: 155935953 Test: atest UsageStatsDatabaseTest Change-Id: I792f20a0b44d13f1ed17c4dbebe5555044afa165
Diffstat (limited to 'services/usage/java')
-rw-r--r--services/usage/java/com/android/server/usage/IntervalStats.java9
-rw-r--r--services/usage/java/com/android/server/usage/UsageStatsProto.java7
2 files changed, 16 insertions, 0 deletions
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);
}