Adding the metric's atom of network slice metrics am: b6cee6401b

Original change: https://android-review.googlesource.com/c/platform/frameworks/proto_logging/+/2304611

Change-Id: I0dd3cd74185d7a9a47b4ff3950665b4977d7e1d0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/stats/Android.bp b/stats/Android.bp
index bb40416..7a6b3fe 100644
--- a/stats/Android.bp
+++ b/stats/Android.bp
@@ -22,12 +22,15 @@
 }
 
 enum_protos = [
+    "enums/adservices/fledge/*.proto",
     "enums/app/**/*.proto",
     "enums/contexthub/*.proto",
     "enums/debug/*.proto",
     "enums/hardware/**/*.proto",
     "enums/hotword/*.proto",
+    "enums/jank/*.proto",
     "enums/media/**/*.proto",
+    "enums/mms/*.proto",
     "enums/nearby/*.proto",
     "enums/net/*.proto",
     "enums/neuralnetworks/*.proto",
@@ -45,7 +48,10 @@
     "enums/stats/location/*.proto",
     "enums/stats/mediametrics/*.proto",
     "enums/stats/mediaprovider/*.proto",
+    "enums/stats/mobiledatadownload/*.proto",
     "enums/stats/otaupdate/*.proto",
+    "enums/stats/privacysignals/*.proto",
+    "enums/stats/safetycenter/*.proto",
     "enums/stats/storage/*.proto",
     "enums/stats/sysui/*.proto",
     "enums/stats/tls/*.proto",
diff --git a/stats/atoms.proto b/stats/atoms.proto
index 1f6917f..84910ea 100644
--- a/stats/atoms.proto
+++ b/stats/atoms.proto
@@ -42,8 +42,10 @@
 import "frameworks/proto_logging/stats/enums/hardware/biometrics/enums.proto";
 import "frameworks/proto_logging/stats/enums/hardware/sensor/assist/enums.proto";
 import "frameworks/proto_logging/stats/enums/hotword/enums.proto";
+import "frameworks/proto_logging/stats/enums/jank/enums.proto";
 import "frameworks/proto_logging/stats/enums/media/audio/enums.proto";
 import "frameworks/proto_logging/stats/enums/media/enums.proto";
+import "frameworks/proto_logging/stats/enums/mms/enums.proto";
 import "frameworks/proto_logging/stats/enums/nearby/enums.proto";
 import "frameworks/proto_logging/stats/enums/net/enums.proto";
 import "frameworks/proto_logging/stats/enums/neuralnetworks/enums.proto";
@@ -694,6 +696,8 @@
             [(module) = "appsearch"];
         AppBackgroundRestrictionsInfo app_background_restrictions_info = 441
             [(module) = "framework"];
+        MmsSmsProviderGetThreadIdFailed mms_sms_provider_get_thread_id_failed = 442 [(module) = "telephony"];
+        MmsSmsDatabaseHelperOnUpgradeFailed mms_sms_database_helper_on_upgrade_failed = 443 [(module) = "telephony"];
         PermissionReminderNotificationInteracted permission_reminder_notification_interacted =
             444 [(module) = "permissioncontroller"];
         RecentPermissionDecisionsInteracted recent_permission_decisions_interacted =
@@ -715,6 +719,7 @@
         IsolatedCompilationEnded isolated_compilation_ended = 458 [(module) = "art"];
         OnsOpportunisticEsimProvisioningComplete ons_opportunistic_esim_provisioning_complete = 459 [(module) = "ons"];
         TelephonyAnomalyDetected telephony_anomaly_detected = 461 [(module) = "telephony"];
+        LetterboxPositionChanged letterbox_position_changed = 462 [(module) = "framework"];
         RemoteKeyProvisioningAttempt remote_key_provisioning_attempt = 463 [(module) = "remoteprovisioner"];
         RemoteKeyProvisioningNetworkInfo remote_key_provisioning_network_info = 464 [(module) = "remoteprovisioner"];
         RemoteKeyProvisioningTiming remote_key_provisioning_timing = 465 [(module) = "remoteprovisioner"];
@@ -722,12 +727,17 @@
         BackgroundDexoptJobEnded background_dexopt_job_ended = 467 [(module) = "art"];
         SyncExemptionOccurred sync_exemption_occurred = 468 [(module) = "framework"];
         AutofillPresentationEventReported autofill_presentation_event_reported = 469 [(module) = "framework"];
+        DockStateChanged dock_state_changed = 470 [(module) = "framework"];
         BroadcastDeliveryEventReported broadcast_delivery_event_reported =
                 475 [(module) = "framework"];
         ServiceRequestEventReported service_request_event_reported = 476 [(module) = "framework"];
         ProviderAcquisitionEventReported provider_acquisition_event_reported =
                 477 [(module) = "framework"];
         BluetoothDeviceNameReported bluetooth_device_name_reported = 478 [(module) = "bluetooth"];
+        VibrationReported vibration_reported = 487 [(module) = "framework"];
+        // reserved 492
+        DisplayBrightnessChanged display_brightness_changed = 494 [(module) = "framework"];
+        ActivityActionBlocked activity_action_blocked = 495 [(module) = "framework"];
         NetworkDnsServerSupportReported network_dns_server_support_reported = 504 [(module) = "resolv"];
         VmBooted vm_booted = 505 [(module) = "virtualizationservice"];
         VmExited vm_exited = 506 [(module) = "virtualizationservice"];
@@ -739,6 +749,9 @@
                 510 [(module) = "media_metrics"];
         MediametricsHeadTrackerDeviceSupportedReported mediametrics_headtrackerdevicesupported_reported =
                 511 [(module) = "media_metrics"];
+        HearingAidInfoReported hearing_aid_info_reported = 513 [(module) = "framework"];
+        DeviceWideJobConstraintChanged device_wide_job_constraint_changed =
+            514 [(module) = "framework"];
         IwlanSetupDataCallResultReported iwlan_setup_data_call_result_reported = 519 [(module) = "iwlan"];
         IwlanPdnDisconnectedReasonReported iwlan_pdn_disconnected_reason_reported = 520 [(module) = "iwlan"];
         AirplaneModeSessionReported airplane_mode_session_reported = 521 [(module) = "wifi", (module) = "bluetooth"];
@@ -950,6 +963,9 @@
         TelephonyNetworkRequestsV2 telephony_network_requests_v2 = 10153 [(module) = "telephony"];
         DeviceTelephonyProperties device_telephony_properties = 10154 [(module) = "telephony"];
         RemoteKeyProvisioningErrorCounts remote_key_provisioning_error_counts = 10155 [(module) = "remoteprovisioner"];
+        IncomingMms incoming_mms = 10157 [(module) = "mms"];
+        OutgoingMms outgoing_mms = 10158 [(module) = "mms"];
+        MultiUserInfo multi_user_info = 10160 [(module) = "framework"];
         NetworkBpfMapInfo network_bpf_map_info = 10161 [(module) = "connectivity"];
         ConnectivityStateSample connectivity_state_sample = 10163 [(module) = "connectivity"];
         NetworkSelectionRematchReasonsInfo network_selection_rematch_reasons_info = 10164 [(module) = "connectivity"];
@@ -959,8 +975,7 @@
     // DO NOT USE field numbers above 100,000 in AOSP.
     // Field numbers 100,000 - 199,999 are reserved for non-AOSP (e.g. OEMs) to use.
     // Field numbers 200,000 and above are reserved for future use; do not use them at all.
-
-    reserved 83, 10008, 10036, 10040, 10041;
+    reserved 83, 360 to 363, 492, 10008, 10036, 10040, 10041;
 }
 
 /*
@@ -1079,6 +1094,25 @@
 }
 
 /**
+ * Part of the go/activity-security project. Logs information about activity
+ * starts which would be blocked as part of the project.
+ *
+ * Logged from:
+ *  - frameworks/base/services/core/java/com/android/server/wm/ActivityStarter.java
+ */
+message ActivityActionBlocked {
+    optional int32 caller_uid = 1 [(is_uid) = true];
+    optional string caller_activity_class_name = 2;
+    optional int32 target_task_top_activity_uid = 3 [(is_uid) = true];
+    optional string target_task_top_activity_class_name = 4;
+    optional bool target_task_is_different = 5;
+    optional int32 target_activity_uid = 6 [(is_uid) = true];
+    optional string target_activity_class_name = 7;
+    optional string target_intent_action = 8;
+    optional int32 target_intent_flags = 9;
+}
+
+/**
  * Logs that the process state of the uid, as determined by ActivityManager
  * (i.e. the highest process state of that uid's processes) has changed.
  *
@@ -1993,6 +2027,18 @@
 }
 
 /**
+ * Logs whether the device is docked, and what type of dock it is using.
+ *
+ * Logged from:
+ *   services/core/java/com/android/server/power/PowerManagerService.java
+ */
+message DockStateChanged {
+    // The device dock state, from frameworks/proto_logging/stats/enums/server/enums.proto.
+    optional android.server.DockStateEnum state = 1
+    [(state_field_option).exclusive_state = true, (state_field_option).nested = false];
+}
+
+/**
  * Logs when an app's wakeup alarm fires.
  *
  * Logged from:
@@ -4790,7 +4836,7 @@
 /**
  * Logs when the vibrator state changes.
  * Logged from:
- *      frameworks/base/services/core/java/com/android/server/VibratorService.java
+ *      frameworks/base/services/core/java/com/android/vibrator/VibratorManagerService.java
  */
 message VibratorStateChanged {
     repeated AttributionNode attribution_node = 1;
@@ -4806,6 +4852,74 @@
     optional int64 duration_millis = 3;
 }
 
