Add a required main category for multi logs.

Test: updated LogBuilderTest

Change-Id: Ia5359e12a7a84af31d9a966f2c81fc943aadfbdb
diff --git a/core/java/com/android/internal/logging/LogBuilder.java b/core/java/com/android/internal/logging/LogBuilder.java
index 634d061..8e2e114 100644
--- a/core/java/com/android/internal/logging/LogBuilder.java
+++ b/core/java/com/android/internal/logging/LogBuilder.java
@@ -17,8 +17,9 @@
 
     private SparseArray<Object> entries = new SparseArray();
 
-    public LogBuilder() {}
-
+    public LogBuilder(int mainCategory) {
+        setCategory(mainCategory);
+    }
 
     public LogBuilder setView(View view) {
         entries.put(MetricsEvent.RESERVED_FOR_LOGBUILDER_VIEW, view.getId());
diff --git a/core/tests/coretests/src/com/android/internal/logging/LogBuilderTest.java b/core/tests/coretests/src/com/android/internal/logging/LogBuilderTest.java
index e7d23a8..e3f754c 100644
--- a/core/tests/coretests/src/com/android/internal/logging/LogBuilderTest.java
+++ b/core/tests/coretests/src/com/android/internal/logging/LogBuilderTest.java
@@ -5,7 +5,7 @@
 public class LogBuilderTest extends TestCase {
 
     public void testSerialize() {
-        LogBuilder builder = new LogBuilder();
+        LogBuilder builder = new LogBuilder(0);
         builder.addTaggedData(1, "one");
         builder.addTaggedData(2, "two");
         Object[] out = builder.serialize();
@@ -16,7 +16,7 @@
     }
 
     public void testInvalidInputThrows() {
-        LogBuilder builder = new LogBuilder();
+        LogBuilder builder = new LogBuilder(0);
         boolean threw = false;
         try {
             builder.addTaggedData(0, new Object());
@@ -28,7 +28,7 @@
     }
 
     public void testValidInputTypes() {
-        LogBuilder builder = new LogBuilder();
+        LogBuilder builder = new LogBuilder(0);
         builder.addTaggedData(1, "onetwothree");
         builder.addTaggedData(2, 123);
         builder.addTaggedData(3, 123L);
diff --git a/proto/src/metrics_constants.proto b/proto/src/metrics_constants.proto
index 57c4565..d48dbeb 100644
--- a/proto/src/metrics_constants.proto
+++ b/proto/src/metrics_constants.proto
@@ -3175,6 +3175,11 @@
     // user accepted
     ACTION_SKIP_DISCLAIMER_SELECTED = 760;
 
+    // Enclosing category for group of APP_TRANSITION_FOO events,
+    // logged when we execute an app transition.
+    APP_TRANSITION = 761;
+
+
     // ---- End O Constants, all O constants go above this line ----
 
     // Add new aosp constants above this line.
diff --git a/services/core/java/com/android/server/am/ActivityMetricsLogger.java b/services/core/java/com/android/server/am/ActivityMetricsLogger.java
index 3f166fe..e46d204 100644
--- a/services/core/java/com/android/server/am/ActivityMetricsLogger.java
+++ b/services/core/java/com/android/server/am/ActivityMetricsLogger.java
@@ -172,7 +172,7 @@
         MetricsLogger.action(mContext, MetricsEvent.APP_TRANSITION_DEVICE_UPTIME_SECONDS,
                 (int) (SystemClock.uptimeMillis() / 1000));
 
-        LogBuilder builder = new LogBuilder();
+        LogBuilder builder = new LogBuilder(MetricsEvent.APP_TRANSITION);
         builder.addTaggedData(MetricsEvent.APP_TRANSITION_COMPONENT_NAME, componentName);
         builder.addTaggedData(MetricsEvent.APP_TRANSITION_PROCESS_RUNNING, processRunning ? 1 : 0);
         builder.addTaggedData(MetricsEvent.APP_TRANSITION_DEVICE_UPTIME_SECONDS,