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
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user