+/**
+ * Logs vibration request.
+ * Logged from:
+ *      frameworks/base/services/core/java/com/android/server/vibrator/VibratorManagerService.java
+ */
+// Next tag: 26
+message VibrationReported {
+  repeated AttributionNode attribution_node = 1;
+
+  enum VibrationType {
+    UNKNOWN = 0;
+    SINGLE = 1;
+    REPEATED = 2;
+    EXTERNAL = 3;
+  }
+
+  // Vibration identifiers for aggregation.
+  optional VibrationType vibration_type = 2;
+  // One of VibrationAttributes.USAGE_* constant values.
+  optional int32 vibration_usage = 3;
+  optional int32 vibration_status = 4;
+
+  // Vibration completion causes.
+  // Flag indicating if the vibration was canceled by the same process
+  // or superseded/canceled by another vibration from the same process.
+  optional bool ended_by_same_uid = 5;
+  // Usage value of the vibration that superseded/canceled this one.
+  optional int32 ended_by_usage = 6;
+  // Usage value of the vibration that was superseded/canceled by this one.
+  optional int32 interrupted_usage = 7;
+
+  // Vibration execution counters.
+  optional int32 repeat_count = 8;
+  // Total duration of this vibration at the service, including setup and cleanup.
+  optional int64 vibration_duration_millis = 9;
+  // Total duration the vibrator motor was active with non-zero amplitude.
+  optional int64 vibrator_on_duration_millis = 10;
+  // Delta between the incoming binder call to vibrate and the first step in the
+  // vibration conductor (closest measure of starting HAL interactions).
+  optional int64 start_latency_millis = 11;
+  // Delta between the HAL reporting the last vibrate operation has completed and
+  // vibrator service has finished the vibration and become idle.
+  optional int64 end_latency_millis = 12;
+
+  // Vibrator hardware HAL API interaction counters.
+  // The majority of vibrations will populate only a couple of the fields below.
+  optional int32 hal_compose_count = 13;
+  optional int32 hal_compose_pwle_count = 14;
+  optional int32 hal_on_count = 15;
+  optional int32 hal_off_count = 16;
+  optional int32 hal_perform_count = 17;
+  optional int32 hal_set_amplitude_count = 18;
+  optional int32 hal_set_external_control_count = 19;
+
+  // Vibrator hardware HAL API constants used (deduped).
+  // Values from CompositionPrimitive.aidl successfully triggered by this vibration at least once.
+  repeated int32 hal_supported_composition_primitives_used = 20;
+  // Values from Effect.aidl triggered by this vibration at least once.
+  repeated int32 hal_supported_effects_used = 21;
+  // Values from CompositionPrimitive.aidl triggered but not supported by the device.
+  repeated int32 hal_unsupported_composition_primitives_used = 22;
+  // Values from Effect.aidl triggered but not supported by the device.
+  repeated int32 hal_unsupported_effects_used = 23;
+  // Vibrator hardware HAL argument sizes (total).
+  optional int32 hal_composition_size = 24;
+  optional int32 hal_pwle_size = 25;
+}
+
 /*
  * Allows other apps to push events into statsd.
  * Logged from:
@@ -4933,6 +5047,41 @@
 
     // The timestamp(SystemClock#elapsedRealtime()) when starting activity.
     optional int64 activity_start_timestamp_millis = 22;
+
+    /**
+     * The process state of apps, keep in sync with
+     * frameworks/base/core/java/android/app/ActivityManager.java
+     */
+    enum AppProcessState {
+        PROCESS_STATE_UNKNOWN = -1;
+        PROCESS_STATE_PERSISTENT = 0;
+        PROCESS_STATE_PERSISTENT_UI = 1;
+        PROCESS_STATE_TOP = 2;
+        PROCESS_STATE_BOUND_TOP = 3;
+        PROCESS_STATE_FOREGROUND_SERVICE = 4;
+        PROCESS_STATE_BOUND_FOREGROUND_SERVICE = 5;
+        PROCESS_STATE_IMPORTANT_FOREGROUND = 6;
+        PROCESS_STATE_IMPORTANT_BACKGROUND = 7;
+        PROCESS_STATE_TRANSIENT_BACKGROUND = 8;
+        PROCESS_STATE_BACKUP = 9;
+        PROCESS_STATE_SERVICE = 10;
+        PROCESS_STATE_RECEIVER = 11;
+        PROCESS_STATE_TOP_SLEEPING = 12;
+        PROCESS_STATE_HEAVY_WEIGHT = 13;
+        PROCESS_STATE_HOME = 14;
+        PROCESS_STATE_LAST_ACTIVITY = 15;
+        PROCESS_STATE_CACHED_ACTIVITY = 16;
+        PROCESS_STATE_CACHED_ACTIVITY_CLIENT = 17;
+        PROCESS_STATE_CACHED_RECENT = 18;
+        PROCESS_STATE_CACHED_EMPTY = 19;
+        PROCESS_STATE_NONEXISTENT = 20;
+    }
+
+    // The process state of the launching activity prior to the launch.
+    optional AppProcessState process_state = 23;
+
+    // The oom adj score of the launching activity prior to the launch.
+    optional int32 process_oom_adj = 24;
 }
 
 message AppStartCanceled {
@@ -5032,10 +5181,51 @@
         LETTERBOXED_FOR_ASPECT_RATIO = 5;
     }
 
+    // Position of the letterbox
+    enum Position {
+        UNKNOWN_POSITION = 0;
+        NOT_LETTERBOXED_POSITION = 1;
+        CENTER = 2;
+        LEFT = 3;
+        RIGHT = 4;
+        TOP = 5;
+        BOTTOM = 6;
+    }
+
     // The state that was entered.
     optional State state = 2 [
       (state_field_option).exclusive_state = true,
       (state_field_option).nested = false];
+
+    optional Position letterbox_position = 3;
+}
+
+/**
+ * Logs when an app that is letterboxed changes position.
+ *
+ * Logged from:
+ *   frameworks/base/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
+ */
+
+message LetterboxPositionChanged {
+    // UID of the package that is letterboxed.
+    optional int32 uid = 1 [(is_uid) = true];
+
+    // The new position of the letterbox
+    enum PositionChange {
+        UNKNOWN = 0;
+        CENTER_TO_LEFT = 1;
+        LEFT_TO_CENTER = 2;
+        CENTER_TO_RIGHT= 3;
+        RIGHT_TO_CENTER = 4;
+        CENTER_TO_TOP = 5;
+        TOP_TO_CENTER = 6;
+        CENTER_TO_BOTTOM = 7;
+        BOTTOM_TO_CENTER = 8;
+    }
+
+    optional PositionChange position_change = 2;
+
 }
 
 /**
@@ -5391,6 +5581,12 @@
 
     // Max thrashing levels (workingset_refaults/filecache in %).
     optional int32 max_thrashing = 15;
+
+    // How many active foreground services across the system
+    optional int32 total_foreground_services = 16;
+
+    // How many processes hosting foreground services
+    optional int32 procs_with_foreground_services = 17;
 }
 
 /*
@@ -6191,6 +6387,15 @@
 
     /** The start type of the host process. */
     optional ProcessStartType proc_start_type = 5;
+
+    /** The delay in ms from enqueue to dispatch of this intent to the set of receivers. */
+    optional int64 dispatch_delay = 6;
+
+    /** The delay in ms from beginning of dispatch to this specific receiver. */
+    optional int64 receive_delay = 7;
+
+    /** The delay in ms from dispatch to finish the handling of this intent. */
+    optional int64 finish_delay = 8;
 }
 
 /**
@@ -6952,72 +7157,10 @@
  * Logged from:
  *  frameworks/base/core/java/com/android/internal/jank/FrameTracker.java
  *
- * Next Tag: 59
+ * Next Tag: 8
  */
 message UIInteractionFrameInfoReported {
-    enum InteractionType {
-        UNKNOWN = 0;
-        NOTIFICATION_SHADE_SWIPE = 1;
-        SHADE_EXPAND_COLLAPSE_LOCK = 2;
-        SHADE_SCROLL_FLING = 3;
-        SHADE_ROW_EXPAND = 4;
-        SHADE_ROW_SWIPE = 5;
-        SHADE_QS_EXPAND_COLLAPSE = 6;
-        SHADE_QS_SCROLL_SWIPE = 7;
-        LAUNCHER_APP_LAUNCH_FROM_RECENTS = 8;
-        LAUNCHER_APP_LAUNCH_FROM_ICON = 9;
-        LAUNCHER_APP_CLOSE_TO_HOME = 10;
-        LAUNCHER_APP_CLOSE_TO_PIP = 11;
-        LAUNCHER_QUICK_SWITCH = 12;
-        SHADE_HEADS_UP_APPEAR = 13;
-        SHADE_HEADS_UP_DISAPPEAR = 14;
-        SHADE_NOTIFICATION_ADD = 15;
-        SHADE_NOTIFICATION_REMOVE = 16;
-        SHADE_APP_LAUNCH = 17;
-        LOCKSCREEN_PASSWORD_APPEAR = 18;
-        LOCKSCREEN_PATTERN_APPEAR = 19;
-        LOCKSCREEN_PIN_APPEAR = 20;
-        LOCKSCREEN_PASSWORD_DISAPPEAR = 21;
-        LOCKSCREEN_PATTERN_DISAPPEAR = 22;
-        LOCKSCREEN_PIN_DISAPPEAR = 23;
-        LOCKSCREEN_TRANSITION_FROM_AOD = 24;
-        LOCKSCREEN_TRANSITION_TO_AOD = 25;
-        LAUNCHER_OPEN_ALL_APPS = 26;
-        LAUNCHER_ALL_APPS_SCROLL = 27;
-        LAUNCHER_APP_LAUNCH_FROM_WIDGET = 28;
-        SETTINGS_PAGE_SCROLL = 29;
-        LOCKSCREEN_UNLOCK_ANIMATION = 30;
-        SHADE_APP_LAUNCH_FROM_HISTORY_BUTTON = 31;
-        SHADE_APP_LAUNCH_FROM_MEDIA_PLAYER = 32;
-        SHADE_APP_LAUNCH_FROM_QS_TILE = 33;
-        SHADE_APP_LAUNCH_FROM_SETTINGS_BUTTON = 34;
-        STATUS_BAR_APP_LAUNCH_FROM_CALL_CHIP = 35;
-        PIP_TRANSITION = 36;
-        WALLPAPER_TRANSITION = 37;
-        USER_SWITCH = 38;
-        SPLASHSCREEN_AVD = 39;
-        SPLASHSCREEN_EXIT_ANIM = 40;
-        SCREEN_OFF = 41;
-        SCREEN_OFF_SHOW_AOD = 42;
-        ONE_HANDED_ENTER_TRANSITION = 43;
-        ONE_HANDED_EXIT_TRANSITION = 44;
-        UNFOLD_ANIM = 45;
-        SUW_LOADING_TO_SHOW_INFO_WITH_ACTIONS = 46;
-        SUW_SHOW_FUNCTION_SCREEN_WITH_ACTIONS = 47;
-        SUW_LOADING_TO_NEXT_FLOW = 48;
-        SUW_LOADING_SCREEN_FOR_STATUS = 49;
-        SPLIT_SCREEN_ENTER = 50;
-        SPLIT_SCREEN_EXIT = 51;
-        LOCKSCREEN_LAUNCH_CAMERA = 52;
-        SPLIT_SCREEN_RESIZE = 53;
-        SETTINGS_SLIDER = 54;
-        TAKE_SCREENSHOT = 55;
-        VOLUME_CONTROL = 56;
-        BIOMETRIC_PROMPT_TRANSITION = 57;
-        SETTINGS_TOGGLE = 58;
-    }
-
-    optional InteractionType interaction_type = 1;
+    optional android.jank.InteractionType interaction_type = 1;
 
     // Number of frames rendered during the interaction.
     optional int64 total_frames = 2;
@@ -7045,28 +7188,7 @@
  *  frameworks/base/core/java/com/android/internal/util/LatencyTracker.java
  */
 message UIActionLatencyReported {
-    enum ActionType {
-        UNKNOWN = 0;
-        ACTION_EXPAND_PANEL = 1;
-        ACTION_TOGGLE_RECENTS = 2;
-        ACTION_FINGERPRINT_WAKE_AND_UNLOCK = 3;
-        ACTION_CHECK_CREDENTIAL = 4;
-        ACTION_CHECK_CREDENTIAL_UNLOCKED = 5;
-        ACTION_TURN_ON_SCREEN = 6;
-        ACTION_ROTATE_SCREEN = 7;
-        ACTION_FACE_WAKE_AND_UNLOCK = 8;
-        ACTION_START_RECENTS_ANIMATION = 9;
-        ACTION_ROTATE_SCREEN_CAMERA_CHECK = 10;
-        ACTION_ROTATE_SCREEN_SENSOR = 11;
-        ACTION_LOCKSCREEN_UNLOCK = 12;
-        ACTION_USER_SWITCH = 13;
-        ACTION_SWITCH_DISPLAY_UNFOLD = 14;
-        ACTION_UDFPS_ILLUMINATE = 15;
-        ACTION_SHOW_BACK_ARROW = 16;
-        ACTION_LOAD_SHARE_SHEET = 17;
-    }
-
-    optional ActionType action = 1;
+    optional android.jank.ActionType action = 1;
 
     optional int64 latency_millis = 2;
 }
@@ -9838,7 +9960,10 @@
         ON_LOCKED = 3; // Secure Nfc enabled.
         CRASH_RESTART = 4; // NfcService watchdog timeout restart.
     }
-    optional State state = 1;
+    optional State state = 1 [
+        (state_field_option).exclusive_state = true,
+        (state_field_option).nested = false
+    ];
 }
 
 /**
@@ -10140,11 +10265,14 @@
     // The reason for entering splitscreen
     enum EnterReason {
         UNKNOWN_ENTER = 0;
-        OVERVIEW = 1;
+        OVERVIEW = 1; // Deprecated, use LAUNCHER
         DRAG_LEFT = 2;
         DRAG_TOP = 3;
         DRAG_RIGHT = 4;
         DRAG_BOTTOM = 5;
+        LAUNCHER = 6;
+        MULTI_INSTANCE = 7;
+        NOTIFICATIONS = 8;
     }
 
     // The reason for exiting splitscreen
@@ -10261,7 +10389,8 @@
 }
 
 /**
- * Logs that a constraint for a scheduled job has changed.
+ * Logs that a job-specific constraint for a scheduled job has changed.
+ * DeviceWideJobConstraintChanged will cover constraints that are normally the same for all jobs.
  *
  * Logged from:
  *     frameworks/base/services/core/java/com/android/server/job/controllers/JobStatus.java
@@ -10283,6 +10412,29 @@
 }
 
 /**
+ * Logs that a device-state-level JobScheduler constraint has changed. This doesn't take individual
+ * job or app characteristics into account. Individual jobs may have a different satisfaction value
+ * based on special policies. Individual job constraints (eg. connectivity or prefetch) are not
+ * logged in this atom.
+ *
+ * Logged from:
+ *     frameworks/base/services/core/java/com/android/server/job/controllers/<*>.java
+ */
+message DeviceWideJobConstraintChanged {
+    optional com.android.server.job.ConstraintEnum constraint = 1;
+
+    enum State {
+        UNKNOWN = 0;
+        UNSATISFIED = 1;
+        SATISFIED = 2;
+    }
+    optional State state = 2 [
+        (state_field_option).exclusive_state = true,
+        (state_field_option).nested = false
+    ];
+}
+
+/**
  * Logs PowerManagerService screen timeout resets (extensions) that happen when an attention check
  * returns true.
  *
@@ -14082,6 +14234,25 @@
 
     // Time since last unfrozen.
     optional int64 time_unfrozen_millis = 4;
+
+    // The list of reason should be kept in sync with @OomAdjReason in OomAdjuster.java.
+    enum OomAdjReason {
+        NONE = 0;
+        ACTIVITY = 1;
+        FINISH_RECEIVER = 2;
+        START_RECEIVER = 3;
+        BIND_SERVICE = 4;
+        UNBIND_SERVICE = 5;
+        START_SERVICE = 6;
+        GET_PROVIDER = 7;
+        REMOVE_PROVIDER = 8;
+        UI_VISIBILITY = 9;
+        ALLOWLIST = 10;
+        PROCESS_BEGIN = 11;
+        PROCESS_END = 12;
+    }
+
+    optional OomAdjReason unfreeze_reason = 5;
 }
 
 /**
@@ -14452,7 +14623,11 @@
     optional int32 carrier_id = 13;
 
     // Random message ID.
+    // If the value of count is greater than 1, the message_id represents only one of the messages.
     optional int64 message_id = 14;
+
+    // Number of messages with the same properties (see message_id for exception)
+    optional int32 count = 15;
 }
 
 /**
@@ -14504,13 +14679,21 @@
     optional int32 carrier_id = 11;
 
     // Random message ID.
+    // If the value of count is greater than 1, the message_id represents only one of the messages.
     optional int64 message_id = 12;
 
     // Retry count: 0 for the first attempt and then increasing for each attempt.
+    // If the value of count is greater than 1, the retry_id represents the value associated with
+    // the message defined by message_id.
     optional int32 retry_id = 13;
 
     // Time in milliseconds to complete the SMS send to the network.
+    // If the value of count is greater than 1, this field measures the average time interval.
     optional int64 interval_millis = 14;
+
+    // Number of messages with the same properties (see message_id, retry_id and latency_millis for
+    // exceptions)
+    optional int32 count = 15;
 }
 
 /**
@@ -14677,6 +14860,10 @@
 
     // Reason why the data call handover failed, as in RIL_DataCallFailCause from ril.h
     repeated int32 handover_failure_causes = 20;
+
+    // For each int32, the lower 16 bits represent the source RAT while the upper 16 bits indicate
+    // the target RAT of the failed handover.
+    repeated int32 handover_failure_rat = 21;
 }
 
 /**
@@ -15307,6 +15494,20 @@
     optional bool is_user_running_unlocked = 7;
 }
 
+
+/**
+ * The MultiUserInfo information about maximum supported users on the device.
+ *
+ * This will be pulled from
+ *     frameworks/base/services/core/java/com/android/server/pm/UserManagerService.java
+ */
+message MultiUserInfo {
+    // Maximum users supported on the device
+    optional int32 max_supported_users = 1;
+    // Whether multi user setting is on.
+    optional bool multi_user_setting_on = 2;
+}
+
 /**
  * Logs when accessibility shortcut clicked.
  *
@@ -15751,6 +15952,9 @@
 
     // Type of device that interaction with.
     optional android.app.settings.mediaoutput.MediumType target = 2;
+
+    // The package name of an application whose media session is being switched.
+    optional string media_session_package_name= 3;
 }
 
 /**
@@ -20386,6 +20590,10 @@
     // APN type bitmask of the APNs added or modified by user:
     // @ApnType in frameworks/base/telephony/java/android/telephony/Annotation.java.
     optional int32 user_modified_apn_type_bitmask = 16;
+
+    // Indicates the unmetered networks
+    // Bitmask is encoded as TelephonyManager#NetworkTypeBitMask.
+    optional int64 unmetered_networks = 17;
 }
 
 /*
@@ -20872,6 +21080,28 @@
 
         // Indicates that no starting recognition after creating the detector.
         DID_NOT_CALL_START_RECOGNITION = 6;
+
+        // Indicates that the system disconnected the service.
+        ON_DISCONNECTED = 7;
+
+        // Indicates that the application called the updateState function.
+        APP_REQUEST_UPDATE_STATE = 8;
+
+        // Indicates that starting to listen software detection.
+        START_SOFTWARE_DETECTION = 9;
+
+        // Indicates that starting to listen external source detection.
+        START_EXTERNAL_SOURCE_DETECTION = 10;
+
+        // Indicates that the external source detection was detected.
+        EXTERNAL_SOURCE_DETECTED = 11;
+
+        // Indicates that the external source detection was not detected.
+        EXTERNAL_SOURCE_REJECTED = 12;
+
+        // Indicates that the system got the security exception when handling external
+        // source detected callback.
+        EXTERNAL_SOURCE_DETECT_SECURITY_EXCEPTION = 13;
     }
     optional Event event = 2;
 
@@ -21139,6 +21369,42 @@
 }
 
 /**
+ * Logs failure reason when MmsSmsProvider#getThreadId fails to return a threadId
+ */
+message MmsSmsProviderGetThreadIdFailed {
+    enum FailureCode {
+        FAILURE_UNKNOWN = 0;
+        // Did not return a threadId due to recipients being passed in
+        FAILURE_NO_RECIPIENTS = 1;
+        FAILURE_FIND_OR_CREATE_THREAD_ID_SQL = 2;
+        // Found more than one threadId for the given of recipients
+        FAILURE_MULTIPLE_THREAD_IDS_FOUND = 3;
+    }
+
+    optional FailureCode failure_code = 1;
+}
+
+/**
+ * Logs failure reason when MmsSmsDatabaseHelperOnUpgradeFailed fails on an upgrade step
+ */
+message MmsSmsDatabaseHelperOnUpgradeFailed {
+    enum FailureCode {
+        FAILURE_UNKNOWN = 0;
+        FAILURE_IO_EXCEPTION = 1;
+        FAILURE_SECURITY_EXCEPTION = 2;
+        FAILURE_SQL_EXCEPTION = 3;
+    }
+
+    // Database version being upgraded from
+    optional int32 old_version = 1;
+    // Database version being upgraded to
+    optional int32 current_version = 2;
+    // Version number of the database upgrade step that failed
+    optional int32 upgrade_failed_to_version = 3;
+    optional FailureCode failure_code = 4;
+}
+
+/**
  * Logs for task manager events
  *
  * Logged from SystemUI
@@ -21186,6 +21452,13 @@
         6;  // Session was prematurely committed. This can happen due to various
             // reasons, eg: app developers calling commit() earlier than when
             // they should.
+    NONE_SHOWN_FILL_REQUEST_FAILED =
+        7; // Autofill provider request failed. Different from timeout.
+    NONE_SHOWN_NO_FOCUS =
+        8; // Autofill provider request was triggered pre-focus. User never
+           // focussed on autofillable fields. This can happen for FillDialog
+           // where we trigger fill request at layout time.
+
   }
 
   // Id number which increases for each subsequent request.
@@ -21222,6 +21495,17 @@
 
   // How the dataset is supposed to be shown to the user
   optional AutofillDisplayPresentationType display_presentation_type = 9;
+
+  // Autofill Service Provider's uid
+  optional int32 autofill_service_uid = 10 [(is_uid) = true];
+
+  // Inline suggestion host's uid. Populated only when
+  // AutofillDisplayPresentationType = INLINE
+  optional int32 inline_suggestion_host_uid = 11 [(is_uid) = true];
+
+  // Whether a new request was triggered or alternatively served from cached
+  // response.
+  optional bool is_request_triggered = 12;
 }
 
 // Tells how Autofill dataset was/will-be displayed.
@@ -21292,100 +21576,6 @@
     optional int64 event_id_lsb = 2;
     optional int64 event_id_msb = 3;
 }
-/*
- * Pushed atom logged by ONS service.
- */
-message OnsOpportunisticEsimProvisioningComplete {
-    enum ResultCode {
-        // Unknown
-        RESULT_UNKNOWN = 0;
-
-        // Operation was successful.
-        RESULT_SUCCESS = 1;
-
-        // Device capabilities not met such as eSIM and MultiSIM not supported.
-        RESULT_DEVICE_NOT_CAPABLE = 2;
-
-        // Internet connection is not available while trying to download opportunistic eSIM.
-        RESULT_INTERNET_NOT_AVAILABLE = 3;
-
-        // Error occurred while switching device from Single to MultiSIM mode.
-        RESULT_SWITCH_TO_MULTISIM_FAILED = 4;
-
-        // Connection error occurred while downloading opportunistic eSIM from SMDP server.
-        RESULT_CONNECTION_ERROR = 5;
-
-        // Download failed because there is no sufficient storage available in eUICC memory.
-        RESULT_MEMORY_FULL = 6;
-
-        // Installation of downloaded eSIM failed.
-        RESULT_INSTALL_ESIM_PROFILE_FAILED = 7;
-
-        // Unresolvable errors such as Invalid SMDP address or activation code.
-        RESULT_UNRESOLVABLE_ERROR = 8;
-
-        //Auto provisioning disabled
-        RESULT_AUTO_PROVISIONING_DISABLED = 9;
-    }
-
-    // CBRS carrier id. Filled only while reporting failure cases.
-    optional int32 carrier_id = 1;
-
-    // carrier id of the opportunistic eSIM downloaded from the SMDP server.
-    // Filled only while reporting failure cases.
-    optional int32 opportunistic_esim_carrier_id = 2;
-
-    // Flag to indicate that the data connection was used for downloading.
-    optional bool is_mobile_data_used = 3;
-
-    // Error code occurred during the above operation.
-    optional ResultCode error_code = 4;
-
-    // Retry count of the above operation.
-    optional int32 retry_count = 5;
-
-    // Detailed error code.
-    optional int32 detailed_error_code = 6;
-}
-
-/**
- * Logs when a background dexopt job is ended.
- *
- * Logged from:
- *   frameworks/base/services/core/java/com/android/server/pm/BackgroundDexOptService.java
- */
-message BackgroundDexoptJobEnded {
-    // Corresponds to `BackgroundDexOptService.Status`, except for
-    // `STATUS_JOB_FINISHED`.
-    enum Status {
-        STATUS_UNKNOWN = 0;
-
-        // The job has finished. This value is used even if some packages have
-        // failed compilation during the job. (Corresponds to either
-        // `BackgroundDexOptService.Status.STATUS_OK` or
-        // `BackgroundDexOptService.Status.STATUS_DEX_OPT_FAILED`.)
-        STATUS_JOB_FINISHED = 1;
-
-        STATUS_ABORT_BY_CANCELLATION = 2;
-        STATUS_ABORT_NO_SPACE_LEFT = 3;
-        STATUS_ABORT_THERMAL = 4;
-        STATUS_ABORT_BATTERY = 5;
-    }
-
-    optional Status status = 1;
-
-    // If `status` is `STATUS_ABORT_BY_CANCELLATION`, the reason of the
-    // cancellation.
-    optional android.app.job.StopReasonEnum cancellation_reason = 2;
-
-    // The duration of the job run, in milliseconds.
-    optional int64 duration_ms = 3;
-
-    // The duration of the job run, in milliseconds, including time spent in
-    // sleep. Deprecated as the job scheduler holds a wake lock, hence this
-    // duration is always going to be the same as above.
-    optional int64 duration_including_sleep_ms = 4 [deprecated = true];
-}
 
 /**
  * Logs information about sync exemptions when they occur.
@@ -21538,6 +21728,249 @@
     optional int32 error_bytes = 3;
 }
 
+/*
+ * Pushed atom logged by ONS service.
+ */
+message OnsOpportunisticEsimProvisioningComplete {
+    enum ResultCode {
+        // Unknown
+        RESULT_UNKNOWN = 0;
+
+        // Operation was successful.
+        RESULT_SUCCESS = 1;
+
+        // Device capabilities not met such as eSIM and MultiSIM not supported.
+        RESULT_DEVICE_NOT_CAPABLE = 2;
+
+        // Internet connection is not available while trying to download opportunistic eSIM.
+        RESULT_INTERNET_NOT_AVAILABLE = 3;
+
+        // Error occurred while switching device from Single to MultiSIM mode.
+        RESULT_SWITCH_TO_MULTISIM_FAILED = 4;
+
+        // Connection error occurred while downloading opportunistic eSIM from SMDP server.
+        RESULT_CONNECTION_ERROR = 5;
+
+        // Download failed because there is no sufficient storage available in eUICC memory.
+        RESULT_MEMORY_FULL = 6;
+
+        // Installation of downloaded eSIM failed.
+        RESULT_INSTALL_ESIM_PROFILE_FAILED = 7;
+
+        // Unresolvable errors such as Invalid SMDP address or activation code.
+        RESULT_UNRESOLVABLE_ERROR = 8;
+
+        // Auto provisioning disabled
+        RESULT_AUTO_PROVISIONING_DISABLED = 9;
+
+        // eSIM provisioning failed
+        RESULT_ESIM_PROVISIONING_FAILED = 10;
+    }
+
+    // CBRS carrier id. Filled only while reporting failure cases.
+    optional int32 carrier_id = 1;
+
+    // carrier id of the opportunistic eSIM downloaded from the SMDP server.
+    // Filled only while reporting failure cases.
+    optional int32 opportunistic_esim_carrier_id = 2;
+
+    // Flag to indicate that the data connection was used for downloading.
+    optional bool is_mobile_data_used = 3;
+
+    // Error code occurred during the above operation.
+    optional ResultCode error_code = 4;
+
+    // Retry count of the above operation.
+    optional int32 retry_count = 5;
+
+    // Detailed error code.
+    optional int32 detailed_error_code = 6;
+}
+
+/**
+ * Logs when a background dexopt job is ended.
+ *
+ * Logged from:
+ *   frameworks/base/services/core/java/com/android/server/pm/BackgroundDexOptService.java
+ */
+message BackgroundDexoptJobEnded {
+    // Corresponds to `BackgroundDexOptService.Status`, except for
+    // `STATUS_JOB_FINISHED`.
+    enum Status {
+        STATUS_UNKNOWN = 0;
+
+        // The job has finished. This value is used even if some packages have
+        // failed compilation during the job. (Corresponds to either
+        // `BackgroundDexOptService.Status.STATUS_OK` or
+        // `BackgroundDexOptService.Status.STATUS_DEX_OPT_FAILED`.)
+        STATUS_JOB_FINISHED = 1;
+
+        STATUS_ABORT_BY_CANCELLATION = 2;
+        STATUS_ABORT_NO_SPACE_LEFT = 3;
+        STATUS_ABORT_THERMAL = 4;
+        STATUS_ABORT_BATTERY = 5;
+    }
+
+    optional Status status = 1;
+
+    // If `status` is `STATUS_ABORT_BY_CANCELLATION`, the reason of the
+    // cancellation.
+    optional android.app.job.StopReasonEnum cancellation_reason = 2;
+
+    // The duration of the job run, in milliseconds.
+    optional int64 duration_ms = 3;
+
+    // The duration of the job run, in milliseconds, including time spent in
+    // sleep. Deprecated as the job scheduler holds a wake lock, hence this
+    // duration is always going to be the same as above.
+    optional int64 duration_including_sleep_ms = 4 [deprecated = true];
+}
+
+/**
+ * Pulls information for a single incoming MMS.
+ *
+ * Each pull creates multiple atoms, one for each MMS.
+ * The sequence is randomized when pulled.
+ *
+ * Pulled from:
+ *   packages/services/Mms/src/com/android/mms/service/metrics/MmsMetricsCollector.java
+ */
+message IncomingMms {
+    // Radio access technology (RAT) used for downloading the MMS.
+    // It can be IWLAN in case of IMS.
+    // RAT is logged at the end of the download.
+    optional android.telephony.NetworkTypeEnum rat = 1;
+
+    // Indicate a specific result handling the MMS.
+    optional android.mms.MmsResultEnum result = 2;
+
+    // Roaming type when MMS was received.
+    optional android.telephony.RoamingTypeEnum roaming = 3;
+
+    // Index of the SIM used, 0 for single-SIM devices.
+    optional int32 sim_slot_index = 4;
+
+    // Whether the device was in multi-SIM mode (with multiple active SIM profiles).
+    optional bool is_multi_sim = 5;
+
+    // Whether the MMS was received with an eSIM profile.
+    optional bool is_esim = 6;
+
+    // Carrier ID of the SIM card used for the MMS.
+    // See https://source.android.com/devices/tech/config/carrierid.
+    optional int32 carrier_id = 7;
+
+    // Average time in milliseconds to download MMS from the network.
+    optional int64 avg_interval_millis = 8;
+
+    // Total number of MMS having same configuration.
+    optional int64 mms_count = 9;
+
+    // Retry count: 0 for the first attempt and then increasing for each attempt.
+    optional int32 retry_id = 10;
+
+    // Whether MmsService or carrier app downloaded the MMS from the network.
+    optional bool handled_by_carrier_app = 11;
+}
+
+/**
+ * Pulls information for a single outgoing MMS.
+ *
+ * Each pull creates multiple atoms, one for each MMS.
+ * The sequence is randomized when pulled.
+ *
+ * Pulled from:
+ *   packages/services/Mms/src/com/android/mms/service/metrics/MmsMetricsCollector.java
+ */
+message OutgoingMms {
+    // Radio access technology (RAT) used for uploading the MMS.
+    // It can be IWLAN in case of IMS.
+    // RAT is logged at the end of the upload.
+    optional android.telephony.NetworkTypeEnum rat = 1;
+
+    // Indicate a specific result handling the MMS.
+    optional android.mms.MmsResultEnum result = 2;
+
+    // Roaming type when MMS was received.
+    optional android.telephony.RoamingTypeEnum roaming = 3;
+
+    // Index of the SIM used, 0 for single-SIM devices.
+    optional int32 sim_slot_index = 4;
+
+    // Whether the device was in multi-SIM mode (with multiple active SIM profiles).
+    optional bool is_multi_sim = 5;
+
+    // Whether the MMS was sent with an eSIM profile.
+    optional bool is_esim = 6;
+
+    // Carrier ID of the SIM card used for the MMS.
+    // See https://source.android.com/devices/tech/config/carrierid.
+    optional int32 carrier_id = 7;
+
+    // Average time in milliseconds to download MMS from the network.
+    optional int64 avg_interval_millis = 8;
+
+    // Total number of MMS having same configuration.
+    optional int64 mms_count = 9;
+
+    // Whether the default MMS application sent the MMS (regardless of which application).
+    optional bool is_from_default_app = 10;
+
+    // Retry count: 0 for the first attempt and then increasing for each attempt.
+    optional int32 retry_id = 11;
+
+    // Whether MmsService or carrier app uploaded the MMS to the network.
+    optional bool handled_by_carrier_app = 12;
+}
+
+// Logs Display Brightness change events.
+message DisplayBrightnessChanged {
+
+    enum Reason {
+        REASON_UNKNOWN = 0;
+        REASON_MANUAL = 1;
+    }
+
+    // Display brightness before the brightness event, in nits.
+    optional float initial_nits = 1;
+
+    // Display brightness after the brightness event, in nits.
+    optional float end_nits = 2;
+
+    // Estimated ambient light, in lux.
+    optional float lux = 3;
+
+    // Physical display id, with format $ADAPTER_PREFIX:$ID, in this case
+    // "local:$PHYSICAL_ID".
+    optional string physical_display_id = 4;
+
+    // Whether the short term model was active at the time of the event.
+    optional bool short_term_model_active = 5;
+
+    // The factor to adjust the screen brightness in low power mode in the range
+    // 0 (screen off) to 1 (no change).
+    // If not applied, this is set to -1.
+    optional float power_brightness_factor = 6;
+
+    // The level of Reduce Bright Colors (RBC) intensity, the range is [0, 100].
+    // If RBC is not enabled, this is set to -1;
+    optional int32 reduce_bright_colors_strength = 7;
+
+    // Max nits value when High Brightness Mode (HBM) is enabled.
+    // If HBM is not enabled, this is set to -1;
+    optional float hbm_current_max = 8;
+
+    // Thermal throttling cap.
+    // If thermal throttling not enabled, this is -1.
+    optional float thermal_throttling_cap = 9;
+
+    // Whether adaptive brightness is enabled.
+    optional bool adaptive_brightness_enabled = 10;
+
+    // Reason that triggered the brightness event to occur.
+    optional Reason reason = 11;
+}
+
 // Logs information about bpf maps in BpfNetMaps.
 //
 // Logged from:
@@ -21554,6 +21987,43 @@
 }
 
 /**
+ * Logs information when a hearing aid is bonded
+ *
+ * Logged from:
+ *   frameworks/base/packages/SettingsLib/src/com/android/settingslib/bluetooth/
+ *   CachedBluetoothDevice.java
+ */
+message HearingAidInfoReported {
+    // The device mode of the bonded hearing aid
+    // Mode definition for hearing aids. See {@link BluetoothHearingAid}.
+    enum DeviceMode {
+        MODE_UNKNOWN = -1;
+        MONAURAL = 0;
+        BINAURAL = 1;
+    }
+    optional DeviceMode device_mode = 1;
+
+    // The device side of the bonded hearing aid
+    // Side definition for hearing aids. See {@link BluetoothHearingAid}.
+    enum DeviceSide {
+        SIDE_UNKNOWN = -1;
+        LEFT = 0;
+        RIGHT = 1;
+    }
+    optional DeviceSide device_side = 2;
+
+    // The entry page id where the bonding process starts
+    enum BondEntry {
+        PAGE_UNKNOWN = -1;
+        CONNECTED_DEVICES = 0;
+        ACCESSIBILITY_HEARING_AIDS = 1;
+        ACCESSIBILITY_HEARING_AID_PAIR_ANOTHER = 2;
+        BLUETOOTH = 3;
+    }
+    optional BondEntry bond_entry = 3;
+}
+
+/**
  * Logs the number of network count on each list of transports
  *
  * Logs from:
diff --git a/stats/enums/app/settings_enums.proto b/stats/enums/app/settings_enums.proto
index ed241b6..399acd6 100644
--- a/stats/enums/app/settings_enums.proto
+++ b/stats/enums/app/settings_enums.proto
@@ -992,7 +992,7 @@
     // OS: T
     ACTION_COLUMBUS_ACTION_FLASHLIGHT = 1787;
 
-    // ACTION: Settings > Display > Daydream ("Screen Saver")
+    // ACTION: Settings > Display > Daydream (Screen saver) > Choose a screen saver
     // CATEGORY: SETTINGS
     // OS: T
     ACTION_DREAM_SELECT_TYPE = 1788;
@@ -1013,6 +1013,70 @@
     // CATEGORY: SETTINGS
     // OS: T
     ACTION_DISABLE_AUTO_ROTATION_DEVICE_STATE = 1791;
+
+    // ACTION: Settings > Apps > Battery optimized apps > filter set to
+    // <All apps>
+    // CATEGORY: SETTINGS
+    // OS: T
+    ACTION_BATTERY_OPTIMIZED_APPS_FILTER_ALL_APPS = 1792;
+
+    // ACTION: Settings > Apps > Battery optimized apps > filter set to
+    // <restricted>
+    // CATEGORY: SETTINGS
+    // OS: T
+    ACTION_BATTERY_OPTIMIZED_APPS_FILTER_RESTRICTED = 1793;
+
+    // ACTION: Settings > Apps > Battery optimized apps > filter set to
+    // <unrestricted>
+    // CATEGORY: SETTINGS
+    // OS: T
+    ACTION_BATTERY_OPTIMIZED_APPS_FILTER_UNRESTRICTED = 1794;
+
+    // ACTION: Settings > Apps > Battery optimized apps > filter set to
+    // <optimized>
+    // CATEGORY: SETTINGS
+    // OS: T
+    ACTION_BATTERY_OPTIMIZED_APPS_FILTER_OPTIMIZED = 1795;
+
+    // Custom tag to log changes to the dock setup flow state
+    // CATEGORY: SETTINGS
+    // OS: T
+    ACTION_DOCK_SETUP_STATE_CHANGED = 1796;
+
+    // Custom tag to log the start of each step in the dock setup flow
+    // CATEGORY: SETTINGS
+    // OS: T
+    ACTION_DOCK_SETUP_STEP_START = 1797;
+
+    // Custom tag to log the result of each step in the dock setup flow
+    // CATEGORY: SETTINGS
+    // OS: T
+    ACTION_DOCK_SETUP_STEP_COMPLETE = 1798;
+
+    // ACTION: Settings > Battery Usage > Click daily chart time slot
+    // CATEGORY: SETTINGS
+    // OS: T
+    ACTION_BATTERY_USAGE_DAILY_TIME_SLOT = 1799;
+
+    // ACTION: Settings > Battery Usage > Click daily chart show all
+    // CATEGORY: SETTINGS
+    // OS: T
+    ACTION_BATTERY_USAGE_DAILY_SHOW_ALL = 1800;
+
+    // Custom tag to log the battery history is loaded
+    // CATEGORY: SETTINGS
+    // OS: T
+    ACTION_BATTERY_HISTORY_LOADED = 1801;
+
+    // Custom tag to log the count of shown apps when battery usage is opened.
+    // CATEGORY: SETTINGS
+    // OS: T
+    ACTION_BATTERY_USAGE_SHOWN_APP_COUNT = 1802;
+
+    // Custom tag to log the count of hidden apps when battery usage is opened.
+    // CATEGORY: SETTINGS
+    // OS: T
+    ACTION_BATTERY_USAGE_HIDDEN_APP_COUNT = 1803;
 }
 
 /**
@@ -1179,7 +1243,7 @@
     // OS: 6.0
     DISPLAY = 46;
 
-    // OPEN: Settings > Display > Daydream
+    // OPEN: Settings > Display > Daydream (Screen saver)
     // CATEGORY: SETTINGS
     // OS: 6.0
     DREAM = 47;
@@ -3366,6 +3430,33 @@
     // CATEGORY: SETTINGS
     // OS: T
     LE_AUDIO_BROADCAST_SCAN_QR_CODE = 1926;
+
+    // OPEN: Settings > About phone > Limited Warranty
+    // CATEGORY: SETTINGS
+    // OS: T
+    LIMITED_WARRANTY_COUNTRY_LIST = 1927;
+
+    // OPEN: Settings > About phone > Limited Warranty > Click any country
+    // CATEGORY: SETTINGS
+    // OS: T
+    LIMITED_WARRANTY_DETAILS = 1928;
+
+    // OPEN: Settings > Sound > Clear Calling
+    CLEAR_CALLING = 1929;
+
+    // The dialog will show after successfully pairing one of the binaural hearing aids
+    // CATEGORY: SETTINGS
+    // OS: T
+    DIALOG_ACCESSIBILITY_HEARING_AID_PAIR_ANOTHER = 1930;
+
+    // OPEN: Settings > Apps > Battery optimized apps
+    // CATEGORY: SETTINGS
+    // OS: T
+    BATTERY_OPTIMIZED_APPS_LIST = 1931;
+
+    // OPEN: SUW choose a screen saver
+    // OS: T
+    SUW_DREAM = 1935;
 }
 
 // Battery Saver schedule types.
diff --git a/stats/enums/bluetooth/Android.bp b/stats/enums/bluetooth/Android.bp
index f8acb62..7f1b031 100644
--- a/stats/enums/bluetooth/Android.bp
+++ b/stats/enums/bluetooth/Android.bp
@@ -32,6 +32,9 @@
         "hfp/enums.proto",
         "smp/enums.proto",
     ],
+    apex_available: [
+        "com.android.btservices",
+    ],
     min_sdk_version: "30",
 }
 
diff --git a/stats/enums/jank/TEST_MAPPING b/stats/enums/jank/TEST_MAPPING
new file mode 100644
index 0000000..9d0b604
--- /dev/null
+++ b/stats/enums/jank/TEST_MAPPING
@@ -0,0 +1,27 @@
+{
+  "presubmit": [
+    {
+      "name": "FrameworksCoreTests",
+      "options": [
+        {
+          "include-filter": "com.android.internal.jank.InteractionJankMonitorTest"
+        },
+        {
+          "include-filter": "com.android.internal.jank.FrameTrackerTest"
+        },
+        {
+          "include-filter": "com.android.internal.util.LatencyTrackerTest"
+        },
+        {
+          "exclude-annotation": "androidx.test.filters.FlakyTest"
+        },
+        {
+          "exclude-annotation": "org.junit.Ignore"
+        }
+      ],
+      "file_patterns": [
+        "enums.proto"
+      ]
+    }
+  ]
+}
diff --git a/stats/enums/jank/enums.proto b/stats/enums/jank/enums.proto
new file mode 100644
index 0000000..b90d308
--- /dev/null
+++ b/stats/enums/jank/enums.proto
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+
+package android.jank;
+
+/**
+  * Enum used by UIInteractionFrameInfoReported.
+  */
+enum InteractionType {
+    UNKNOWN_INTERACTION = 0;
+    NOTIFICATION_SHADE_SWIPE = 1;
+    SHADE_SCROLL_FLING = 3;
+    SHADE_ROW_EXPAND = 4;
+    SHADE_ROW_SWIPE = 5;
+    SHADE_QS_EXPAND_COLLAPSE = 6;
+    SHADE_QS_SCROLL_SWIPE = 7;
+    LAUNCHER_APP_LAUNCH_FROM_RECENTS = 8;
+    LAUNCHER_APP_LAUNCH_FROM_ICON = 9;
+    LAUNCHER_APP_CLOSE_TO_HOME = 10;
+    LAUNCHER_APP_CLOSE_TO_PIP = 11;
+    LAUNCHER_QUICK_SWITCH = 12;
+    SHADE_HEADS_UP_APPEAR = 13;
+    SHADE_HEADS_UP_DISAPPEAR = 14;
+    SHADE_NOTIFICATION_ADD = 15;
+    SHADE_NOTIFICATION_REMOVE = 16;
+    SHADE_APP_LAUNCH = 17;
+    LOCKSCREEN_PASSWORD_APPEAR = 18;
+    LOCKSCREEN_PATTERN_APPEAR = 19;
+    LOCKSCREEN_PIN_APPEAR = 20;
+    LOCKSCREEN_PASSWORD_DISAPPEAR = 21;
+    LOCKSCREEN_PATTERN_DISAPPEAR = 22;
+    LOCKSCREEN_PIN_DISAPPEAR = 23;
+    LOCKSCREEN_TRANSITION_FROM_AOD = 24;
+    LOCKSCREEN_TRANSITION_TO_AOD = 25;
+    LAUNCHER_OPEN_ALL_APPS = 26;
+    LAUNCHER_ALL_APPS_SCROLL = 27;
+    LAUNCHER_APP_LAUNCH_FROM_WIDGET = 28;
+    SETTINGS_PAGE_SCROLL = 29;
+    LOCKSCREEN_UNLOCK_ANIMATION = 30;
+    SHADE_APP_LAUNCH_FROM_HISTORY_BUTTON = 31;
+    SHADE_APP_LAUNCH_FROM_MEDIA_PLAYER = 32;
+    SHADE_APP_LAUNCH_FROM_QS_TILE = 33;
+    SHADE_APP_LAUNCH_FROM_SETTINGS_BUTTON = 34;
+    STATUS_BAR_APP_LAUNCH_FROM_CALL_CHIP = 35;
+    PIP_TRANSITION = 36;
+    WALLPAPER_TRANSITION = 37;
+    USER_SWITCH = 38;
+    SPLASHSCREEN_AVD = 39;
+    SPLASHSCREEN_EXIT_ANIM = 40;
+    SCREEN_OFF = 41;
+    SCREEN_OFF_SHOW_AOD = 42;
+    ONE_HANDED_ENTER_TRANSITION = 43;
+    ONE_HANDED_EXIT_TRANSITION = 44;
+    UNFOLD_ANIM = 45;
+    SUW_LOADING_TO_SHOW_INFO_WITH_ACTIONS = 46;
+    SUW_SHOW_FUNCTION_SCREEN_WITH_ACTIONS = 47;
+    SUW_LOADING_TO_NEXT_FLOW = 48;
+    SUW_LOADING_SCREEN_FOR_STATUS = 49;
+    SPLIT_SCREEN_ENTER = 50;
+    SPLIT_SCREEN_EXIT = 51;
+    LOCKSCREEN_LAUNCH_CAMERA = 52;
+    SPLIT_SCREEN_RESIZE = 53;
+    SETTINGS_SLIDER = 54;
+    TAKE_SCREENSHOT = 55;
+    VOLUME_CONTROL = 56;
+    BIOMETRIC_PROMPT_TRANSITION = 57;
+    SETTINGS_TOGGLE = 58;
+    SHADE_DIALOG_OPEN = 59;
+    USER_DIALOG_OPEN = 60;
+    TASKBAR_EXPAND = 61;
+    TASKBAR_COLLAPSE = 62;
+    SHADE_CLEAR_ALL = 63;
+    LAUNCHER_UNLOCK_ENTRANCE_ANIMATION = 64;
+    LOCKSCREEN_OCCLUSION = 65;
+    reserved 2;
+}
+
+/**
+  * Enum used by UIActionLatencyReported.
+  */
+enum ActionType {
+    UNKNOWN_ACTION = 0;
+    ACTION_EXPAND_PANEL = 1;
+    ACTION_TOGGLE_RECENTS = 2;
+    ACTION_FINGERPRINT_WAKE_AND_UNLOCK = 3;
+    ACTION_CHECK_CREDENTIAL = 4;
+    ACTION_CHECK_CREDENTIAL_UNLOCKED = 5;
+    ACTION_TURN_ON_SCREEN = 6;
+    ACTION_ROTATE_SCREEN = 7;
+    ACTION_FACE_WAKE_AND_UNLOCK = 8;
+    ACTION_START_RECENTS_ANIMATION = 9;
+    ACTION_ROTATE_SCREEN_CAMERA_CHECK = 10;
+    ACTION_ROTATE_SCREEN_SENSOR = 11;
+    ACTION_LOCKSCREEN_UNLOCK = 12;
+    ACTION_USER_SWITCH = 13;
+    ACTION_SWITCH_DISPLAY_UNFOLD = 14;
+    ACTION_UDFPS_ILLUMINATE = 15;
+    ACTION_SHOW_BACK_ARROW = 16;
+    ACTION_LOAD_SHARE_SHEET = 17;
+    ACTION_SHOW_SELECTION_TOOLBAR = 18;
+    ACTION_FOLD_TO_AOD = 19;
+    ACTION_SHOW_VOICE_INTERACTION = 20;
+}
+
diff --git a/stats/enums/mms/enums.proto b/stats/enums/mms/enums.proto
new file mode 100644
index 0000000..273d62f
--- /dev/null
+++ b/stats/enums/mms/enums.proto
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+package android.mms;
+
+option java_outer_classname = "MmsProtoEnums";
+option java_multiple_files = true;
+
+// MMS send/download result codes.
+// See frameworks/base/telephony/java/android/telephony/SmsManager.java
+enum MmsResultEnum {
+  MMS_RESULT_ERROR_UNSPECIFIED = 0;
+  MMS_RESULT_SUCCESS = 1;
+  MMS_RESULT_ERROR_INVALID_APN = 2;
+  MMS_RESULT_ERROR_UNABLE_CONNECT_MMS = 3;
+  MMS_RESULT_ERROR_HTTP_FAILURE = 4;
+  MMS_RESULT_ERROR_IO_ERROR = 5;
+  MMS_RESULT_ERROR_RETRY = 6;
+  MMS_RESULT_ERROR_CONFIGURATION_ERROR = 7;
+  MMS_RESULT_ERROR_NO_DATA_NETWORK = 8;
+  MMS_RESULT_ERROR_INVALID_SUBSCRIPTION_ID = 9;
+  MMS_RESULT_ERROR_INACTIVE_SUBSCRIPTION = 10;
+  MMS_RESULT_ERROR_DATA_DISABLED = 11;
+}
\ No newline at end of file
diff --git a/stats/enums/server/enums.proto b/stats/enums/server/enums.proto
index 89f7010..7432c44 100644
--- a/stats/enums/server/enums.proto
+++ b/stats/enums/server/enums.proto
@@ -38,3 +38,16 @@
     // System server.
     SYSTEM_SERVER = 3;
 }
+
+enum DockStateEnum {
+    // Undocked. See {@link Intent.EXTRA_DOCK_STATE_UNDOCKED}.
+    DOCK_STATE_UNDOCKED = 0;
+    // Desk dock. See {@link Intent.EXTRA_DOCK_STATE_DESK}.
+    DOCK_STATE_DESK = 1;
+    // Car dock. See {@link Intent.EXTRA_DOCK_STATE_CAR}.
+    DOCK_STATE_CAR = 2;
+    // Analog (low end) desk dock. See {@link Intent.EXTRA_DOCK_STATE_LE_DESK}.
+    DOCK_STATE_LE_DESK = 3;
+    // Digital (high end) desk dock. See {@link Intent.EXTRA_DOCK_STATE_HE_DESK}.
+    DOCK_STATE_HE_DESK = 4;
+}
diff --git a/stats/enums/server/job/enums.proto b/stats/enums/server/job/enums.proto
index 2ef08a5..68d88a3 100644
--- a/stats/enums/server/job/enums.proto
+++ b/stats/enums/server/job/enums.proto
@@ -41,4 +41,6 @@
     CONSTRAINT_WITHIN_QUOTA = 10;
     CONSTRAINT_BACKGROUND_NOT_RESTRICTED = 11;
     CONSTRAINT_WITHIN_EXPEDITED_JOB_QUOTA = 12;
+    CONSTRAINT_TARE_WEALTH = 13;
+    CONSTRAINT_PREFETCH = 14;
 }