// Copyright (C) 2016 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";

option java_package = "com.android.internal.logging";
option java_outer_classname = "MetricsProto";

package com_android_internal_logging;

// Wrapper for System UI log events
message MetricsEvent {

  // Types of events
  enum Type {
    // Unknown
    TYPE_UNKNOWN = 0;

    // The view became visible to the user.
    TYPE_OPEN = 1;

    // The view became hidden.
    TYPE_CLOSE = 2;

    // The view switched to detail mode (most relevant for quick settings tiles and notifications)
    TYPE_DETAIL = 3;

    // The view or control was activated.
    TYPE_ACTION = 4;

    // The view or control was dismissed.
    TYPE_DISMISS = 5;

    // The view or control was updated.
    TYPE_UPDATE = 6;

    // Type for APP_TRANSITION event: The transition started a new
    // activity for which it's process wasn't running.
    TYPE_TRANSITION_COLD_LAUNCH = 7;

    // Type for APP_TRANSITION event: The transition started a new
    // activity for which it's process was already running.
    TYPE_TRANSITION_WARM_LAUNCH = 8;

    // Type for APP_TRANSITION event: The transition brought an
    // already existing activity to the front.
    TYPE_TRANSITION_HOT_LAUNCH = 9;

    // The action was successful
    TYPE_SUCCESS = 10;

    // The action failed
    TYPE_FAILURE = 11;

    // Type for APP_TRANSITION_REPORTED_DRAWN event: The activity was started without restoring from
    // a bundle.
    TYPE_TRANSITION_REPORTED_DRAWN_NO_BUNDLE = 12;

    // Type for APP_TRANSITION_REPORTED_DRAWN event: The activity was started with restoring from
    // a bundle.
    TYPE_TRANSITION_REPORTED_DRAWN_WITH_BUNDLE = 13;

    // The view switched to summary mode (most relevant for notifications)
    TYPE_COLLAPSE = 14;

    // The notification was adjusted by the assistant. Enum value is
    // out of sequence due to b/122737498.
    TYPE_NOTIFICATION_ASSISTANT_ADJUSTMENT = 1573;
  }

  // Types of alerts, as bit field values
  enum Alert {
    // Vibrate the device.
    ALERT_BUZZ = 1;

    // Make sound through the speaker.
    ALERT_BEEP = 2;

    // Flash a notificaiton light.
    ALERT_BLINK = 4;
  }

  // Reasons that a notification might be dismissed.
  enum DismissReason {
    // from android.service.notification.NotificationListenerService

    // Notification was canceled by the status bar reporting a notification click
    REASON_CLICK = 1;

    // Notification was canceled by the status bar reporting a user dismissal.
    REASON_CANCEL = 2;

    // Notification was canceled by the status bar reporting a user dismiss all.
    REASON_CANCEL_ALL = 3;

    // Notification was canceled by the status bar reporting an inflation error.
    REASON_ERROR = 4;

    // Notification was canceled by the package manager modifying the package.
    REASON_PACKAGE_CHANGED = 5;

    // Notification was canceled by the owning user context being stopped.
    REASON_USER_STOPPED = 6;

    // Notification was canceled by the user banning the package.
    REASON_PACKAGE_BANNED = 7;

    // Notification was canceled by the app canceling this specific notification.
    REASON_APP_CANCEL = 8;

    //Notification was canceled by the app cancelling all its notifications.
    REASON_APP_CANCEL_ALL = 9;

    // Notification was canceled by a listener reporting a user dismissal.
    REASON_LISTENER_CANCEL = 10;

    //Notification was canceled by a listener reporting a user dismiss all.
    REASON_LISTENER_CANCEL_ALL = 11;

    // Notification was canceled because it was a member of a canceled group.
    REASON_GROUP_SUMMARY_CANCELED = 12;

    // Notification was canceled because it was an invisible member of a group.
    REASON_GROUP_OPTIMIZATION = 13;

    // Notification was canceled by the device administrator suspending the package.
    REASON_PACKAGE_SUSPENDED = 14;

    // Notification was canceled by the owning managed profile being turned off.
    REASON_PROFILE_TURNED_OFF = 15;

    // Autobundled summary notification was canceled because its group was unbundled.
    REASON_UNAUTOBUNDLED = 16;

    // Notification was canceled by the user banning the channel.
    REASON_CHANNEL_BANNED = 17;

    // Notification was snoozed.
    REASON_SNOOZED = 18;

    // Notification was canceled due to timeout.
    REASON_TIMEOUT = 19;
  }

  // Subtypes of camera events for ACTION_CAMERA_EVENT
  enum CameraEvent {
    // A back-facing camera was used
    CAMERA_BACK_USED = 0;

    // A front-facing camera was used
    CAMERA_FRONT_USED = 1;

    // An external camera was used
    CAMERA_EXTERNAL_USED = 2;
  }

  // TextClassifier entity types.
  enum TextClassifierEntityType {
    TEXT_CLASSIFIER_TYPE_UNKNOWN = 1;
    TEXT_CLASSIFIER_TYPE_OTHER = 2;
    TEXT_CLASSIFIER_TYPE_EMAIL = 3;
    TEXT_CLASSIFIER_TYPE_PHONE = 4;
    TEXT_CLASSIFIER_TYPE_ADDRESS = 5;
    TEXT_CLASSIFIER_TYPE_URL = 6;
  }

  // Selection invocation methods. Used as sub-type for TEXT_SELECTION_SESSION events.
  enum TextSelectionInvocationMethod {
    TEXT_SELECTION_INVOCATION_UNKNOWN = 0;
    TEXT_SELECTION_INVOCATION_MANUAL = 1;
    TEXT_SELECTION_INVOCATION_LINK = 2;
  }

  // Access method for hidden API events. Type of data tagged with
  // FIELD_HIDDEN_API_ACCESS_METHOD.
  // This must be kept in sync with enum AccessMethod in art/runtime/hidden_api.h
  enum HiddenApiAccessMethod {
    ACCESS_METHOD_NONE = 0; // never logged, included for completeness
    ACCESS_METHOD_REFLECTION = 1;
    ACCESS_METHOD_JNI = 2;
    ACCESS_METHOD_LINKING = 3; // never logged, included for completeness
  }

  enum HardwareType {
        HARDWARE_UNKNOWN = 0;
        HARDWARE_MICROPHONE = 1;
        HARDWARE_CODEC = 2;
        HARDWARE_SPEAKER = 3;
        HARDWARE_FINGERPRINT = 4;
    }

    enum HardwareFailureCode {
        HARDWARE_FAILURE_UNKNOWN = 0;
        HARDWARE_FAILURE_COMPLETE = 1;
        HARDWARE_FAILURE_SPEAKER_HIGH_Z = 2;
        HARDWARE_FAILURE_SPEAKER_SHORT = 3;
        HARDWARE_FAILURE_FINGERPRINT_SENSOR_BROKEN = 4;
        HARDWARE_FAILURE_FINGERPRINT_TOO_MANY_DEAD_PIXELS = 5;
    }

    enum IoOperation {
        IOOP_UNKNOWN = 0;
        IOOP_READ = 1;
        IOOP_WRITE = 2;
        IOOP_UNMAP = 3;
        IOOP_SYNC = 4;
    }

  // Subtypes of notifications blocking helper view
  // (NOTIFICATION_BLOCKING_HELPER).
  enum NotificationBlockingHelper {
    BLOCKING_HELPER_UNKNOWN = 0;
    BLOCKING_HELPER_DISPLAY = 1;
    BLOCKING_HELPER_DISMISS = 2;
    // When the view of the notification blocking helper was triggered by
    // system.
    BLOCKING_HELPER_TRIGGERED_BY_SYSTEM = 3;
    // "block" was clicked.
    BLOCKING_HELPER_CLICK_BLOCKED = 4;
    // "stay silent" was clicked.
    BLOCKING_HELPER_CLICK_STAY_SILENT = 5;
    // "alert me" was clicked.
    BLOCKING_HELPER_CLICK_ALERT_ME = 6;
    // "undo" was clicked (enables the user to undo "stop notification" action).
    BLOCKING_HELPER_CLICK_UNDO = 7;
  }

  // The (visual) location of a Notification.
  enum NotificationLocation {
    LOCATION_UNKNOWN = 0;
    LOCATION_FIRST_HEADS_UP = 1; // visible heads-up
    LOCATION_HIDDEN_TOP = 2; // hidden/scrolled away on the top
    LOCATION_MAIN_AREA = 3; // visible in the shade
    LOCATION_BOTTOM_STACK_PEEKING = 4; // in the bottom stack, and peeking
    LOCATION_BOTTOM_STACK_HIDDEN = 5; // in the bottom stack, and hidden
    LOCATION_GONE = 6; // the view isn't laid out at all
  }

  // Known visual elements: views or controls.
  enum View {
    // Unknown view
    VIEW_UNKNOWN = 0;

    // OBSOLETE
    MAIN_SETTINGS = 1;

    // OPEN: Settings > Accessibility
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACCESSIBILITY = 2;

    // OPEN: Settings > Accessibility > Captions
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACCESSIBILITY_CAPTION_PROPERTIES = 3;

    // OPEN: Settings > Accessibility > [Service]
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACCESSIBILITY_SERVICE = 4;

    // OPEN: Settings > Accessibility > Color correction
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACCESSIBILITY_TOGGLE_DALTONIZER = 5;

    // OPEN: Settings > Accessibility > Accessibility shortcut
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACCESSIBILITY_TOGGLE_GLOBAL_GESTURE = 6;

    // OPEN: Settings > Accessibility > Magnification gestures (Renamed in O)
    // OPEN: Settings > Accessibility > Magnification > Magnify with triple-tap
    // OPEN: Settings > Accessibility > Magnification > Magnify with button
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION = 7;

    // OPEN: Settings > Accounts
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACCOUNT = 8;

    // OPEN: Settings > Accounts > [Single Account Sync Settings]
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACCOUNTS_ACCOUNT_SYNC = 9;

    // OPEN: Settings > Accounts > Add an account
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACCOUNTS_CHOOSE_ACCOUNT_ACTIVITY = 10;

    // OPEN: Settings > Accounts > [List of accounts when more than one]
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACCOUNTS_MANAGE_ACCOUNTS = 11;

    // OPEN: Settings > Cellular network settings > APNs
    // CATEGORY: SETTINGS
    // OS: 6.0
    APN = 12;

    // OPEN: Settings > More > Cellular network settings > APNs > [Edit APN]
    // CATEGORY: SETTINGS
    // OS: 6.0
    APN_EDITOR = 13;

    // OBSOLETE
    APP_OPS_DETAILS = 14;

    // OBSOLETE
    APP_OPS_SUMMARY = 15;

    // OBSOLETE
    APPLICATION = 16;

    // OPEN: Settings > Apps > Configure apps > App links > [App]
    // CATEGORY: SETTINGS
    // OS: 6.0
    APPLICATIONS_APP_LAUNCH = 17;

    // OBSOLETE
    APPLICATIONS_APP_PERMISSION = 18;

    // OPEN: Settings > Internal storage > Apps storage > [App]
    // CATEGORY: SETTINGS
    // OS: 6.0
    APPLICATIONS_APP_STORAGE = 19;

    // OPEN: Settings > Apps > [App info]
    // CATEGORY: SETTINGS
    // OS: 6.0
    APPLICATIONS_INSTALLED_APP_DETAILS = 20;

    // OPEN: Settings > Memory > App usage > [App Memory usage]
    // CATEGORY: SETTINGS
    // OS: 6.0
    APPLICATIONS_PROCESS_STATS_DETAIL = 21;

    // OBSOLETE
    APPLICATIONS_PROCESS_STATS_MEM_DETAIL = 22;

    // OPEN: Settings > Memory > App usage
    // CATEGORY: SETTINGS
    // OS: 6.0
    APPLICATIONS_PROCESS_STATS_UI = 23;

    // OPEN: Settings > Bluetooth
    // CATEGORY: SETTINGS
    // OS: 6.0
    BLUETOOTH = 24;

    // OPEN: Choose Bluetooth device (ex: when sharing)
    // CATEGORY: SETTINGS
    // OS: 6.0
    BLUETOOTH_DEVICE_PICKER = 25;

    // OBSOLETE
    BLUETOOTH_DEVICE_PROFILES = 26;

    // OPEN: Settings > Security > Choose screen lock
    // CATEGORY: SETTINGS
    // OS: 6.0
    CHOOSE_LOCK_GENERIC = 27;

    // OPEN: Settings > Security > Choose screen lock > Choose your password
    // CATEGORY: SETTINGS
    // OS: 6.0
    CHOOSE_LOCK_PASSWORD = 28;

    // OPEN: Settings > Security > Choose screen lock > Choose your pattern
    // CATEGORY: SETTINGS
    // OS: 6.0
    CHOOSE_LOCK_PATTERN = 29;

    // OPEN: Settings > Security > Choose screen lock > Confirm your password
    // CATEGORY: SETTINGS
    // OS: 6.0
    CONFIRM_LOCK_PASSWORD = 30;

    // OPEN: Settings > Security > Choose screen lock > Confirm your pattern
    // CATEGORY: SETTINGS
    // OS: 6.0
    CONFIRM_LOCK_PATTERN = 31;

    // OPEN: Settings > Security > Encrypt phone
    // CATEGORY: SETTINGS
    // OS: 6.0
    CRYPT_KEEPER = 32;

    // OPEN: Settings > Security > Encrypt phone > Confirm
    // CATEGORY: SETTINGS
    // OS: 6.0
    CRYPT_KEEPER_CONFIRM = 33;

    // OPEN: Settings > Search results
    // CATEGORY: SETTINGS
    // OS: 6.0
    DASHBOARD_SEARCH_RESULTS = 34;

    // OPEN: Settings (Root page)
    // CATEGORY: SETTINGS
    // OS: 6.0
    DASHBOARD_SUMMARY = 35;

    // OBSOLETE
    DATA_USAGE = 36;

    // OPEN: Settings > Data usage
    // CATEGORY: SETTINGS
    // OS: 6.0
    DATA_USAGE_SUMMARY = 37;

    // OPEN: Settings > Date & time
    // CATEGORY: SETTINGS
    // OS: 6.0
    DATE_TIME = 38;

    // OPEN: Settings > Developer options
    // CATEGORY: SETTINGS
    // OS: 6.0
    DEVELOPMENT = 39;

    // OPEN: Settings > About phone
    // CATEGORY: SETTINGS
    // OS: 6.0
    DEVICEINFO = 40;

    // OPEN: Settings > About phone > Status > IMEI information
    // CATEGORY: SETTINGS
    // OS: 6.0
    DEVICEINFO_IMEI_INFORMATION = 41;

    // OPEN: Settings > Internal storage
    // CATEGORY: SETTINGS
    // OS: 6.0
    DEVICEINFO_STORAGE = 42;

    // OPEN: Settings > About phone > Status > SIM status
    // CATEGORY: SETTINGS
    // OS: 6.0
    DEVICEINFO_SIM_STATUS = 43;

    // OPEN: Settings > About phone > Status
    // CATEGORY: SETTINGS
    // OS: 6.0
    DEVICEINFO_STATUS = 44;

    // OBSOLETE
    DEVICEINFO_USB = 45;

    // OPEN: Settings > Display
    // CATEGORY: SETTINGS
    // OS: 6.0
    DISPLAY = 46;

    // OPEN: Settings > Display > Daydream
    // CATEGORY: SETTINGS
    // OS: 6.0
    DREAM = 47;

    // OPEN: Settings > Security > Screen lock > Secure start-up
    // CATEGORY: SETTINGS
    // OS: 6.0
    ENCRYPTION = 48;

    // OPEN: Settings > Security > Nexus Imprint
    // CATEGORY: SETTINGS
    // OS: 6.0
    FINGERPRINT = 49;

    // OBSOLETE
    FINGERPRINT_ENROLL = 50;

    // OPEN: Settings > Battery > History details
    // CATEGORY: SETTINGS
    // OS: 6.0
    FUELGAUGE_BATTERY_HISTORY_DETAIL = 51;

    // OPEN: Settings > Battery > Battery saver
    // CATEGORY: SETTINGS
    // OS: 6.0
    FUELGAUGE_BATTERY_SAVER = 52;

    // OPEN: Settings > Battery > [App Use details]
    // CATEGORY: SETTINGS
    // OS: 6.0
    FUELGAUGE_POWER_USAGE_DETAIL = 53;

    // OPEN: Settings > Battery
    // CATEGORY: SETTINGS
    // OS: 6.0
    FUELGAUGE_POWER_USAGE_SUMMARY = 54;

    // OPEN: Settings > Home
    // CATEGORY: SETTINGS
    // OS: 6.0
    HOME = 55;

    // OPEN: Settings > Security > SIM card lock settings
    // CATEGORY: SETTINGS
    // OS: 6.0
    ICC_LOCK = 56;

    // OPEN: Settings > Language & input
    // CATEGORY: SETTINGS
    // OS: 6.0
    INPUTMETHOD_LANGUAGE = 57;

    // OPEN: Settings > Language & input > Physical keyboard
    // CATEGORY: SETTINGS
    // OS: 6.0
    INPUTMETHOD_KEYBOARD = 58;

    // OPEN: Settings > Language & input > Spell checker
    // CATEGORY: SETTINGS
    // OS: 6.0
    INPUTMETHOD_SPELL_CHECKERS = 59;

    // OBSOLETE
    INPUTMETHOD_SUBTYPE_ENABLER = 60;

    // OPEN: Settings > Language & input > Personal dictionary
    // CATEGORY: SETTINGS
    // OS: 6.0
    INPUTMETHOD_USER_DICTIONARY = 61;

    // OPEN: Settings > Language & input > Add word
    // CATEGORY: SETTINGS
    // OS: 6.0
    INPUTMETHOD_USER_DICTIONARY_ADD_WORD = 62;

    // OPEN: Settings > Location
    // CATEGORY: SETTINGS
    // OS: 6.0
    LOCATION = 63;

    // OPEN: Settings > Location > Location mode
    // CATEGORY: SETTINGS
    // OS: 6.0
    LOCATION_MODE = 64;

    // OPEN: Settings > Apps
    // CATEGORY: SETTINGS
    // OS: 6.0
    MANAGE_APPLICATIONS = 65;

    // OPEN: Settings > Backup & reset > Factory data reset
    // CATEGORY: SETTINGS
    // OS: 6.0
    MASTER_CLEAR = 66;

    // OPEN: Settings > Backup & reset > Factory data reset > Confirm
    // CATEGORY: SETTINGS
    // OS: 6.0
    MASTER_CLEAR_CONFIRM = 67;

    // OPEN: Settings > Data usage > Network restrictions
    // CATEGORY: SETTINGS
    // OS: 6.0
    NET_DATA_USAGE_METERED = 68;

    // OPEN: Settings > More > Android Beam
    // CATEGORY: SETTINGS
    // OS: 6.0
    NFC_BEAM = 69;

    // OPEN: Settings > Tap & pay
    // CATEGORY: SETTINGS
    // OS: 6.0
    NFC_PAYMENT = 70;

    // OPEN: Settings > Sound & notification
    // CATEGORY: SETTINGS
    // OS: 6.0
    NOTIFICATION = 71;

    // OPEN: Settings > Sound & notification > App notifications > [App]
    // CATEGORY: SETTINGS
    // OS: 6.0
    NOTIFICATION_APP_NOTIFICATION = 72;

    // OPEN: Settings > Sound & notification > Other sounds
    // CATEGORY: SETTINGS
    // OS: 6.0
    NOTIFICATION_OTHER_SOUND = 73;

    // OBSOLETE
    NOTIFICATION_REDACTION = 74;

    // OPEN: Settings Widget > Notification log
    // CATEGORY: SETTINGS
    // OS: 6.0
    NOTIFICATION_STATION = 75;

    // OPEN: Settings > Sound & notification > Do not disturb
    // CATEGORY: SETTINGS
    // OS: 6.0
    NOTIFICATION_ZEN_MODE = 76;

    // OPEN: OBSOLETE
    OWNER_INFO = 77;

    // OPEN: Print job notification > Print job settings
    // CATEGORY: SETTINGS
    // OS: 6.0
    PRINT_JOB_SETTINGS = 78;

    // OPEN: Settings > Printing > [Print Service]
    // CATEGORY: SETTINGS
    // OS: 6.0
    PRINT_SERVICE_SETTINGS = 79;

    // OPEN: Settings > Printing
    // CATEGORY: SETTINGS
    // OS: 6.0
    PRINT_SETTINGS = 80;

    // OPEN: Settings > Backup & reset
    // CATEGORY: SETTINGS
    // OS: 6.0
    PRIVACY = 81;

    //OBSOLETE
    PROXY_SELECTOR = 82;

    // OPEN: Settings > Backup & reset > Network settings reset
    // CATEGORY: SETTINGS
    // OS: 6.0
    RESET_NETWORK = 83;

    // OPEN: Settings > Backup & reset > Network settings reset > Confirm
    // CATEGORY: SETTINGS
    // OS: 6.0
    RESET_NETWORK_CONFIRM = 84;

    // OPEN: Settings > Developer Options > Running Services
    // CATEGORY: SETTINGS
    // OS: 6.0
    RUNNING_SERVICE_DETAILS = 85;

    // OPEN: Settings > Security > Screen pinning
    // CATEGORY: SETTINGS
    // OS: 6.0
    SCREEN_PINNING = 86;

    // OPEN: Settings > Security
    // CATEGORY: SETTINGS
    // OS: 6.0
    SECURITY = 87;

    // OPEN: Settings > SIM cards
    // CATEGORY: SETTINGS
    // OS: 6.0
    SIM = 88;

    // OBSOLETE
    TESTING = 89;

    // OPEN: Settings > More > Tethering & portable hotspot
    // CATEGORY: SETTINGS
    // OS: 6.0
    TETHER = 90;

    // OPEN: Settings > Security > Trust agents
    // CATEGORY: SETTINGS
    // OS: 6.0
    TRUST_AGENT = 91;

    // OPEN: Settings > Security > Trusted credentials
    // CATEGORY: SETTINGS
    // OS: 6.0
    TRUSTED_CREDENTIALS = 92;

    // OPEN: Settings > Language & input > TTS output > [Engine] > Settings
    // CATEGORY: SETTINGS
    // OS: 6.0
    TTS_ENGINE_SETTINGS = 93;

    // OPEN: Settings > Language & input > Text-to-speech output
    // CATEGORY: SETTINGS
    // OS: 6.0
    TTS_TEXT_TO_SPEECH = 94;

    // OPEN: Settings > Security > Apps with usage access
    // CATEGORY: SETTINGS
    // OS: 6.0
    USAGE_ACCESS = 95;

    // OPEN: Settings > Users
    // CATEGORY: SETTINGS
    // OS: 6.0
    USER = 96;

    // OPEN: Settings > Users > [Restricted profile app & content access]
    // CATEGORY: SETTINGS
    // OS: 6.0
    USERS_APP_RESTRICTIONS = 97;

    // OPEN: Settings > Users > [User settings]
    // CATEGORY: SETTINGS
    // OS: 6.0
    USER_DETAILS = 98;

    // OBSOLETE
    VOICE_INPUT = 99;

    // OPEN: Settings > More > VPN
    // CATEGORY: SETTINGS
    // OS: 6.0
    VPN = 100;

    // OPEN: Settings > Display > Choose wallpaper from
    // CATEGORY: SETTINGS
    // OS: 6.0
    WALLPAPER_TYPE = 101;

    // OPEN: Settings > Display > Cast
    // CATEGORY: SETTINGS
    // OS: 6.0
    WFD_WIFI_DISPLAY = 102;

    // OPEN: Settings > Wi-Fi
    // CATEGORY: SETTINGS
    // OS: 6.0
    WIFI = 103;

    // OPEN: Settings > Wi-Fi > Advanced Wi-Fi
    // CATEGORY: SETTINGS
    // OS: 6.0
    WIFI_ADVANCED = 104;

    // OPEN: Settings > More > Wi-Fi Calling
    // CATEGORY: SETTINGS
    // OS: 6.0
    WIFI_CALLING = 105;

    // OPEN: Settings > Wi-Fi > Saved networks
    // CATEGORY: SETTINGS
    // OS: 6.0
    WIFI_SAVED_ACCESS_POINTS = 106;

    // OBSOLETE
    WIFI_APITEST = 107;

    // OBSOLETE
    WIFI_INFO = 108;

    // OPEN: Settings > Wi-Fi > Advanced Wi-Fi > Wi-Fi Direct
    // CATEGORY: SETTINGS
    // OS: 6.0
    WIFI_P2P = 109;

    // OPEN: Settings > More
    // CATEGORY: SETTINGS
    // OS: 6.0
    WIRELESS = 110;

    // OPEN: Quick Settings Panel
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_PANEL = 111;

    // OPEN: QS Airplane mode tile shown
    // ACTION: QS Airplane mode tile tapped
    //  SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_AIRPLANEMODE = 112;

    // OPEN: QS Bluetooth tile shown
    // ACTION: QS Bluetooth tile tapped
    //  SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_BLUETOOTH = 113;

    // OPEN: QS Cast tile shown
    // ACTION: QS Cast tile tapped
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_CAST = 114;

    // OPEN: QS Cellular tile shown
    // ACTION: QS Cellular tile tapped
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_CELLULAR = 115;

    // OPEN: QS Color inversion tile shown
    // ACTION: QS Color inversion tile tapped
    //  SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_COLORINVERSION = 116;

    // OPEN: QS Cellular tile > Cellular detail panel
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_DATAUSAGEDETAIL = 117;

    // OPEN: QS Do not disturb tile shown
    // ACTION: QS Do not disturb tile tapped
    //  SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_DND = 118;

    // OPEN: QS Flashlight tile shown
    // ACTION: QS Flashlight tile tapped
    //  SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_FLASHLIGHT = 119;

    // OPEN: QS Hotspot tile shown
    // ACTION: QS Hotspot tile tapped
    //  SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_HOTSPOT = 120;

    // OPEN: QS 3P tile shown
    // ACTION: QS 3P tile tapped
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_INTENT = 121;

    // OPEN: QS Location tile shown
    // ACTION: QS Location tile tapped
    //  SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_LOCATION = 122;

    // OPEN: QS Rotation tile shown
    // ACTION: QS Rotation tile tapped
    //  SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_ROTATIONLOCK = 123;

    // OBSOLETE
    QS_USERDETAILITE = 124;

    // OPEN: QS User list panel
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_USERDETAIL = 125;

    // OPEN: QS WiFi tile shown
    // ACTION: QS WiFi tile tapped
    //  SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_WIFI = 126;

    // OPEN: Notification Panel (including lockscreen)
    // CATEGORY: NOTIFICATION
    // OS: 5.1.1
    NOTIFICATION_PANEL = 127;

    // OPEN: Notification in panel became visible.
    //   PACKAGE: App that posted the notification.
    // ACTION: Notification is tapped.
    //   PACKAGE: App that posted the notification
    // DETAIL: Notification is expanded by user.
    //   PACKAGE: App that posted the notification
    // COLLAPSE: Notification is collapsed by user.
    //   PACKAGE: App that posted the notification
    // DISMISS: Notification is dismissed.
    //   PACKAGE: App that posted the notification
    //   SUBTYPE: Dismiss reason from NotificationManagerService.java
    // CATEGORY: NOTIFICATION
    // OS: 5.1.1
    NOTIFICATION_ITEM = 128;

    // ACTION: User tapped notification action
    //   PACKAGE: App that posted the notification
    //   SUBTYPE: Index of action on notification
    // CATEGORY: NOTIFICATION
    // OS: 5.0
    NOTIFICATION_ITEM_ACTION = 129;

    // OPEN: Settings > Apps > Configure apps > App permissions
    // CATEGORY: SETTINGS
    // OS: 6.0
    APPLICATIONS_ADVANCED = 130;

    // OPEN: Settings > Location > Scanning
    // CATEGORY: SETTINGS
    // OS: 6.0
    LOCATION_SCANNING = 131;

    // OBSOLETE
    MANAGE_APPLICATIONS_ALL = 132;

    // OPEN: Settings > Sound & notification > App notifications
    // CATEGORY: SETTINGS
    // OS: 6.0
    MANAGE_APPLICATIONS_NOTIFICATIONS = 133;

    // ACTION: Settings > Wi-Fi > Overflow > Add Network
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_WIFI_ADD_NETWORK = 134;

    // ACTION: Settings > Wi-Fi > [Long press network] > Connect to network
    //   SUBTYPE: true if connecting to a saved network, false if not
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_WIFI_CONNECT = 135;

    // ACTION: Settings > Wi-Fi > Overflow > Refresh
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_WIFI_FORCE_SCAN = 136;

    // ACTION: Settings > Wi-Fi > [Long press network] > Forget network
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_WIFI_FORGET = 137;

    // ACTION: Settings > Wi-Fi > Toggle off
    //   SUBTYPE: true if connected to network before toggle, false if not
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_WIFI_OFF = 138;

    // ACTION: Settings > Wi-Fi > Toggle on
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_WIFI_ON = 139;

    // OBSOLETE
    MANAGE_PERMISSIONS = 140;

    // OPEN: Settings > Sound & notification > DND > Priority only allows
    // CATEGORY: SETTINGS
    // OS: 6.0
    NOTIFICATION_ZEN_MODE_PRIORITY = 141;

    // OPEN: Settings > Sound & notification > DND > Automatic rules
    // CATEGORY: SETTINGS
    // OS: 6.0
    NOTIFICATION_ZEN_MODE_AUTOMATION = 142;

    // OPEN: Settings > Apps > Configure apps > App links
    // CATEGORY: SETTINGS
    // OS: 6.0
    MANAGE_DOMAIN_URLS = 143;

    // OPEN: Settings > Sound & notification > DND > [Time based rule]
    // CATEGORY: SETTINGS
    // OS: 6.0
    NOTIFICATION_ZEN_MODE_SCHEDULE_RULE = 144;

    // OPEN: Settings > Sound & notification > DND > [External rule]
    // CATEGORY: SETTINGS
    // OS: 6.0
    NOTIFICATION_ZEN_MODE_EXTERNAL_RULE = 145;

    // OPEN: Settings > Sound & notification > DND > [Event rule]
    // CATEGORY: SETTINGS
    // OS: 6.0
    NOTIFICATION_ZEN_MODE_EVENT_RULE = 146;

    // ACTION: App notification settings > Block Notifications or long press on
    // notification blocks.
    // CATEGORY: SETTINGS
    // OS: 9.0
    ACTION_BAN_APP_NOTES = 147;

    // ACTION: Notification shade > Dismiss all button
    // CATEGORY: NOTIFICATION
    // OS: 6.0
    ACTION_DISMISS_ALL_NOTES = 148;

    // OPEN: QS Do Not Disturb detail panel
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_DND_DETAILS = 149;

    // OPEN: QS Bluetooth detail panel
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_BLUETOOTH_DETAILS = 150;

    // OPEN: QS Cast detail panel
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_CAST_DETAILS = 151;

    // OPEN: QS Wi-Fi detail panel
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_WIFI_DETAILS = 152;

    // ACTION: QS Wi-Fi detail panel > Wi-Fi toggle
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_WIFI_TOGGLE = 153;

    // ACTION: QS Bluetooth detail panel > Bluetooth toggle
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_BLUETOOTH_TOGGLE = 154;

    // ACTION: QS Cellular detail panel > Cellular toggle
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_CELLULAR_TOGGLE = 155;

    // ACTION: QS User list panel > Select different user
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_SWITCH_USER = 156;

    // ACTION: QS Cast detail panel > Select cast device
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_CAST_SELECT = 157;

    // ACTION: QS Cast detail panel > Disconnect cast device
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_CAST_DISCONNECT = 158;

    // ACTION: Settings > Bluetooth > Toggle
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_BLUETOOTH_TOGGLE = 159;

    // ACTION: Settings > Bluetooth > Overflow > Refresh
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_BLUETOOTH_SCAN = 160;

    // ACTION: Settings > Bluetooth > Overflow > Rename this device
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_BLUETOOTH_RENAME = 161;

    // ACTION: Settings > Bluetooth > Overflow > Show received files
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_BLUETOOTH_FILES = 162;

    // ACTION: QS DND details panel > Increase / Decrease exit time
    //   SUBTYPE: true is increase, false is decrease
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_DND_TIME = 163;

    // ACTION: QS DND details panel > [Exit condition]
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_DND_CONDITION_SELECT = 164;

    // ACTION: QS DND details panel > [DND mode]
    //  SUBTYPE: 1 is priority, 2 is silence, 3 is alarms only
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_DND_ZEN_SELECT = 165;

    // ACTION: QS DND detail panel > DND toggle
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    QS_DND_TOGGLE = 166;

    // ACTION: DND Settings > Priority only allows > Reminder toggle
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_ZEN_ALLOW_REMINDERS = 167;

    // ACTION: DND Settings > Priority only allows > Event toggle
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_ZEN_ALLOW_EVENTS = 168;

    // ACTION: DND Settings > Priority only allows > Messages
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_ZEN_ALLOW_MESSAGES = 169;

    // ACTION: DND Settings > Priority only allows > Calls
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_ZEN_ALLOW_CALLS = 170;

    // ACTION: DND Settings > Priority only allows > Repeat callers toggle
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_ZEN_ALLOW_REPEAT_CALLS = 171;

    // ACTION: DND Settings > Automatic rules > Add rule
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_ZEN_ADD_RULE = 172;

    // ACTION: DND Settings > Automatic rules > Add rule > OK
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_ZEN_ADD_RULE_OK = 173;

    // ACTION: DND Settings > Automatic rules > [Rule] > Delete rule
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_ZEN_DELETE_RULE = 174;

    // ACTION: DND Settings > Automatic rules > [Rule] > Delete rule > Delete
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_ZEN_DELETE_RULE_OK = 175;

    // ACTION: DND Settings > Automatic rules > [Rule] > Toggle
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_ZEN_ENABLE_RULE = 176;

    // ACTION: Settings > More > Airplane mode toggle
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_AIRPLANE_TOGGLE = 177;

    // ACTION: Settings > Data usage > Cellular data toggle
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_CELL_DATA_TOGGLE = 178;

    // OPEN: Settings > Sound & notification > Notification access
    // CATEGORY: SETTINGS
    // OS: 6.0
    NOTIFICATION_ACCESS = 179;

    // OPEN: Settings > Sound & notification > Do Not Disturb access
    // CATEGORY: SETTINGS
    // OS: 6.0
    NOTIFICATION_ZEN_MODE_ACCESS = 180;

    // OPEN: Settings > Apps > Configure apps > Default Apps
    // CATEGORY: SETTINGS
    // OS: 6.0
    APPLICATIONS_DEFAULT_APPS = 181;

    // OPEN: Settings > Internal storage > Apps storage
    // CATEGORY: SETTINGS
    // OS: 6.0
    APPLICATIONS_STORAGE_APPS = 182;

    // OPEN: Settings > Security > Usage access
    // CATEGORY: SETTINGS
    // OS: 6.0
    APPLICATIONS_USAGE_ACCESS_DETAIL = 183;

    // OPEN: Settings > Battery > Battery optimization
    // CATEGORY: SETTINGS
    // OS: 6.0
    APPLICATIONS_HIGH_POWER_APPS = 184;

    // OBSOLETE
    FUELGAUGE_HIGH_POWER_DETAILS = 185;

    // ACTION: Lockscreen > Unlock gesture
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 5.1.1
    ACTION_LS_UNLOCK = 186;

    // ACTION: Lockscreen > Pull shade open
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 5.1.1
    ACTION_LS_SHADE = 187;

    // ACTION: Lockscreen > Tap on lock, shows hint
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 5.1.1
    ACTION_LS_HINT = 188;

    // ACTION: Lockscreen > Camera
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 5.1.1
    ACTION_LS_CAMERA = 189;

    // ACTION: Lockscreen > Dialer
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 5.1.1
    ACTION_LS_DIALER = 190;

    // ACTION: Lockscreen > Tap on lock, locks phone
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 5.1.1
    ACTION_LS_LOCK = 191;

    // ACTION: Lockscreen > Tap on notification, false touch rejection
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 5.1.1
    ACTION_LS_NOTE = 192;

    // ACTION: Lockscreen > Swipe down to open quick settings
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_LS_QS = 193;

    // ACTION: Swipe down to open quick settings when unlocked
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_SHADE_QS_PULL = 194;

    // ACTION: Notification shade > Tap to open quick settings
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_SHADE_QS_TAP = 195;

    // OPEN: Lockscreen
    //   SUBTYPE: 0 is unsecure, 1 is secured by password / pattern / PIN
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 5.1.1
    LOCKSCREEN = 196;

    // OPEN: Lockscreen > Screen to enter password / pattern / PIN
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 5.1.1
    BOUNCER = 197;

    // OPEN: Screen turned on
    //   SUBTYPE: 2 is user action
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 5.1.1
    SCREEN = 198;

    // OPEN: Notification caused sound, vibration, and/or LED blink
    //   SUBTYPE: 1 is buzz, 2 is beep, blink is 4, or'd together
    // CATEGORY: NOTIFICATION
    // OS: 5.1.1
    NOTIFICATION_ALERT = 199;

    // ACTION: Lockscreen > Emergency Call button
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 5.1.1
    ACTION_EMERGENCY_CALL = 200;

    // OPEN: Settings > Apps > Configure > Default apps > Assist & voice input
    // CATEGORY: SETTINGS
    // OS: 6.0
    APPLICATIONS_MANAGE_ASSIST = 201;

    // OPEN: Settings > Memory
    // CATEGORY: SETTINGS
    // OS: 6.0
    PROCESS_STATS_SUMMARY = 202;

    // ACTION: Settings > Display > When device is rotated
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_ROTATION_LOCK = 203;

    // ACTION: Long press on notification to view controls
    // CATEGORY: NOTIFICATION
    // OS: 6.0
    ACTION_NOTE_CONTROLS = 204;

    // ACTION: Notificatoin controls > Info button
    // CATEGORY: NOTIFICATION
    // OS: 6.0
    ACTION_NOTE_INFO = 205;

    // ACTION: Notification controls > Settings button
    // CATEGORY: NOTIFICATION
    // OS: 6.0
    ACTION_APP_NOTE_SETTINGS = 206;

    // OPEN: Volume Dialog (with hardware buttons)
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    VOLUME_DIALOG = 207;

    // OPEN: Volume dialog > Expanded volume dialog (multiple sliders)
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    VOLUME_DIALOG_DETAILS = 208;

    // ACTION: Volume dialog > Adjust volume slider
    //   SUBTYPE: volume level (0-7)
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_VOLUME_SLIDER = 209;

    // ACTION: Volume dialog > Select non-active stream
    //   SUBTYPE: stream (defined in AudioSystem.java)
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_VOLUME_STREAM = 210;

    // ACTION: Adjust volume with hardware key
    //   SUBTYPE: volume level (0-7)
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_VOLUME_KEY = 211;

    // ACTION: Volume dialog > Mute a stream by tapping icon
    //   SUBTYPE: mute is 1, audible is 2
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_VOLUME_ICON = 212;

    // ACTION: Volume dialog > Change ringer mode by tapping icon
    //   SUBTYPE: 2 is audible, 3 is vibrate
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_RINGER_MODE = 213;

    // ACTION: Chooser shown (share target, file open, etc.)
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_ACTIVITY_CHOOSER_SHOWN = 214;

    // ACTION: Chooser > User taps an app target
    //   SUBTYPE: Index of target
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_ACTIVITY_CHOOSER_PICKED_APP_TARGET = 215;

    // ACTION: Chooser > User taps a service target
    //   SUBTYPE: Index of target
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_ACTIVITY_CHOOSER_PICKED_SERVICE_TARGET = 216;

    // ACTION: Chooser > User taps a standard target
    //   SUBTYPE: Index of target
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_ACTIVITY_CHOOSER_PICKED_STANDARD_TARGET = 217;

    // ACTION: QS Brightness Slider (with auto brightness disabled)
    //   SUBTYPE: slider value
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    ACTION_BRIGHTNESS = 218;

    // ACTION: QS Brightness Slider (with auto brightness enabled)
    //   SUBTYPE: slider value
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    ACTION_BRIGHTNESS_AUTO = 219;

    // OPEN: Settings > Display > Brightness Slider
    // CATEGORY: SETTINGS
    // OS: 6.0
    BRIGHTNESS_DIALOG = 220;

    // OPEN: Settings > Apps > Configure Apps > Display over other apps
    // CATEGORY: SETTINGS
    // OS: 6.0
    SYSTEM_ALERT_WINDOW_APPS = 221;

    // OPEN: Display has entered dream mode
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    DREAMING = 222;

    // OPEN: Display has entered ambient notification mode
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    DOZING = 223;

    // OPEN: Overview
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    OVERVIEW_ACTIVITY = 224;

    // OPEN: Settings > About phone > Legal information
    // CATEGORY: SETTINGS
    // OS: 6.0
    ABOUT_LEGAL_SETTINGS = 225;

    // OPEN: Settings > Search > Perform search
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_SEARCH_RESULTS = 226;

    // OPEN: Settings > System UI Tuner
    // CATEGORY: SETTINGS
    // OS: 6.0
    TUNER = 227;

    // OPEN: Settings > System UI Tuner > Quick Settings
    // CATEGORY: SETTINGS
    // OS: 6.0
    TUNER_QS = 228;

    // OPEN: Settings > System UI Tuner > Demo mode
    // CATEGORY: SETTINGS
    // OS: 6.0
    TUNER_DEMO_MODE = 229;

    // ACTION: Settings > System UI Tuner > Quick Settings > Move tile
    //   PACKAGE: Tile
    // CATEGORY: SETTINGS
    // OS: 6.0
    TUNER_QS_REORDER = 230;

    // ACTION: Settings > System UI Tuner > Quick Settings > Add tile
    //   PACKAGE: Tile
    // CATEGORY: SETTINGS
    // OS: 6.0
    TUNER_QS_ADD = 231;

    // ACTION: Settings > System UI Tuner > Quick Settings > Remove tile
    //   PACKAGE: Tile
    // CATEGORY: SETTINGS
    // OS: 6.0
    TUNER_QS_REMOVE = 232;

    // ACTION: Settings > System UI Tuner > Status bar > Enable icon
    //   PACKAGE: Icon
    // CATEGORY: SETTINGS
    // OS: 6.0
    TUNER_STATUS_BAR_ENABLE = 233;

    // ACTION: Settings > System UI Tuner > Status bar > Disable icon
    //   PACKAGE: Icon
    // CATEGORY: SETTINGS
    // OS: 6.0
    TUNER_STATUS_BAR_DISABLE = 234;

    // ACTION: Settings > System UI Tuner > Demo mode > Enable demo mode
    //   SUBTYPE: false is disabled, true is enabled
    // CATEGORY: SETTINGS
    // OS: 6.0
    TUNER_DEMO_MODE_ENABLED = 235;

    // ACTION: Settings > System UI Tuner > Demo mode > Show demo mode
    //   SUBTYPE: false is disabled, true is enabled
    // CATEGORY: SETTINGS
    // OS: 6.0
    TUNER_DEMO_MODE_ON = 236;

    // ACTION: Settings > System UI Tuner > Show embedded battery percentage
    //   SUBTYPE: 0 is disabled, 1 is enabled
    // CATEGORY: SETTINGS
    // OS: 6.0
    TUNER_BATTERY_PERCENTAGE = 237;

    // OPEN: Settings > Developer options > Inactive apps
    // CATEGORY: SETTINGS
    // OS: 6.0
    FUELGAUGE_INACTIVE_APPS = 238;

    // ACTION: Long press home to bring up assistant
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_ASSIST_LONG_PRESS = 239;

    // OPEN: Settings > Security > Nexus Imprint > Add Fingerprint
    // CATEGORY: SETTINGS
    // OS: 6.0
    FINGERPRINT_ENROLLING = 240;

    // OPEN: Fingerprint Enroll > Find Sensor
    // CATEGORY: SETTINGS
    // OS: 6.0
    FINGERPRINT_FIND_SENSOR = 241;

    // OPEN: Fingerprint Enroll > Fingerprint Enrolled!
    // CATEGORY: SETTINGS
    // OS: 6.0
    FINGERPRINT_ENROLL_FINISH = 242;

    // OPEN: Fingerprint Enroll introduction
    // CATEGORY: SETTINGS
    // OS: 6.0
    FINGERPRINT_ENROLL_INTRO = 243;

    // OPEN: Fingerprint Enroll onboarding
    // CATEGORY: SETTINGS
    // OS: 6.0
    FINGERPRINT_ENROLL_ONBOARD = 244;

    // OPEN: Fingerprint Enroll > Let's Start!
    // CATEGORY: SETTINGS
    // OS: 6.0
    FINGERPRINT_ENROLL_SIDECAR = 245;

    // OPEN: Fingerprint Enroll SUW > Let's Start!
    // CATEGORY: SETTINGS
    // OS: 6.0
    FINGERPRINT_ENROLLING_SETUP = 246;

    // OPEN: Fingerprint Enroll SUW > Find Sensor
    // CATEGORY: SETTINGS
    // OS: 6.0
    FINGERPRINT_FIND_SENSOR_SETUP = 247;

    // OPEN: Fingerprint Enroll SUW > Fingerprint Enrolled!
    // CATEGORY: SETTINGS
    // OS: 6.0
    FINGERPRINT_ENROLL_FINISH_SETUP = 248;

    // OPEN: Fingerprint Enroll SUW introduction
    // CATEGORY: SETTINGS
    // OS: 6.0
    FINGERPRINT_ENROLL_INTRO_SETUP = 249;

    // OPEN: Fingerprint Enroll SUW onboarding
    // CATEGORY: SETTINGS
    // OS: 6.0
    FINGERPRINT_ENROLL_ONBOARD_SETUP = 250;

    // ACTION: Add fingerprint > Enroll fingerprint
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_FINGERPRINT_ENROLL = 251;

    // ACTION: Authenticate using fingerprint
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_FINGERPRINT_AUTH = 252;

    // ACTION: Settings > Security > Nexus Imprint > [Fingerprint] > Delete
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_FINGERPRINT_DELETE = 253;

    // ACTION: Settings > Security > Nexus Imprint > [Fingerprint] > Rename
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_FINGERPRINT_RENAME = 254;

    // ACTION: Double tap camera shortcut
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_DOUBLE_TAP_POWER_CAMERA_GESTURE = 255;

    // ACTION: Double twist camera shortcut
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: 6.0
    ACTION_WIGGLE_CAMERA_GESTURE = 256;

    // OPEN: QS Work Mode tile shown
    // ACTION: QS Work Mode tile tapped
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: N
    QS_WORKMODE = 257;

    // OPEN: Settings > Developer Options > Background Check
    // CATEGORY: SETTINGS
    // OS: N
    BACKGROUND_CHECK_SUMMARY = 258;

    // OPEN: QS Lock tile shown
    // ACTION: QS Lock tile tapped
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: N
    QS_LOCK_TILE = 259;

    // OPEN: QS User Tile shown
    // CATEGORY: QUICK_SETTINGS
    // OS: N
    QS_USER_TILE = 260;

    // OPEN: QS Battery tile shown
    // CATEGORY: QUICK_SETTINGS
    // OS: N
    QS_BATTERY_TILE = 261;

    // OPEN: Settings > Sound > Do not disturb > Visual interruptions
    // CATEGORY: SETTINGS
    // OS: N
    NOTIFICATION_ZEN_MODE_VISUAL_INTERRUPTIONS = 262;

    // ACTION: Visual interruptions > No screen interuptions toggle
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_ZEN_ALLOW_WHEN_SCREEN_OFF = 263;

    // ACTION: Visual interruptions > No notification light toggle
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_ZEN_ALLOW_LIGHTS = 264;

    // OPEN: Settings > Notifications > [App] > Channel Notifications
    // CATEGORY: SETTINGS
    // OS: N
    NOTIFICATION_TOPIC_NOTIFICATION = 265;

    // ACTION: Settings > Apps > Default Apps > Select different SMS app
    //   PACKAGE: Selected SMS app
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_DEFAULT_SMS_APP_CHANGED = 266;

    // OPEN: QS Color modification tile shown
    // ACTION: QS Color modification tile tapped
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: N
    QS_COLOR_MATRIX = 267;

    // OPEN: QS Custom tile shown
    // ACTION: QS Work Mode tile tapped
    // CATEGORY: QUICK_SETTINGS
    // OS: N
    QS_CUSTOM = 268;

    // ACTION: Visual interruptions > Never turn off the screen toggle
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_ZEN_ALLOW_WHEN_SCREEN_ON = 269;

    // ACTION: Overview > Long-press task, drag to enter split-screen
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_WINDOW_DOCK_DRAG_DROP = 270;

    // ACTION: In App > Long-press Overview button to enter split-screen
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_WINDOW_DOCK_LONGPRESS = 271;

    // ACTION: In App > Swipe Overview button to enter split-screen
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_WINDOW_DOCK_SWIPE = 272;

    // ACTION: Launch profile-specific app > Confirm credentials
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    PROFILE_CHALLENGE = 273;

    // OPEN: QS Battery detail panel
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    QS_BATTERY_DETAIL = 274;

    // OPEN: Overview > History
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    OVERVIEW_HISTORY = 275;

    // ACTION: Overview > Page by tapping Overview button
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_OVERVIEW_PAGE = 276;

    // ACTION: Overview > Select app
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_OVERVIEW_SELECT = 277;

    // ACTION: View emergency info
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_VIEW_EMERGENCY_INFO = 278;

    // ACTION: Edit emergency info activity
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_EDIT_EMERGENCY_INFO = 279;

    // ACTION: Edit emergency info field
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_EDIT_EMERGENCY_INFO_FIELD = 280;

    // ACTION: Add emergency contact
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_ADD_EMERGENCY_CONTACT = 281;

    // ACTION: Delete emergency contact
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_DELETE_EMERGENCY_CONTACT = 282;

    // ACTION: Call emergency contact
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_CALL_EMERGENCY_CONTACT = 283;

    // OPEN: QS Data Saver tile shown
    // ACTION: QS Data Saver tile tapped
    // CATEGORY: QUICK_SETTINGS
    QS_DATA_SAVER = 284;

    // OPEN: Settings > Security > User credentials
    // CATEGORY: Settings
    // OS: N
    USER_CREDENTIALS = 285;

    // ACTION: In App (splitscreen) > Long-press Overview to exit split-screen
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_WINDOW_UNDOCK_LONGPRESS = 286;

    // Logged when the user scrolls through overview manually
    OVERVIEW_SCROLL = 287;

    // Logged when the overview times out automatically selecting an app
    OVERVIEW_SELECT_TIMEOUT = 288;

    // Logged when a user dismisses a task in overview
    OVERVIEW_DISMISS = 289;

    // Logged when the user modifying the notification importance slider.
    ACTION_MODIFY_IMPORTANCE_SLIDER = 290;

    // Logged when the user saves a modification to notification importance. Negative numbers
    // indicate the user lowered the importance; positive means they increased it.
    ACTION_SAVE_IMPORTANCE = 291;

    // ACTION: Long-press power button, then tap "Take bug report" option.
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_BUGREPORT_FROM_POWER_MENU_INTERACTIVE = 292;

    // ACTION: Long-press power button, then long-press "Take bug report" option.
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_BUGREPORT_FROM_POWER_MENU_FULL = 293;

    // ACTION: Settings -> Developer Options -> Take bug report -> Interactive report
    // CATEGORY: SETTINGS
    // OS: N
    // Interactive bug report initiated from Settings.
    ACTION_BUGREPORT_FROM_SETTINGS_INTERACTIVE = 294;

    // ACTION: Settings -> Developer Options -> Take bug report -> Full report
    // CATEGORY: SETTINGS
    // OS: N
    // Interactive bug report initiated from Settings.
    ACTION_BUGREPORT_FROM_SETTINGS_FULL = 295;

    // ACTION: User tapped notification action to cancel a bug report
    // CATEGORY: NOTIFICATION
    // OS: N
    ACTION_BUGREPORT_NOTIFICATION_ACTION_CANCEL = 296;

    // ACTION: User tapped notification action to launch bug report details screen
    // CATEGORY: NOTIFICATION
    // OS: N
    ACTION_BUGREPORT_NOTIFICATION_ACTION_DETAILS = 297;

    // ACTION: User tapped notification action to take adition screenshot on bug report
    // CATEGORY: NOTIFICATION
    // OS: N
    ACTION_BUGREPORT_NOTIFICATION_ACTION_SCREENSHOT = 298;

    // ACTION: User tapped notification to share bug report
    // CATEGORY: NOTIFICATION
    // OS: N
    ACTION_BUGREPORT_NOTIFICATION_ACTION_SHARE = 299;

    // ACTION: User changed bug report name using the details screen
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_BUGREPORT_DETAILS_NAME_CHANGED = 300;

    // ACTION: User changed bug report title using the details screen
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_BUGREPORT_DETAILS_TITLE_CHANGED = 301;

    // ACTION: User changed bug report description using the details screen
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_BUGREPORT_DETAILS_DESCRIPTION_CHANGED = 302;

    // ACTION: User tapped Save in the bug report details screen.
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_BUGREPORT_DETAILS_SAVED = 303;

    // ACTION: User tapped Cancel in the bug report details screen.
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_BUGREPORT_DETAILS_CANCELED = 304;

    // Tuner: Open/close calibrate dialog.
    TUNER_CALIBRATE_DISPLAY = 305;

    // Tuner: Open/close color and appearance.
    TUNER_COLOR_AND_APPEARANCE = 306;

    // Tuner: Apply calibrate dialog.
    ACTION_TUNER_CALIBRATE_DISPLAY_CHANGED = 307;

    // Tuner: Open/close night mode.
    TUNER_NIGHT_MODE = 308;

    // Tuner: Change night mode.
    ACTION_TUNER_NIGHT_MODE = 309;

    // Tuner: Change night mode auto.
    ACTION_TUNER_NIGHT_MODE_AUTO = 310;

    // Tuner: Change night mode adjust dark theme.
    ACTION_TUNER_NIGHT_MODE_ADJUST_DARK_THEME = 311;

    // Tuner: Change night mode adjust tint.
    ACTION_TUNER_NIGHT_MODE_ADJUST_TINT = 312;

    // Tuner: Change night mode adjust brightness.
    ACTION_TUNER_NIGHT_MODE_ADJUST_BRIGHTNESS = 313;

    // Tuner: Change do not disturb in volume panel.
    ACTION_TUNER_DO_NOT_DISTURB_VOLUME_PANEL = 314;

    // Tuner: Change do not disturb volume buttons shortcut.
    ACTION_TUNER_DO_NOT_DISTURB_VOLUME_SHORTCUT = 315;

    // Logs the action the user takes when an app crashed.
    ACTION_APP_CRASH = 316;

    // Logs the action the user takes when an app ANR'd.
    ACTION_APP_ANR = 317;

    // Logged when a user double taps the overview button to launch the previous task
    OVERVIEW_LAUNCH_PREVIOUS_TASK = 318;

    // Logged when we execute an app transition. This indicates the total delay from startActivity
    // until the app transition is starting to animate, in milliseconds.
    APP_TRANSITION_DELAY_MS = 319;

    // Logged when we execute an app transition. This indicates the reason why the transition
    // started. Must be one of ActivityManagerInternal.APP_TRANSITION_* reasons.
    APP_TRANSITION_REASON = 320;

    // Logged when we execute an app transition and we drew a starting window. This indicates the
    // delay from startActivity until the starting window was drawn.
    APP_TRANSITION_STARTING_WINDOW_DELAY_MS = 321;

    // Logged when we execute an app transition and all windows of the app got drawn. This indicates
    // the delay from startActivity until all windows have been drawn.
    APP_TRANSITION_WINDOWS_DRAWN_DELAY_MS = 322;

    // Logged when we execute an app transition. This indicates the component name of the current
    // transition.
    APP_TRANSITION_COMPONENT_NAME = 323;

    // Logged when we execute an app transition. This indicates whether the process was already
    // running.
    APP_TRANSITION_PROCESS_RUNNING = 324;

    // Logged when we execute an app transition. This indicates the device uptime in seconds when
    // the transition was executed.
    APP_TRANSITION_DEVICE_UPTIME_SECONDS = 325;

    // ACTION: app requested access to a scoped directory, user granted it.
    //   SUBTYPE: directory's index on Environment.STANDARD_DIRECTORIES
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_SCOPED_DIRECTORY_ACCESS_GRANTED_BY_FOLDER = 326;

    // ACTION: app requested access to a scoped directory, user denied it.
    //   SUBTYPE: directory's index on Environment.STANDARD_DIRECTORIES
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_SCOPED_DIRECTORY_ACCESS_DENIED_BY_FOLDER = 327;

    // ACTION: app requested access to a scoped directory, user granted it.
    //   PACKAGE: app that requested access
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_SCOPED_DIRECTORY_ACCESS_GRANTED_BY_PACKAGE = 328;

    // ACTION: app requested access to a scoped directory, user denied it.
    //   PACKAGE: app that requested access.
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_SCOPED_DIRECTORY_ACCESS_DENIED_BY_PACKAGE = 329;

    // ACTION: app requested access to a directory user has already been granted
    // access before.
    //   SUBTYPE: directory's index on Environment.STANDARD_DIRECTORIES.
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_SCOPED_DIRECTORY_ACCESS_ALREADY_GRANTED_BY_FOLDER = 330;

    // ACTION: app requested access to a directory user has already been granted
    // access before.
    //   PACKAGE: app that requested access.
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N
    ACTION_SCOPED_DIRECTORY_ACCESS_ALREADY_GRANTED_BY_PACKAGE = 331;

    // ACTION: Logged when the user slides a notification and reveals the gear
    // beneath it.
    // CATEGORY: NOTIFICATION
    // OS: N
    ACTION_REVEAL_GEAR = 332;

    // ACTION: Logged when the user taps on the gear beneath a notification.
    // CATEGORY: NOTIFICATION
    // OS: N
    ACTION_TOUCH_GEAR = 333;

    // Logs that the user has edited the enabled VR listeners.
    // CATEGORY: SETTINGS
    // OS: N
    VR_MANAGE_LISTENERS = 334;

    // Settings -> Accessibility -> Click after pointer stops moving
    // CATEGORY: SETTINGS
    // OS: N
    ACCESSIBILITY_TOGGLE_AUTOCLICK = 335;

    // Settings -> Sound
    // CATEGORY: SETTINGS
    // OS: N
    SOUND = 336;

    // Settings -> Notifications -> Gear
    // CATEGORY: SETTINGS
    // OS: N
    CONFIGURE_NOTIFICATION = 337;

    // Settings -> Wi-Fi -> Gear
    // CATEGORY: SETTINGS
    // OS: N
    CONFIGURE_WIFI = 338;

    // Settings -> Display -> Display size
    // OS: N
    DISPLAY_SCREEN_ZOOM = 339;

    // Settings -> Display -> Font size
    // CATEGORY: SETTINGS
    // OS: N
    ACCESSIBILITY_FONT_SIZE = 340;

    // Settings -> Data usage -> Cellular/Wi-Fi data usage
    // CATEGORY: SETTINGS
    // OS: N
    DATA_USAGE_LIST = 341;

    // Settings -> Data usage -> Billing cycle or DATA_USAGE_LIST -> Gear
    // CATEGORY: SETTINGS
    // OS: N
    BILLING_CYCLE = 342;

    // DATA_USAGE_LIST -> Any item or App info -> Data usage
    // CATEGORY: SETTINGS
    // OS: N
    APP_DATA_USAGE = 343;

    // Settings -> Language & input -> Language
    // CATEGORY: SETTINGS
    // OS: N
    USER_LOCALE_LIST = 344;

    // Settings -> Language & input -> Virtual keyboard
    // CATEGORY: SETTINGS
    // OS: N
    VIRTUAL_KEYBOARDS = 345;

    // Settings -> Language & input -> Physical keyboard
    // CATEGORY: SETTINGS
    // OS: N
    PHYSICAL_KEYBOARDS = 346;

    // Settings -> Language & input -> Virtual keyboard -> Add a virtual keyboard
    // CATEGORY: SETTINGS
    // OS: N
    ENABLE_VIRTUAL_KEYBOARDS = 347;

    // Settings -> Data usage -> Data Saver
    // CATEGORY: SETTINGS
    // OS: N
    DATA_SAVER_SUMMARY = 348;

    // Settings -> Data usage -> Data Saver -> Unrestricted data access
    // CATEGORY: SETTINGS
    // OS: N
    DATA_USAGE_UNRESTRICTED_ACCESS = 349;

    // Used for generic logging of Settings Preference Persistence, should not be used
    // outside SharedPreferencesLogger.
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_GENERIC_PACKAGE = 350;

    // Settings -> Apps -> Gear -> Special access
    SPECIAL_ACCESS = 351;

    // Logs that the user docks window via shortcut key.
    WINDOW_DOCK_SHORTCUTS = 352;

    // User already denied access to the request folder; action takes an integer
    // representing the folder's index on Environment.STANDARD_DIRECTORIES
    // (or -2 for root access, or -1 or unknown directory).
    ACTION_SCOPED_DIRECTORY_ACCESS_ALREADY_DENIED_BY_FOLDER = 353;

    // User already denied access to the request folder; action pass package name
    // of calling package.
    ACTION_SCOPED_DIRECTORY_ACCESS_ALREADY_DENIED_BY_PACKAGE = 354;

    // User denied access to the request folder and checked 'Do not ask again';
    // action takes an integer representing the folder's index on Environment.STANDARD_DIRECTORIES
    // (or -2 for root access, or -1 or unknown directory).
    ACTION_SCOPED_DIRECTORY_ACCESS_DENIED_AND_PERSIST_BY_FOLDER = 355;

    // User denied access to the request folder and checked 'Do not ask again';
    // action pass package name of calling package.
    ACTION_SCOPED_DIRECTORY_ACCESS_DENIED_AND_PERSIST_BY_PACKAGE = 356;

    // Logged when a user dismisses all task in overview
    OVERVIEW_DISMISS_ALL = 357;

    // Quick Settings -> Edit
    QS_EDIT = 358;

    // Quick Settings -> Edit -> Overflow -> Reset
    ACTION_QS_EDIT_RESET = 359;

    // QS -> Edit - Drag a tile out of the active tiles.
    // The _SPEC contains either the spec of the tile or
    // the package of the 3rd party app in the PKG field.
    ACTION_QS_EDIT_REMOVE_SPEC = 360;
    ACTION_QS_EDIT_REMOVE = 361;

    // QS -> Edit - Drag a tile into the active tiles.
    // The _SPEC contains either the spec of the tile or
    // the package of the 3rd party app in the PKG field.
    ACTION_QS_EDIT_ADD_SPEC = 362;
    ACTION_QS_EDIT_ADD = 363;

    // QS -> Edit - Drag a tile within the active tiles.
    // The _SPEC contains either the spec of the tile or
    // the package of the 3rd party app in the PKG field.
    ACTION_QS_EDIT_MOVE_SPEC = 364;
    ACTION_QS_EDIT_MOVE = 365;

    // Long-press on a QS tile. Tile spec in package field.
    ACTION_QS_LONG_PRESS = 366;

    // OPEN: SUW Welcome Screen -> Vision Settings
    // CATEGORY: SETTINGS
    // OS: N
    SUW_ACCESSIBILITY = 367;

    // OPEN: SUW Welcome Screen -> Vision Settings -> Magnification gestures (Renamed in O)
    // OPEN: SUW Welcome Screen -> Vision Settings -> Magnification -> Magnify with triple-tap
    // OPEN: SUW Welcome Screen -> Vision Settings -> Magnification -> Magnify with button
    // ACTION: New magnification gesture configuration is chosen
    //  SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: N
    SUW_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION = 368;

    // OPEN: SUW Welcome Screen -> Vision Settings -> Font size
    // ACTION: New font size is chosen
    //  SUBTYPE: 0 is small, 1 is default, 2 is large, 3 is largest
    // CATEGORY: SETTINGS
    // OS: N
    SUW_ACCESSIBILITY_FONT_SIZE = 369;

    // OPEN: SUW Welcome Screen -> Vision Settings -> Display size
    // ACTION: New display size is chosen
    //  SUBTYPE: 0 is small, 1 is default, 2 is large, 3 is larger, 4 is largest
    // CATEGORY: SETTINGS
    // OS: N
    SUW_ACCESSIBILITY_DISPLAY_SIZE = 370;

    // OPEN: SUW Welcome Screen -> Vision Settings -> TalkBack
    // ACTION: New screen reader configuration is chosen
    //  SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: N
    SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER = 371;

    // ------- Begin N Settings conditionals -----
    // Conditionals are the green bars at the top of the settings dashboard
    // All conditionals will have visible/hide events onResume/onPause
    // but they will also be used as extra ints in the
    // dismiss/expand/collapse/click/button events

    // swipe away conditional
    ACTION_SETTINGS_CONDITION_DISMISS = 372;

    // click on collapsed conditional or clicks expand button
    ACTION_SETTINGS_CONDITION_EXPAND = 373;

    // click collapse button on expanded conditional
    ACTION_SETTINGS_CONDITION_COLLAPSE = 374;

    // click main area of expanded conditional
    ACTION_SETTINGS_CONDITION_CLICK = 375;

    // click a direct button on expanded conditional
    ACTION_SETTINGS_CONDITION_BUTTON = 376;

    // Airplane mode on
    SETTINGS_CONDITION_AIRPLANE_MODE = 377;
    // AKA Data saver on
    SETTINGS_CONDITION_BACKGROUND_DATA = 378;
    // Battery saver on
    SETTINGS_CONDITION_BATTERY_SAVER = 379;
    // Cellular data off
    SETTINGS_CONDITION_CELLULAR_DATA = 380;
    // Do not disturb on
    SETTINGS_CONDITION_DND = 381;
    // Hotspot on
    SETTINGS_CONDITION_HOTSPOT = 382;
    // Work profile off
    SETTINGS_CONDITION_WORK_MODE = 383;

    // ------- Begin N Settings suggestions -----
    // Since suggestions come from system apps, suggestions will
    // have generic constants and the package providing the suggestion
    // will be put in the package field.  For suggestions in the Settings
    // package, the class name will be filled in instead (since settings
    // provides several suggetions).

    // Settings shown/hidden on main settings dashboard.
    // These are actually visibility events, but visible/hidden doesn't
    // take a package, so these are being logged as actions.
    ACTION_SHOW_SETTINGS_SUGGESTION = 384;
    ACTION_HIDE_SETTINGS_SUGGESTION = 385;

    // Click on a suggestion.
    ACTION_SETTINGS_SUGGESTION = 386;

    // Suggestion -> Overflow -> Remove.
    ACTION_SETTINGS_DISMISS_SUGGESTION = 387;

    // Settings > Apps > Gear > Special Access > Premium SMS access
    PREMIUM_SMS_ACCESS = 388;

    // Logged when the user resizes the docked stack. Arguments:
    // 0: Split 50:50
    // 1: Docked smaller
    // 2: Docked larger
    ACTION_WINDOW_DOCK_RESIZE = 389;

    // User exits split-screen by dragging the divider to the side of the screen. Arguments
    // 0: Docked gets maximized
    // 1: Fullscreen gets maximized
    ACTION_WINDOW_UNDOCK_MAX = 390;

    // User tried to dock an unresizable app.
    ACTION_WINDOW_DOCK_UNRESIZABLE = 391;

    // System UI Tuner > Other > Power notification controls
    TUNER_POWER_NOTIFICATION_CONTROLS = 392;

    // System UI Tuner > Other > Power notification controls > Toggle on/off
    ACTION_TUNER_POWER_NOTIFICATION_CONTROLS = 393;

    // Action: user enable / disabled data saver using Settings
    // OPEN: Settings -> Data Usage -> Data saver -> On/off toggle
    // VALUE: 1 for enabled, 0 for disabled
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_DATA_SAVER_MODE = 394;

    // User whitelisted an app for Data Saver mode; action pass package name of app
    // Action: user enable / disabled data saver using Settings
    // OPEN: Settings -> Data Usage -> Data saver -> Unrestricted data access > APP toggle turned on
    //       or
    //       Settings -> Apps -> APP -> Data usage -> Unrestricted data usage toggle turned on
    // VALUE: package name of APP
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_DATA_SAVER_WHITELIST = 395;

    // User blacklisted an app for Data Saver mode; action pass package name of app
    // OPEN: Settings -> Apps -> APP -> Data usage -> Background data toggle turned off
    // VALUE: package name of APP
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_DATA_SAVER_BLACKLIST = 396;

    // User opened a remote input view associated with a notification. Passes package name of app
    // that posted the notification. Note that this can also happen transiently during notification
    // reinflation.
    ACTION_REMOTE_INPUT_OPEN = 397;

    // User attempt to send data through a remote input view associated with a notification.
    // Passes package name of app that posted the notification. May succeed or fail.
    ACTION_REMOTE_INPUT_SEND = 398;

    // Failed attempt to send data through a remote input view associated with a
    // notification. Passes package name of app that posted the notification.
    ACTION_REMOTE_INPUT_FAIL = 399;

    // User closed a remote input view associated with a notification. Passes package name of app
    // that posted the notification. Note that this can also happen transiently during notification
    // reinflation.
    ACTION_REMOTE_INPUT_CLOSE = 400;

    // OPEN: Settings > Accounts > Work profile settings
    // CATEGORY: SETTINGS
    ACCOUNTS_WORK_PROFILE_SETTINGS = 401;

    // Settings -> Dev options -> Convert to file encryption
    CONVERT_FBE = 402;

    // Settings -> Dev options -> Convert to file encryption -> WIPE AND CONVERT...
    CONVERT_FBE_CONFIRM = 403;

    // Settings -> Dev options -> Running services
    RUNNING_SERVICES = 404;

    // The dialog shown by 3P intent to change current webview implementation.
    WEBVIEW_IMPLEMENTATION = 405;

    // Settings launched from expanded quick settings.
    ACTION_QS_EXPANDED_SETTINGS_LAUNCH = 406;

    // Notification expansion state toggled by the expand affordance.
    ACTION_NOTIFICATION_EXPANDER = 407;

    // Notification group expansion state toggled by the expand affordance.
    ACTION_NOTIFICATION_GROUP_EXPANDER = 408;


    // Notification expansion state toggled by the expand gesture.
    ACTION_NOTIFICATION_GESTURE_EXPANDER = 409;

    // Notification group expansion state toggled by the expand gesture.
    ACTION_NOTIFICATION_GROUP_GESTURE_EXPANDER = 410;

    // User performs gesture that activates the ambient display
    // 1: Gesture performed is Nudge
    // 2: Gesture performed is Pickup
    // 4: Gesture performed is Double Tap
    // 6: Gesture performed is Reach
    ACTION_AMBIENT_GESTURE = 411;

    // ---- End N Constants, all N constants go above this line ----

    // ------- Begin N App Disambig Shade -----
    // Application disambig shade opened or closed with a featured app.
    // These are actually visibility events, but visible/hidden doesn't
    // take a package, so these are being logged as actions.
    // Package: Calling app on open, called app on close
    ACTION_SHOW_APP_DISAMBIG_APP_FEATURED = 451;
    ACTION_HIDE_APP_DISAMBIG_APP_FEATURED = 452;

    // Application disambig shade opened or closed without a featured app.
    // These are actually visibility events, but visible/hidden doesn't
    // take a package, so these are being logged as actions.
    // Package: Calling app on open, called app on close
    ACTION_SHOW_APP_DISAMBIG_NONE_FEATURED = 453;
    ACTION_HIDE_APP_DISAMBIG_NONE_FEATURED = 454;

    // User opens in an app by pressing “Always” in the application disambig shade.
    // Subtype: Index of selection
    ACTION_APP_DISAMBIG_ALWAYS = 455;

    // User opens in an app by pressing “Just Once” in the application disambig shade.
    // Subtype: Index of selection
    ACTION_APP_DISAMBIG_JUST_ONCE = 456;

    // User opens in an app by tapping on its name in the application disambig shade.
    // Subtype: Index of selection
    ACTION_APP_DISAMBIG_TAP = 457;

    // OPEN: Settings > Internal storage > Storage manager
    // CATEGORY: SETTINGS
    STORAGE_MANAGER_SETTINGS = 458;

    // OPEN: Settings -> Gestures
    // CATEGORY: SETTINGS
    SETTINGS_GESTURES = 459;

    // ------ Begin Deletion Helper ------
    // ACTION: Settings > Storage > Free Up Space > Photos & Videos > Toggle
    //   SUBTYPE: false is off, true is on
    // CATEGORY: SETTINGS
    ACTION_DELETION_SELECTION_PHOTOS = 460;

    // ACTION: Settings > Storage > Free Up Space > Apps > Toggle
    //   SUBTYPE: false is off, true is on
    // CATEGORY: SETTINGS
    ACTION_DELETION_SELECTION_ALL_APPS = 461;

    // ACTION: Settings > Storage > Free Up Space > Apps > Click an unchecked app
    // CATEGORY: SETTINGS
    //   PACKAGE: Unchecked app
    ACTION_DELETION_SELECTION_APP_ON = 462;

    // ACTION: Settings > Storage > Free Up Space > Apps > Click a checked app
    // CATEGORY: SETTINGS
    //   PACKAGE: Checked app
    ACTION_DELETION_SELECTION_APP_OFF = 463;

    // ACTION: Settings > Storage > Free Up Space > Apps > Click category
    //   SUBTYPE: false is expanded, true is collapsed
    // CATEGORY: SETTINGS
    ACTION_DELETION_APPS_COLLAPSED = 464;

    // ACTION: Settings > Storage > Free Up Space > Downloads > Check On
    //   SUBTYPE: false is off, true is on
    // CATEGORY: SETTINGS
    ACTION_DELETION_SELECTION_DOWNLOADS = 465;

    // ACTION: Settings > Storage > Free Up Space > Downloads > Click category
    //   SUBTYPE: false is expanded, true is collapsed
    // CATEGORY: SETTINGS
    ACTION_DELETION_DOWNLOADS_COLLAPSED = 466;

    // ACTION: Settings > Storage > Free Up Space > Free up ... GB
    // CATEGORY: SETTINGS
    ACTION_DELETION_HELPER_CLEAR = 467;

    // ACTION: Settings > Storage > Free Up Space > Cancel
    // CATEGORY: SETTINGS
    ACTION_DELETION_HELPER_CANCEL = 468;

    // ACTION: Settings > Storage > Free Up Space > Free up ... GB > Remove
    // CATEGORY: SETTINGS
    ACTION_DELETION_HELPER_REMOVE_CONFIRM = 469;

    // ACTION: Settings > Storage > Free Up Space > Free up ... GB > Cancel
    // CATEGORY: SETTINGS
    ACTION_DELETION_HELPER_REMOVE_CANCEL = 470;

    // Deletion helper encountered an error during package deletion.
    ACTION_DELETION_HELPER_APPS_DELETION_FAIL = 471;

    // Deletion helper encountered an error during downloads folder deletion.
    ACTION_DELETION_HELPER_DOWNLOADS_DELETION_FAIL = 472;

    // Deletion helper encountered an error during photo and video deletion.
    ACTION_DELETION_HELPER_PHOTOS_VIDEOS_DELETION_FAIL = 473;

    // OPEN: Settings (root page if there are multiple tabs)
    // CATEGORY: SETTINGS
    DASHBOARD_CONTAINER = 474;

    // OPEN: Settings -> SUPPORT TAB
    // CATEGORY: SETTINGS
    SUPPORT_FRAGMENT = 475;

    // ACTION: Settings -> Select summary tab.
    // CATEGORY: SETTINGS
    ACTION_SELECT_SUMMARY = 476;

    // ACTION: Settings -> Select support tab.
    // CATEGORY: SETTINGS
    ACTION_SELECT_SUPPORT_FRAGMENT = 477;

    // ACTION: Settings -> Support -> Tips & tricks
    // CATEGORY: SETTINGS
    ACTION_SUPPORT_TIPS_AND_TRICKS = 478;

    // ACTION: Settings -> Support -> Help & feedback
    // CATEGORY: SETTINGS
    ACTION_SUPPORT_HELP_AND_FEEDBACK = 479;

    // ACTION: Settings -> Support -> Sign in
    // CATEGORY: SETTINGS
    ACTION_SUPPORT_SIGN_IN = 480;

    // ACTION: Settings -> Support -> Phone
    // CATEGORY: SETTINGS
    ACTION_SUPPORT_PHONE = 481;

    // ACTION: Settings -> Support -> Chat
    // CATEGORY: SETTINGS
    ACTION_SUPPORT_CHAT = 482;

    // ACTION: Settings -> Support -> Phone/Chat -> Disclaimer Cancel
    // CATEGORY: SETTINGS
    ACTION_SUPPORT_DISCLAIMER_CANCEL = 483;

    // ACTION: Settings -> Support -> Phone/Chat -> Disclaimer OK
    // CATEGORY: SETTINGS
    ACTION_SUPPORT_DISCLAIMER_OK = 484;

    // ACTION: Settings -> Support -> Toll-Free Phone
    // CATEGORY: SETTINGS
    ACTION_SUPPORT_DAIL_TOLLFREE = 485;

    // ACTION: Settings -> Support -> "Travel Abroad" Button
    // CATEGORY: SETTINGS
    ACTION_SUPPORT_VIEW_TRAVEL_ABROAD_DIALOG = 486;

    // ACTION: Settings -> Support -> "Travel Abroad" Button -> Tolled Phone
    // CATEGORY: SETTINGS
    ACTION_SUPPORT_DIAL_TOLLED = 487;

    // OPEN: Settings > Display > Night Light
    // CATEGORY: SETTINGS
    NIGHT_DISPLAY_SETTINGS = 488;

    // ACTION: Settings -> Storage -> Manage storage -> Click Storage Manager
    //   SUBTYPE: false is off, true is on
    ACTION_TOGGLE_STORAGE_MANAGER = 489;

    // Settings launched from collapsed quick settings.
    ACTION_QS_COLLAPSED_SETTINGS_LAUNCH = 490;

    // OPEN: QS Night Light tile shown
    // ACTION: QS Night Light tile tapped
    //   SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    QS_NIGHT_DISPLAY = 491;

    // Night Light on
    SETTINGS_CONDITION_NIGHT_DISPLAY = 492;

    // System navigation key up.
    ACTION_SYSTEM_NAVIGATION_KEY_UP = 493;

    // System navigation key down.
    ACTION_SYSTEM_NAVIGATION_KEY_DOWN = 494;

    // OPEN: Settings > Display -> Ambient Display
    // CATEGORY: SETTINGS
    ACTION_AMBIENT_DISPLAY = 495;

    // ---- End N-MR1 Constants, all N-MR1 constants go above this line ----

    // ACTION: The lockscreen gets shown because the SIM card was removed
    // SUBTYPE: false: device was previously unlocked, true: device was previously locked
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: N-MR2
    ACTION_LOCK_BECAUSE_SIM_REMOVED = 496;

    // ---- End N-MR2 Constants, all N-MR2 constants go above this line ----

    // ------- Begin N Keyboard Shortcuts Helper -----
    // Keyboard Shortcuts Helper is opened/closed.
    KEYBOARD_SHORTCUTS_HELPER = 500;

    // OPEN: Print Preview screen
    // Package: Package of app where print job is from
    PRINT_PREVIEW = 501;

    // OPEN: User expands full print job options shade in print preview.
    PRINT_JOB_OPTIONS = 502;

    // OPEN: “All Printers” screen for selecting printer
    // Subtype: # of printers listed
    PRINT_ALL_PRINTERS = 503;

    // OPEN: “Add Printers” screen for adding printers
    // Subtype: # of enabled print service listed
    PRINT_ADD_PRINTERS = 504;

    // ACTION: Queue a print job (Usually: User presses Print FAB from Print Preview)
    // Package: Package of print service.
    ACTION_PRINT = 505;

    // ACTION: User selects a printer from the dropdown in the print preview screen. This also
    //         Count all ACTION_PRINTER_SELECT_ALL actions.
    // Package: Package of print service tied to printer
    ACTION_PRINTER_SELECT_DROPDOWN = 506;

    // ACTION: User selects a printer from the “All printers” screen.
    // Package: Package of print service tied to printer
    ACTION_PRINTER_SELECT_ALL = 507;

    // ACTION: User changes an option for the print job from print preview.
    // Subtype:   1: Copies
    //            2: Color mode
    //            3: Duplex mode
    //            4: Media (==Paper) size
    //            5: Orientation
    //            6: Page range
    // Package: Package of print service tied to printer
    ACTION_PRINT_JOB_OPTIONS = 508;

    // ACTION: User searches for printer from All Printers
    ACTION_PRINTER_SEARCH = 509;

    // ACTION: User selects “Add print service” button from All Printers
    ACTION_PRINT_SERVICE_ADD = 510;

    // ACTION: User Enables/Disables Print Service via any means.
    // Subtype:   0: Enabled
    //            1: Disabled
    ACTION_PRINT_SERVICE_TOGGLE = 511;

    // ACTION: User installs print recommended print service
    // Package: Package of print service
    ACTION_PRINT_RECOMMENDED_SERVICE_INSTALL = 512;

    // ACTION: Settings -> [sub settings activity] -> Options menu -> Help & Support
    //   SUBTYPE: sub settings classname
    ACTION_SETTING_HELP_AND_FEEDBACK = 513;

    // OPEN: Settings > Language & input > Personal dictionary (single locale)
    USER_DICTIONARY_SETTINGS = 514;

    // OPEN: Settings > Date & time > Select time zone
    ZONE_PICKER = 515;

    // OPEN: Settings > Security > Device administrators
    DEVICE_ADMIN_SETTINGS = 516;

    // ACTION: Managed provisioning was launched to set this package as DPC app.
    // PACKAGE: DPC's package name.
    PROVISIONING_DPC_PACKAGE_NAME = 517;

    // ACTION: Managed provisioning triggered DPC installation.
    // PACKAGE: Package name of package which installed DPC.
    PROVISIONING_DPC_INSTALLED_BY_PACKAGE = 518;

    // ACTION: Logged when provisioning activity finishes.
    // TIME: Indicates time taken by provisioning activity to finish in MS.
    PROVISIONING_PROVISIONING_ACTIVITY_TIME_MS = 519;

    // ACTION: Logged when preprovisioning activity finishes.
    // TIME: Indicates time taken by preprovisioning activity to finish in MS.
    PROVISIONING_PREPROVISIONING_ACTIVITY_TIME_MS = 520;

    // ACTION: Logged when encrypt device activity finishes.
    // TIME: Indicates time taken by encrypt device activity to finish in MS.
    PROVISIONING_ENCRYPT_DEVICE_ACTIVITY_TIME_MS = 521;

    // ACTION: Logged when web activity finishes.
    // TIME: Indicates total time taken by web activity to finish in MS.
    PROVISIONING_WEB_ACTIVITY_TIME_MS = 522;

    // ACTION: Logged when trampoline activity finishes.
    // TIME: Indicates total time taken by trampoline activity to finish in MS.
    PROVISIONING_TRAMPOLINE_ACTIVITY_TIME_MS = 523;

    // ACTION: Logged when encryption activity finishes.
    // TIME: Indicates total time taken by post encryption activity to finish in MS.
    PROVISIONING_POST_ENCRYPTION_ACTIVITY_TIME_MS = 524;

    // ACTION: Logged when finalization activity finishes.
    // TIME: Indicates time taken by finalization activity to finish in MS.
    PROVISIONING_FINALIZATION_ACTIVITY_TIME_MS = 525;

    // OPEN: Settings Support > Phone/Chat -> Disclaimer
    DIALOG_SUPPORT_DISCLAIMER = 526;

    // OPEN: Settings Support > Travel abroad
    DIALOG_SUPPORT_PHONE = 527;

    // OPEN: Settings > Security > Factory Reset Protection dialog
    DIALOG_FRP = 528;

    // OPEN: Settings > Custom list preference with confirmation message
    DIALOG_CUSTOM_LIST_CONFIRMATION = 529;

    // OPEN: Settings > APN Editor > Error dialog
    DIALOG_APN_EDITOR_ERROR = 530;

    // OPEN: Settings > Users > Edit owner info dialog
    DIALOG_OWNER_INFO_SETTINGS = 531;

    // OPEN: Settings > Security > Use one lock dialog
    DIALOG_UNIFICATION_CONFIRMATION = 532;

    // OPEN: Settings > Security > User Credential
    DIALOG_USER_CREDENTIAL = 533;

    // OPEN: Settings > Accounts > Remove account
    DIALOG_REMOVE_USER = 534;

    // OPEN: Settings > Accounts > Confirm auto sync dialog
    DIALOG_CONFIRM_AUTO_SYNC_CHANGE = 535;

    // OPEN: Settings > Apps > Dialog for running service details
    DIALOG_RUNNIGN_SERVICE = 536;

    // OPEN: Settings > Dialog for hiding home settings
    DIALOG_NO_HOME = 537;

    // OPEN: Settings > Bluetooth > Rename this device
    DIALOG_BLUETOOTH_RENAME = 538;

    // OPEN: Settings > Bluetooth > Paired device profile
    DIALOG_BLUETOOTH_PAIRED_DEVICE_PROFILE = 539;

    // OPEN: Settings > Battery optimization > details for app
    DIALOG_HIGH_POWER_DETAILS = 540;

    // OPEN: Settings > Keyboard > Show keyboard layout dialog
    DIALOG_KEYBOARD_LAYOUT = 541;

    // OPEN: Settings > Wifi > WPS Setup dialog
    DIALOG_WPS_SETUP = 542;

    // OPEN: Settings > WIFI Scan permission dialog
    DIALOG_WIFI_SCAN_MODE = 543;

    // OPEN: Settings > WIFI Setup > Skip Wifi dialog
    DIALOG_WIFI_SKIP = 544;

    // OPEN: Settings > Wireless > VPN > Config dialog
    DIALOG_LEGACY_VPN_CONFIG = 545;

    // OPEN: Settings > Wireless > VPN > Config dialog for app
    DIALOG_VPN_APP_CONFIG = 546;

    // OPEN: Settings > Wireless > VPN > Cannot connect dialog
    DIALOG_VPN_CANNOT_CONNECT = 547;

    // OPEN: Settings > Wireless > VPN > Replace existing VPN dialog
    DIALOG_VPN_REPLACE_EXISTING = 548;

    // OPEN: Settings > Billing cycle > Edit billing cycle dates dialog
    DIALOG_BILLING_CYCLE = 549;

    // OPEN: Settings > Billing cycle > Edit data limit/warning dialog
    DIALOG_BILLING_BYTE_LIMIT = 550;

    // OPEN: Settings > Billing cycle > turn on data limit dialog
    DIALOG_BILLING_CONFIRM_LIMIT = 551;

    // OPEN: Settings > Service > Turn off notification access dialog
    DIALOG_DISABLE_NOTIFICATION_ACCESS = 552;

    // OPEN: Settings > Sound > Use personal sound for work profile dialog
    DIALOG_UNIFY_SOUND_SETTINGS = 553;

    // OPEN: Settings > Zen mode > Dialog warning about the zen access privileges being granted.
    DIALOG_ZEN_ACCESS_GRANT = 554;

    // OPEN: Settings > Zen mode > Dialog warning about the zen access privileges being revoked.
    DIALOG_ZEN_ACCESS_REVOKE = 555;

    // OPEN: Settings > Zen mode > Dialog that picks time for zen mode.
    DIALOG_ZEN_TIMEPICKER = 556;

    // OPEN: Settings > Apps > Dialog that informs user to allow service access for app.
    DIALOG_SERVICE_ACCESS_WARNING = 557;

    // OPEN: Settings > Apps > Dialog for app actions (such as force stop/clear data)
    DIALOG_APP_INFO_ACTION = 558;

    // OPEN: Settings > Storage > Dialog for forgetting a storage device
    DIALOG_VOLUME_FORGET = 559;

    // OPEN: Settings > Storage > Dialog warning that a volume is slow
    DIALOG_VOLUME_SLOW_WARNING = 560;

    // OPEN: Settings > Storage > Dialog for initializing a volume
    DIALOG_VOLUME_INIT = 561;

    // OPEN: Settings > Storage > Dialog for unmounting a volume
    DIALOG_VOLUME_UNMOUNT = 562;

    // OPEN: Settings > Storage > Dialog for renaming a volume
    DIALOG_VOLUME_RENAME = 563;

    // OPEN: Settings > Storage > Dialog for clear cache
    DIALOG_STORAGE_CLEAR_CACHE = 564;

    // OPEN: Settings > Storage > Dialog for system info
    DIALOG_STORAGE_SYSTEM_INFO = 565;

    // OPEN: Settings > Storage > Dialog for other info
    DIALOG_STORAGE_OTHER_INFO = 566;

    // OPEN: Settings > Storage > Dialog for user info
    DIALOG_STORAGE_USER_INFO = 567;

    // OPEN: Settings > Add fingerprint > Dialog when user touches fingerprint icon.
    DIALOG_FINGERPRINT_ICON_TOUCH = 568;

    // OPEN: Settings > Add fingerprint > Error dialog
    DIALOG_FINGERPINT_ERROR = 569;

    // OPEN: Settings > Fingerprint > Rename or delete dialog
    DIALOG_FINGERPINT_EDIT = 570;

    // OPEN: Settings > Fingerprint > Dialog for deleting last fingerprint
    DIALOG_FINGERPINT_DELETE_LAST = 571;

    // OPEN: SUW > Fingerprint > Dialog to confirm cancel fingerprint setup.
    DIALOG_FINGERPRINT_CANCEL_SETUP = 572;

    // OPEN: SUW > Fingerprint > Dialog to confirm skip fingerprint setup entirely.
    DIALOG_FINGERPRINT_SKIP_SETUP = 573;

    // OPEN: Settings > Proxy Selector error dialog
    DIALOG_PROXY_SELECTOR_ERROR = 574;

    // OPEN: Settings > Wifi > P2P Settings > Disconnect dialog
    DIALOG_WIFI_P2P_DISCONNECT = 575;

    // OPEN: Settings > Wifi > P2P Settings > Cancel connection dialog
    DIALOG_WIFI_P2P_CANCEL_CONNECT = 576;

    // OPEN: Settings > Wifi > P2P Settings > Rename dialog
    DIALOG_WIFI_P2P_RENAME = 577;

    // OPEN: Settings > Wifi > P2P Settings > Forget group dialog
    DIALOG_WIFI_P2P_DELETE_GROUP = 578;

    // OPEN: Settings > APN > Restore default dialog
    DIALOG_APN_RESTORE_DEFAULT = 579;

    // OPEN: Settings > Dream > When to dream dialog
    DIALOG_DREAM_START_DELAY = 580;

    // OPEN: Settings > Encryption interstitial accessibility warning dialog
    DIALOG_ENCRYPTION_INTERSTITIAL_ACCESSIBILITY = 581;

    // OPEN: Settings > Tether > AP setting dialog
    DIALOG_AP_SETTINGS = 582;

    // OPEN: Settings > Acessibility > Enable accessiblity service dialog
    DIALOG_ACCESSIBILITY_SERVICE_ENABLE = 583;

    // OPEN: Settings > Acessibility > Disable accessiblity service dialog
    DIALOG_ACCESSIBILITY_SERVICE_DISABLE = 584;

    // OPEN: Settings > Account > Remove account dialog
    DIALOG_ACCOUNT_SYNC_REMOVE = 585;

    // OPEN: Settings > Account > Remove account failed dialog
    DIALOG_ACCOUNT_SYNC_FAILED_REMOVAL = 586;

    // OPEN: Settings > Account > Cannot do onetime sync dialog
    DIALOG_ACCOUNT_SYNC_CANNOT_ONETIME_SYNC = 587;

    // OPEN: Settings > Display > Night light > Set start time dialog
    DIALOG_NIGHT_DISPLAY_SET_START_TIME = 588;

    // OPEN: Settings > Display > Night light > Set end time dialog
    DIALOG_NIGHT_DISPLAY_SET_END_TIME = 589;

    // OPEN: Settings > User > Edit info dialog
    DIALOG_USER_EDIT = 590;

    // OPEN: Settings > User > Confirm remove dialog
    DIALOG_USER_REMOVE = 591;

    // OPEN: Settings > User > Enable calling dialog
    DIALOG_USER_ENABLE_CALLING = 592;

    // OPEN: Settings > User > Enable calling and sms dialog
    DIALOG_USER_ENABLE_CALLING_AND_SMS = 593;

    // OPEN: Settings > User > Cannot manage device message dialog
    DIALOG_USER_CANNOT_MANAGE = 594;

    // OPEN: Settings > User > Add user dialog
    DIALOG_USER_ADD = 595;

    // OPEN: Settings > User > Setup user dialog
    DIALOG_USER_SETUP = 596;

    // OPEN: Settings > User > Setup profile dialog
    DIALOG_USER_SETUP_PROFILE = 597;

    // OPEN: Settings > User > Choose user type dialog
    DIALOG_USER_CHOOSE_TYPE = 598;

    // OPEN: Settings > User > Need lockscreen dialog
    DIALOG_USER_NEED_LOCKSCREEN = 599;

    // OPEN: Settings > User > Confirm exit guest mode dialog
    DIALOG_USER_CONFIRM_EXIT_GUEST = 600;

    // OPEN: Settings > User > Edit user profile dialog
    DIALOG_USER_EDIT_PROFILE = 601;

    // OPEN: Settings > Wifi > Saved AP > Edit dialog
    DIALOG_WIFI_SAVED_AP_EDIT = 602;

    // OPEN: Settings > Wifi > Edit AP dialog
    DIALOG_WIFI_AP_EDIT = 603;

    // OPEN: Settings > Wifi > PBC Config dialog
    DIALOG_WIFI_PBC = 604;

    // OPEN: Settings > Wifi > Display pin dialog
    DIALOG_WIFI_PIN = 605;

    // OPEN: Settings > Wifi > Write config to NFC dialog
    DIALOG_WIFI_WRITE_NFC = 606;
    // OPEN: Settings > Date > Date picker dialog
    DIALOG_DATE_PICKER = 607;

    // OPEN: Settings > Date > Time picker dialog
    DIALOG_TIME_PICKER = 608;

    // OPEN: Settings > Wireless > Manage wireless plan dialog
    DIALOG_MANAGE_MOBILE_PLAN = 609;

    // ACTION: Logs network type of the device while provisioning
    PROVISIONING_NETWORK_TYPE = 610;

    // ACTION: Logs action which triggered provisioning.
    PROVISIONING_ACTION = 611;

    // ACTION: Logs extra passed by the dpc while provisioning.
    PROVISIONING_EXTRA = 612;

    // OPEN Settings > Bluetooth > Attempt to connect to device that shows dialog
    BLUETOOTH_DIALOG_FRAGMENT = 613;

    // ACTION: Logs provisioning started by zero touch.
    PROVISIONING_ENTRY_POINT_ZERO_TOUCH = 614;

    // ACTION: Logs provisioning started by NFC bump.
    PROVISIONING_ENTRY_POINT_NFC = 615;

    // ACTION: Logs provisioning started using QR code.
    PROVISIONING_ENTRY_POINT_QR_CODE = 616;

    // ACTION: Logs provisioning started using adb.
    PROVISIONING_ENTRY_POINT_ADB = 617;

    // ACTION: Logs provisioning started by trusted source.
    PROVISIONING_ENTRY_POINT_TRUSTED_SOURCE = 618;

    // ACTION: Logged when copy account task finishes.
    // TIME: Indicates time taken by copy account task to finish in MS.
    PROVISIONING_COPY_ACCOUNT_TASK_MS = 619;

    // ACTION: Logged when create profile task finishes.
    // TIME: Indicates time taken by create profile task to finish in MS.
    PROVISIONING_CREATE_PROFILE_TASK_MS = 620;

    // ACTION: Logged when start profile task finishes.
    // TIME: Indicates time taken by start profile task to finish in MS.
    PROVISIONING_START_PROFILE_TASK_MS = 621;

    // ACTION: Logged when download package task finishes.
    // TIME: Indicates time taken by download package task to finish in MS.
    PROVISIONING_DOWNLOAD_PACKAGE_TASK_MS = 622;

    // ACTION: Logged when install package task finishes.
    // TIME: Indicates time taken by install package task to finish in MS.
    PROVISIONING_INSTALL_PACKAGE_TASK_MS = 623;

    // ACTION: User cancelled provisioning.
    PROVISIONING_CANCELLED = 624;

    // ACTION: Logged when provisioning throws an error.
    PROVISIONING_ERROR = 625;

    // ACTION: Logs the status of copying user account during provisioning.
    PROVISIONING_COPY_ACCOUNT_STATUS = 626;

    // ACTION: Logs the end to end time taken by all provisioning tasks.
    PROVISIONING_TOTAL_TASK_TIME_MS = 627;

    // OPEN: Settings > Security
    // CATEGORY: SETTINGS
    // OS: O
    ENTERPRISE_PRIVACY_SETTINGS = 628;

    // ACTION: Longpress on a TextView.
    //  SUBTYPE: 1 is for START_SELECTION, 2 is for START_DRAG_AND_DROP, 0 is for OTHER.
    // CATEGORY: TEXT_CONTROLS
    // OS: O
    TEXT_LONGPRESS = 629;

    // ACTION: An app requested an unknown permission
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_UNKNOWN = 630;

    // ACTION: An app was granted an unknown permission
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_UNKNOWN = 631;

    // ACTION: An app requested an unknown permission and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_UNKNOWN = 632;

    // ACTION: An unknown permission was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_UNKNOWN = 633;

    // ACTION: An app requested the permission READ_CALENDAR
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_READ_CALENDAR = 634;

    // ACTION: An app was granted the permission READ_CALENDAR
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_READ_CALENDAR = 635;

    // ACTION: An app requested the permission READ_CALENDAR and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_READ_CALENDAR = 636;

    // ACTION: The permission READ_CALENDAR was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_READ_CALENDAR = 637;

    // ACTION: An app requested the permission WRITE_CALENDAR
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_WRITE_CALENDAR = 638;

    // ACTION: An app was granted the permission WRITE_CALENDAR
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_WRITE_CALENDAR = 639;

    // ACTION: An app requested the permission WRITE_CALENDAR and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_WRITE_CALENDAR = 640;

    // ACTION: The permission WRITE_CALENDAR was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_WRITE_CALENDAR = 641;

    // ACTION: An app requested the permission CAMERA
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_CAMERA = 642;

    // ACTION: An app was granted the permission CAMERA
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_CAMERA = 643;

    // ACTION: An app requested the permission CAMERA and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_CAMERA = 644;

    // ACTION: The permission CAMERA was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_CAMERA = 645;

    // ACTION: An app requested the permission READ_CONTACTS
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_READ_CONTACTS = 646;

    // ACTION: An app was granted the permission READ_CONTACTS
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_READ_CONTACTS = 647;

    // ACTION: An app requested the permission READ_CONTACTS and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_READ_CONTACTS = 648;

    // ACTION: The permission READ_CONTACTS was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_READ_CONTACTS = 649;

    // ACTION: An app requested the permission WRITE_CONTACTS
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_WRITE_CONTACTS = 650;

    // ACTION: An app was granted the permission WRITE_CONTACTS
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_WRITE_CONTACTS = 651;

    // ACTION: An app requested the permission WRITE_CONTACTS and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_WRITE_CONTACTS = 652;

    // ACTION: The permission WRITE_CONTACTS was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_WRITE_CONTACTS = 653;

    // ACTION: An app requested the permission GET_ACCOUNTS
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_GET_ACCOUNTS = 654;

    // ACTION: An app was granted the permission GET_ACCOUNTS
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_GET_ACCOUNTS = 655;

    // ACTION: An app requested the permission GET_ACCOUNTS and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_GET_ACCOUNTS = 656;

    // ACTION: The permission GET_ACCOUNTS was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_GET_ACCOUNTS = 657;

    // ACTION: An app requested the permission ACCESS_FINE_LOCATION
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_ACCESS_FINE_LOCATION = 658;

    // ACTION: An app was granted the permission ACCESS_FINE_LOCATION
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_ACCESS_FINE_LOCATION = 659;

    // ACTION: An app requested the permission ACCESS_FINE_LOCATION and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_ACCESS_FINE_LOCATION = 660;

    // ACTION: The permission ACCESS_FINE_LOCATION was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_ACCESS_FINE_LOCATION = 661;

    // ACTION: An app requested the permission ACCESS_COARSE_LOCATION
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_ACCESS_COARSE_LOCATION = 662;

    // ACTION: An app was granted the permission ACCESS_COARSE_LOCATION
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_ACCESS_COARSE_LOCATION = 663;

    // ACTION: An app requested the permission ACCESS_COARSE_LOCATION and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_ACCESS_COARSE_LOCATION = 664;

    // ACTION: The permission ACCESS_COARSE_LOCATION was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_ACCESS_COARSE_LOCATION = 665;

    // ACTION: An app requested the permission RECORD_AUDIO
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_RECORD_AUDIO = 666;

    // ACTION: An app was granted the permission RECORD_AUDIO
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_RECORD_AUDIO = 667;

    // ACTION: An app requested the permission RECORD_AUDIO and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_RECORD_AUDIO = 668;

    // ACTION: The permission RECORD_AUDIO was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_RECORD_AUDIO = 669;

    // ACTION: An app requested the permission READ_PHONE_STATE
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_READ_PHONE_STATE = 670;

    // ACTION: An app was granted the permission READ_PHONE_STATE
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_READ_PHONE_STATE = 671;

    // ACTION: An app requested the permission READ_PHONE_STATE and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_READ_PHONE_STATE = 672;

    // ACTION: The permission READ_PHONE_STATE was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_READ_PHONE_STATE = 673;

    // ACTION: An app requested the permission CALL_PHONE
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_CALL_PHONE = 674;

    // ACTION: An app was granted the permission CALL_PHONE
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_CALL_PHONE = 675;

    // ACTION: An app requested the permission CALL_PHONE and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_CALL_PHONE = 676;

    // ACTION: The permission CALL_PHONE was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_CALL_PHONE = 677;

    // ACTION: An app requested the permission READ_CALL_LOG
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_READ_CALL_LOG = 678;

    // ACTION: An app was granted the permission READ_CALL_LOG
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_READ_CALL_LOG = 679;

    // ACTION: An app requested the permission READ_CALL_LOG and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_READ_CALL_LOG = 680;

    // ACTION: The permission READ_CALL_LOG was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_READ_CALL_LOG = 681;

    // ACTION: An app requested the permission WRITE_CALL_LOG
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_WRITE_CALL_LOG = 682;

    // ACTION: An app was granted the permission WRITE_CALL_LOG
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_WRITE_CALL_LOG = 683;

    // ACTION: An app requested the permission WRITE_CALL_LOG and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_WRITE_CALL_LOG = 684;

    // ACTION: The permission WRITE_CALL_LOG was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_WRITE_CALL_LOG = 685;

    // ACTION: An app requested the permission ADD_VOICEMAIL
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_ADD_VOICEMAIL = 686;

    // ACTION: An app was granted the permission ADD_VOICEMAIL
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_ADD_VOICEMAIL = 687;

    // ACTION: An app requested the permission ADD_VOICEMAIL and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_ADD_VOICEMAIL = 688;

    // ACTION: The permission ADD_VOICEMAIL was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_ADD_VOICEMAIL = 689;

    // ACTION: An app requested the permission USE_SIP
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_USE_SIP = 690;

    // ACTION: An app was granted the permission USE_SIP
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_USE_SIP = 691;

    // ACTION: An app requested the permission USE_SIP and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_USE_SIP = 692;

    // ACTION: The permission USE_SIP was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_USE_SIP = 693;

    // ACTION: An app requested the permission PROCESS_OUTGOING_CALLS
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_PROCESS_OUTGOING_CALLS = 694;

    // ACTION: An app was granted the permission PROCESS_OUTGOING_CALLS
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_PROCESS_OUTGOING_CALLS = 695;

    // ACTION: An app requested the permission PROCESS_OUTGOING_CALLS and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_PROCESS_OUTGOING_CALLS = 696;

    // ACTION: The permission PROCESS_OUTGOING_CALLS was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_PROCESS_OUTGOING_CALLS = 697;

    // ACTION: An app requested the permission READ_CELL_BROADCASTS
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_READ_CELL_BROADCASTS = 698;

    // ACTION: An app was granted the permission READ_CELL_BROADCASTS
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_READ_CELL_BROADCASTS = 699;

    // ACTION: An app requested the permission READ_CELL_BROADCASTS and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_READ_CELL_BROADCASTS = 700;

    // ACTION: The permission READ_CELL_BROADCASTS was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_READ_CELL_BROADCASTS = 701;

    // ACTION: An app requested the permission BODY_SENSORS
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_BODY_SENSORS = 702;

    // ACTION: An app was granted the permission BODY_SENSORS
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_BODY_SENSORS = 703;

    // ACTION: An app requested the permission BODY_SENSORS and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_BODY_SENSORS = 704;

    // ACTION: The permission BODY_SENSORS was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_BODY_SENSORS = 705;

    // ACTION: An app requested the permission SEND_SMS
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_SEND_SMS = 706;

    // ACTION: An app was granted the permission SEND_SMS
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_SEND_SMS = 707;

    // ACTION: An app requested the permission SEND_SMS and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_SEND_SMS = 708;

    // ACTION: The permission SEND_SMS was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_SEND_SMS = 709;

    // ACTION: An app requested the permission RECEIVE_SMS
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_RECEIVE_SMS = 710;

    // ACTION: An app was granted the permission RECEIVE_SMS
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_RECEIVE_SMS = 711;

    // ACTION: An app requested the permission RECEIVE_SMS and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_RECEIVE_SMS = 712;

    // ACTION: The permission RECEIVE_SMS was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_RECEIVE_SMS = 713;

    // ACTION: An app requested the permission READ_SMS
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_READ_SMS = 714;

    // ACTION: An app was granted the permission READ_SMS
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_READ_SMS = 715;

    // ACTION: An app requested the permission READ_SMS and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_READ_SMS = 716;

    // ACTION: The permission READ_SMS was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_READ_SMS = 717;

    // ACTION: An app requested the permission RECEIVE_WAP_PUSH
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_RECEIVE_WAP_PUSH = 718;

    // ACTION: An app was granted the permission RECEIVE_WAP_PUSH
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_RECEIVE_WAP_PUSH = 719;

    // ACTION: An app requested the permission RECEIVE_WAP_PUSH and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_RECEIVE_WAP_PUSH = 720;

    // ACTION: The permission RECEIVE_WAP_PUSH was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_RECEIVE_WAP_PUSH = 721;

    // ACTION: An app requested the permission RECEIVE_MMS
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_RECEIVE_MMS = 722;

    // ACTION: An app was granted the permission RECEIVE_MMS
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_RECEIVE_MMS = 723;

    // ACTION: An app requested the permission RECEIVE_MMS and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_RECEIVE_MMS = 724;

    // ACTION: The permission RECEIVE_MMS was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_RECEIVE_MMS = 725;

    // ACTION: An app requested the permission READ_EXTERNAL_STORAGE
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_READ_EXTERNAL_STORAGE = 726;

    // ACTION: An app was granted the permission READ_EXTERNAL_STORAGE
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_READ_EXTERNAL_STORAGE = 727;

    // ACTION: An app requested the permission READ_EXTERNAL_STORAGE and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_READ_EXTERNAL_STORAGE = 728;

    // ACTION: The permission READ_EXTERNAL_STORAGE was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_READ_EXTERNAL_STORAGE = 729;

    // ACTION: An app requested the permission WRITE_EXTERNAL_STORAGE
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE = 730;

    // ACTION: An app was granted the permission WRITE_EXTERNAL_STORAGE
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_WRITE_EXTERNAL_STORAGE = 731;

    // ACTION: An app requested the permission WRITE_EXTERNAL_STORAGE and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_WRITE_EXTERNAL_STORAGE = 732;

    // ACTION: The permission WRITE_EXTERNAL_STORAGE was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_WRITE_EXTERNAL_STORAGE = 733;

    // ACTION: Logged when a provisioning session has started
    PROVISIONING_SESSION_STARTED = 734;

    // ACTION: Logged when a provisioning session has completed
    PROVISIONING_SESSION_COMPLETED = 735;

    // ACTION: An app requested the permission READ_PHONE_NUMBERS
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REQUEST_READ_PHONE_NUMBERS = 736;

    // ACTION: An app was granted the permission READ_PHONE_NUMBERS
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_GRANT_READ_PHONE_NUMBERS = 737;

    // ACTION: An app requested the permission READ_PHONE_NUMBERS and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_PERMISSION_DENIED_READ_PHONE_NUMBERS = 738;

    // ACTION: The permission READ_PHONE_NUMBERS was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_PERMISSION_REVOKE_READ_PHONE_NUMBERS = 739;

    // ACTION: QS Brightness Slider (with auto brightness disabled, and VR enabled)
    //   SUBTYPE: slider value
    // CATEGORY: QUICK_SETTINGS
    // OS: 6.0
    ACTION_BRIGHTNESS_FOR_VR = 498;

    // ACTION: A captive portal was detected during network validation
    // CATEGORY: NOTIFICATION
    // OS: N-MR2
    NOTIFICATION_NETWORK_SIGN_IN = 740;

    // ACTION: An unvalidated network without Internet was selected by the user
    // CATEGORY: NOTIFICATION
    // OS: N-MR2
    NOTIFICATION_NETWORK_NO_INTERNET = 741;

    // ACTION: A validated network failed revalidation and lost Internet access
    // CATEGORY: NOTIFICATION
    // OS: N-MR2
    NOTIFICATION_NETWORK_LOST_INTERNET = 742;

    // ACTION: The system default network switched to a different network
    // CATEGORY: NOTIFICATION
    // OS: N-MR2
    NOTIFICATION_NETWORK_SWITCH = 743;

    // OPEN: Settings > System
    SETTINGS_SYSTEM_CATEGORY = 744;

    // OPEN: Settings > Storage
    SETTINGS_STORAGE_CATEGORY = 745;

    // OPEN: Settings > Network & Internet
    SETTINGS_NETWORK_CATEGORY = 746;

    // OPEN: Settings > Connected Device
    SETTINGS_CONNECTED_DEVICE_CATEGORY = 747;

    // OPEN: Settings > App & Notification
    SETTINGS_APP_NOTIF_CATEGORY = 748;

    // OPEN: Settings > System > Input & Gesture
    SETTINGS_INPUT_CATEGORY = 749;

    // OPEN: Settings > System > Language & Region
    SETTINGS_LANGUAGE_CATEGORY = 750;

    // OPEN: Settings > System > Input & Gesture > Swipe to notification gesture
    SETTINGS_GESTURE_SWIPE_TO_NOTIFICATION = 751;

    // OPEN: Settings > System > Input & Gesture > Double tap power button gesture
    SETTINGS_GESTURE_DOUBLE_TAP_POWER = 752;

    // OPEN: Settings > System > Input & Gesture > Pick up gesture
    SETTINGS_GESTURE_PICKUP = 753;

    // OPEN: Settings > System > Input & Gesture > Double tap screen gesture
    SETTINGS_GESTURE_DOUBLE_TAP_SCREEN = 754;

    // OPEN: Settings > System > Input & Gesture > Double twist gesture
    SETTINGS_GESTURE_DOUBLE_TWIST = 755;

    // OPEN: Settings > Support > SupportDisclaimerDialog > SupportSystemInformationDialog
    // CATEGORY: Settings
    DIALOG_SUPPORT_SYSTEM_INFORMATION = 756;

    // These values should never appear in log outputs - they are reserved for
    // internal platform metrics use.
    RESERVED_FOR_LOGBUILDER_CATEGORY = 757;
    RESERVED_FOR_LOGBUILDER_TYPE = 758;
    RESERVED_FOR_LOGBUILDER_SUBTYPE = 759;

    // ACTION: "Do not show again" was enabled in the support disclaimer and the
    // 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;

    // ACTION: User leaves Settings search UI without entering any query.
    ACTION_LEAVE_SEARCH_RESULT_WITHOUT_QUERY = 762;

    // ACTION: Clicking on any search result in Settings.
    ACTION_CLICK_SETTINGS_SEARCH_RESULT = 763;

    // ACTION: Allow Battery optimization for an app
    APP_SPECIAL_PERMISSION_BATTERY_ALLOW = 764;

    // ACTION: Deny Battery optimization for an app
    APP_SPECIAL_PERMISSION_BATTERY_DENY = 765;

    // ACTION: Enable Device Admin app
    APP_SPECIAL_PERMISSION_ADMIN_ALLOW = 766;

    // ACTION: Disable Device Admin app
    APP_SPECIAL_PERMISSION_ADMIN_DENY = 767;

    // ACTION: Allow "Do Not Disturb access" for an app
    APP_SPECIAL_PERMISSION_DND_ALLOW = 768;

    // ACTION: Deny "Do Not Disturb access" for an app
    APP_SPECIAL_PERMISSION_DND_DENY = 769;

    // ACTION: Allow "Draw over other apps" for an app
    APP_SPECIAL_PERMISSION_APPDRAW_ALLOW = 770;

    // ACTION: Deny "Display over other apps" for an app
    APP_SPECIAL_PERMISSION_APPDRAW_DENY = 771;

    // ACTION: Allow "VR helper services" for an app
    APP_SPECIAL_PERMISSION_VRHELPER_ALLOW = 772;

    // ACTION: Deny "VR helper services" for an app
    APP_SPECIAL_PERMISSION_VRHELPER_DENY = 773;

    // ACTION: Allow "Modify system settings" for an app
    APP_SPECIAL_PERMISSION_SETTINGS_CHANGE_ALLOW = 774;

    // ACTION: Deny "Modify system settings" for an app
    APP_SPECIAL_PERMISSION_SETTINGS_CHANGE_DENY = 775;

    // ACTION: Allow "Notification access" for an app
    APP_SPECIAL_PERMISSION_NOTIVIEW_ALLOW = 776;

    // ACTION: Deny "Notification access" for an app
    APP_SPECIAL_PERMISSION_NOTIVIEW_DENY = 777;

    // ACTION: "Premium SMS access" for an app - "ask user" option
    APP_SPECIAL_PERMISSION_PREMIUM_SMS_ASK = 778;

    // ACTION: "Premium SMS access" for an app - "never allow" option
    APP_SPECIAL_PERMISSION_PREMIUM_SMS_DENY = 779;

    // ACTION: "Premium SMS access" for an app - "always allow" option
    APP_SPECIAL_PERMISSION_PREMIUM_SMS_ALWAYS_ALLOW = 780;

    // ACTION: Allow "Unrestricted data access" for an app
    APP_SPECIAL_PERMISSION_UNL_DATA_ALLOW = 781;

    // ACTION: Deny "Unrestricted data access" for an app
    APP_SPECIAL_PERMISSION_UNL_DATA_DENY = 782;

    // ACTION: Allow "Usage access" for an app
    APP_SPECIAL_PERMISSION_USAGE_VIEW_ALLOW = 783;

    // ACTION: Deny "Usage access" for an app
    APP_SPECIAL_PERMISSION_USAGE_VIEW_DENY = 784;

    // OPEN: Settings > Apps > Default Apps > Default browser
    DEFAULT_BROWSER_PICKER = 785;

    // OPEN: Settings > Apps > Default Apps > Default emergency app
    DEFAULT_EMERGENCY_APP_PICKER = 786;

    // OPEN: Settings > Apps > Default Apps > Default home
    DEFAULT_HOME_PICKER = 787;

    // OPEN: Settings > Apps > Default Apps > Default phone
    DEFAULT_PHONE_PICKER = 788;

    // OPEN: Settings > Apps > Default Apps > Default sms
    DEFAULT_SMS_PICKER = 789;

    // OPEN: Settings > Apps > Default Apps > Default notification assistant
    DEFAULT_NOTIFICATION_ASSISTANT = 790;

    // OPEN: Settings > Apps > Default Apps > Warning dialog to confirm selection
    DEFAULT_APP_PICKER_CONFIRMATION_DIALOG = 791;

    // OPEN: Settings > Apps > Default Apps > Default autofill app
    DEFAULT_AUTOFILL_PICKER = 792;

    // These values should never appear in log outputs - they are reserved for
    // internal platform metrics use.
    NOTIFICATION_SINCE_CREATE_MILLIS = 793;
    NOTIFICATION_SINCE_VISIBLE_MILLIS = 794;
    NOTIFICATION_SINCE_UPDATE_MILLIS = 795;
    NOTIFICATION_ID = 796;
    NOTIFICATION_TAG = 797;
    NOTIFICATION_SHADE_INDEX = 798;
    RESERVED_FOR_LOGBUILDER_NAME = 799;

    // OPEN: QS NFC tile shown
    // ACTION: QS NFC tile tapped
    // CATEGORY: QUICK_SETTINGS
    QS_NFC = 800;

    // These values should never appear in log outputs - they are reserved for
    // internal platform metrics use.
    RESERVED_FOR_LOGBUILDER_BUCKET = 801;
    RESERVED_FOR_LOGBUILDER_VALUE = 802;
    RESERVED_FOR_LOGBUILDER_COUNTER = 803;
    RESERVED_FOR_LOGBUILDER_HISTOGRAM = 804;
    RESERVED_FOR_LOGBUILDER_TIMESTAMP = 805;
    RESERVED_FOR_LOGBUILDER_PACKAGENAME = 806;

    // ACTION: "Force stop" action on an app
    ACTION_APP_FORCE_STOP = 807;

    // OPEN: Settings > Apps > Gear > Special Access > Install other apps
    // CATEGORY: SETTINGS
    // OS: 8.0
    MANAGE_EXTERNAL_SOURCES = 808;

    // ACTION: Logged when terms activity finishes.
    // TIME: Indicates time taken by terms activity to finish in MS.
    PROVISIONING_TERMS_ACTIVITY_TIME_MS = 809;

    // Indicates number of terms displayed on the terms screen.
    PROVISIONING_TERMS_COUNT = 810;

    // Indicates number of terms read on the terms screen.
    PROVISIONING_TERMS_READ = 811;

    // Logs that the user has edited the picture-in-picture settings.
    // CATEGORY: SETTINGS
    SETTINGS_MANAGE_PICTURE_IN_PICTURE = 812;

    // ACTION: Allow "Enable picture-in-picture" for an app
    APP_PICTURE_IN_PICTURE_ALLOW = 813;

    // ACTION: Deny "Enable picture-in-picture" for an app
    APP_PICTURE_IN_PICTURE_DENY = 814;

    // OPEN: Settings > Language & input > Text-to-speech output -> Speech rate & pitch
    // CATEGORY: SETTINGS
    // OS: 8.0
    TTS_SLIDERS = 815;

    // ACTION: Settings -> Display -> Theme
    ACTION_THEME = 816;

    // OPEN: SUW Welcome Screen -> Vision Settings -> Select to Speak
    // ACTION: Select to Speak configuration is chosen
    //  SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: N
    SUW_ACCESSIBILITY_TOGGLE_SELECT_TO_SPEAK = 817;

    // OPEN: Settings > System > Backup
    // CATEGORY: SETTINGS
    // OS: O
    BACKUP_SETTINGS = 818;

    // ACTION: Picture-in-picture was explicitly entered for an activity
    // VALUE: true if it was entered while hiding as a result of moving to
    // another task, false otherwise
    ACTION_PICTURE_IN_PICTURE_ENTERED = 819;

    // ACTION: The activity currently in picture-in-picture was expanded back to fullscreen
    // PACKAGE: The package name of the activity that was expanded back to fullscreen
    ACTION_PICTURE_IN_PICTURE_EXPANDED_TO_FULLSCREEN = 820;

    // ACTION: The activity currently in picture-in-picture was minimized
    // VALUE: True if the PiP was minimized, false otherwise
    ACTION_PICTURE_IN_PICTURE_MINIMIZED = 821;

    // ACTION: Picture-in-picture was dismissed via the dismiss button
    // VALUE: 0 if dismissed by tap, 1 if dismissed by drag
    ACTION_PICTURE_IN_PICTURE_DISMISSED = 822;

    // ACTION: The visibility of the picture-in-picture meny
    // VALUE: Whether or not the menu is visible
    ACTION_PICTURE_IN_PICTURE_MENU = 823;

    // Enclosing category for group of PICTURE_IN_PICTURE_ASPECT_RATIO_FOO events,
    // logged when the aspect ratio changes
    ACTION_PICTURE_IN_PICTURE_ASPECT_RATIO_CHANGED = 824;

    // The current aspect ratio of the PiP, logged when it changes.
    PICTURE_IN_PICTURE_ASPECT_RATIO = 825;

    // FIELD - length in dp of ACTION_LS_* gestures, or zero if not applicable
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O
    FIELD_GESTURE_LENGTH = 826;

    // FIELD - velocity in dp (per second?) of ACTION_LS_* gestures, or zero if not applicable
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O
    FIELD_GESTURE_VELOCITY = 827;

    // OPEN: Carrier demo mode password dialog
    CARRIER_DEMO_MODE_PASSWORD = 828;

    // ACTION: Create a Settings shortcut item.
    ACTION_SETTINGS_CREATE_SHORTCUT = 829;

    // ACTION: A tile in Settings information architecture is clicked
    ACTION_SETTINGS_TILE_CLICK = 830;

    // OPEN: Notification unsnoozed. CLOSE: Notification snoozed. UPDATE: snoozed notification
    // updated. TYPE_DISMISS: snoozing canceled due to data being cleared on package
    // CATEGORY: NOTIFICATION
    // OS: O
    NOTIFICATION_SNOOZED = 831;

    // Tagged data for NOTIFICATION_SNOOZED. TRUE: snoozed until context, FALSE: snoozed for time.
    // OS: O
    NOTIFICATION_SNOOZED_CRITERIA = 832;

    // FIELD - The context (source) from which an action is performed
    // For QS, this is a boolean of whether the panel is expanded
    FIELD_CONTEXT = 833;

    // ACTION: Settings advanced button is expanded
    ACTION_SETTINGS_ADVANCED_BUTTON_EXPAND = 834;

    // ACTION: Logs the number of times the saved network evaluator was used to
    // recommend a wifi network
    WIFI_NETWORK_RECOMMENDATION_SAVED_NETWORK_EVALUATOR = 835;

    // ACTION: Logs the number of times the recommended network evaluator was
    // used to recommend a wifi network
    WIFI_NETWORK_RECOMMENDATION_RECOMMENDED_NETWORK_EVALUATOR = 836;

    // ACTION: Logs the number of times a recommended network was resulted in a
    // successful connection
    // VALUE: true if the connection was successful, false if the connection failed
    WIFI_NETWORK_RECOMMENDATION_CONNECTION_SUCCESS = 837;

    // OPEN: Settings > Storage > Games
    // CATEGORY: SETTINGS
    // OS: O
    APPLICATIONS_STORAGE_GAMES = 838;

    // OPEN: Settings > Storage > Audio and Music
    // CATEGORY: SETTINGS
    // OS: O
    APPLICATIONS_STORAGE_MUSIC = 839;

    // ACTION: Settings > Storage > Free Up Space to launch Deletion Helper
    // CATEGORY: SETTINGS
    // OS: O
    STORAGE_FREE_UP_SPACE_NOW = 840;

    // ACTION: Settings > Storage > Files to open the File Manager
    // CATEGORY: SETTINGS
    // OS: O
    STORAGE_FILES = 841;

    // FIELD - Rank of the clicked Settings search result
    FIELD_SETTINGS_SEARCH_RESULT_RANK = 842;

    // OPEN: Settings > Apps > Default Apps > Assist >  Default assist
    DEFAULT_ASSIST_PICKER = 843;

    // OPEN: Settings > Apps > Default Apps > Assist >  Default voice input
    DEFAULT_VOICE_INPUT_PICKER = 844;

    // OPEN: Settings > Storage > [Profile]
    SETTINGS_STORAGE_PROFILE = 845;

    // OPEN: Settings > Security & screen lock -> Encryption & crendentials
    // CATEGORY: SETTINGS
    // OS: O
    ENCRYPTION_AND_CREDENTIAL = 846;

    // ACTION: Settings > About device > Build number
    ACTION_SETTINGS_BUILD_NUMBER_PREF = 847;

    // FIELD: Whether developer mode has already been enabled when clicking build number preference
    FIELD_SETTINGS_BUILD_NUMBER_DEVELOPER_MODE_ENABLED = 848;

    // OPEN: Settings > Wi-Fi > Network Details (click on Access Point)
    // CATEGORY: SETTINGS
    // OS: O
    WIFI_NETWORK_DETAILS = 849;

    // ACTION: Settings > Battery > Menu > Usage Alerts
    ACTION_SETTINGS_MENU_BATTERY_USAGE_ALERTS = 850;

    // ACTION: Settings > Battery > Menu > Optimization
    ACTION_SETTINGS_MENU_BATTERY_OPTIMIZATION = 851;

    // ACTION: Settings > Battery > Menu > Apps Toggle
    ACTION_SETTINGS_MENU_BATTERY_APPS_TOGGLE = 852;

    // ACTION: Settings > Any preference is changed
    ACTION_SETTINGS_PREFERENCE_CHANGE = 853;

    // FIELD: The name of preference when it is changed in Settings
    FIELD_SETTINGS_PREFERENCE_CHANGE_NAME = 854;

    // FIELD: The new value of preference when it is changed in Settings
    FIELD_SETTINGS_PREFERENCE_CHANGE_VALUE = 855;

    // OPEN: Notification channel created. CLOSE: Notification channel deleted. UPDATE: notification
    // channel updated
    // PACKAGE: the package the channel belongs too
    // CATEGORY: NOTIFICATION
    // OS: O
    ACTION_NOTIFICATION_CHANNEL = 856;

    // Tagged data for notification channel. String.
    FIELD_NOTIFICATION_CHANNEL_ID = 857;

    // Tagged data for notification channel. int.
    FIELD_NOTIFICATION_CHANNEL_IMPORTANCE = 858;

    // OPEN: Notification channel group created.
    // PACKAGE: the package the group belongs to
    // CATEGORY: NOTIFICATION
    // OS: O
    ACTION_NOTIFICATION_CHANNEL_GROUP = 859;

    // Tagged data for notification channel group. String.
    FIELD_NOTIFICATION_CHANNEL_GROUP_ID = 860;

    // OPEN: Settings > Wi-Fi > Wifi Preferences -> Advanced -> Network Scorer
    // CATEGORY: SETTINGS
    // OS: O
    SETTINGS_NETWORK_SCORER = 861;

    // OPEN: Settings > About device > Model > Hardware info dialog
    DIALOG_SETTINGS_HARDWARE_INFO = 862;

    // ACTION: Checks whether a contact's phone still exists
    // Value 0: It doesn't exist anymore
    // Value 1: It still exists
    // Value 2: A SecurityException was thrown
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_PHONE_EXISTS = 863;

    // ACTION: Retrieves a contact from CP2
    // Value 0: Contact retrieved without issues
    // Value 1: An IllegalArgumentException was thrown
    // CATEGORY: SETTINGS
    // OS: N
    ACTION_GET_CONTACT = 864;

    // This value should never appear in log outputs - it is reserved for
    // internal platform metrics use.
    RESERVED_FOR_LOGBUILDER_PID = 865;

    // ACTION: Settings > Connected devices > Bluetooth -> Available devices
    ACTION_SETTINGS_BLUETOOTH_PAIR = 866;

    // ACTION: Settings > Connected devices > Bluetooth -> Paired devices
    ACTION_SETTINGS_BLUETOOTH_CONNECT = 867;

    // ACTION: Settings > Connected devices > Bluetooth -> Connected device
    ACTION_SETTINGS_BLUETOOTH_DISCONNECT = 868;

    // ACTION: Settings > Connected devices > Bluetooth -> Error dialog
    ACTION_SETTINGS_BLUETOOTH_CONNECT_ERROR = 869;

    // ACTION: Settings > Connected devices > Bluetooth master switch Toggle
    ACTION_SETTINGS_MASTER_SWITCH_BLUETOOTH_TOGGLE = 870;

    // The name of the activity being launched in an app transition event.
    FIELD_CLASS_NAME = 871;

    // ACTION: Settings > App detail > Uninstall
    ACTION_SETTINGS_UNINSTALL_APP = 872;

    // ACTION: Settings > App detail > Uninstall Device admin app
    ACTION_SETTINGS_UNINSTALL_DEVICE_ADMIN = 873;

    // ACTION: Settings > App detail > Disable app
    ACTION_SETTINGS_DISABLE_APP = 874;

    // ACTION: Settings > App detail > Enable app
    ACTION_SETTINGS_ENABLE_APP = 875;

    // ACTION: Settings > App detail > Clear data
    ACTION_SETTINGS_CLEAR_APP_DATA = 876;

    // ACTION: Settings > App detail > Clear cache
    ACTION_SETTINGS_CLEAR_APP_CACHE = 877;

    // ACTION: Clicking on any search result in Settings.
    ACTION_CLICK_SETTINGS_SEARCH_INLINE_RESULT = 878;

    // FIELD: Settings inline search result name
    FIELD_SETTINGS_SEARCH_INLINE_RESULT_NAME = 879;

    // FIELD: Settings inline search result value
    FIELD_SETTINGS_SEARCH_INLINE_RESULT_VALUE = 880;

    // ACTION: Settings > Search > Click saved queries
    ACTION_CLICK_SETTINGS_SEARCH_SAVED_QUERY = 881;

    // OPEN: Settings > Security & screen lock -> Lock screen preferences
    // CATEGORY: SETTINGS
    SETTINGS_LOCK_SCREEN_PREFERENCES = 882;

    // ACTION: An app requested the app-op permission ACCESS_NOTIFICATIONS
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_APPOP_REQUEST_ACCESS_NOTIFICATIONS = 883;

    // ACTION: An app was granted the app-op permission ACCESS_NOTIFICATIONS
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_APPOP_GRANT_ACCESS_NOTIFICATIONS = 884;

    // ACTION: An app requested the app-op permission ACCESS_NOTIFICATIONS and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_APPOP_DENIED_ACCESS_NOTIFICATIONS = 885;

    // ACTION: The app-op permission ACCESS_NOTIFICATIONS was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_APPOP_REVOKE_ACCESS_NOTIFICATIONS = 886;

    // ACTION: An app requested the app-op permission SYSTEM_ALERT_WINDOW
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_APPOP_REQUEST_SYSTEM_ALERT_WINDOW = 887;

    // ACTION: An app was granted the app-op permission SYSTEM_ALERT_WINDOW
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_APPOP_GRANT_SYSTEM_ALERT_WINDOW = 888;

    // ACTION: An app requested the app-op permission SYSTEM_ALERT_WINDOW and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_APPOP_DENIED_SYSTEM_ALERT_WINDOW = 889;

    // ACTION: The app-op permission SYSTEM_ALERT_WINDOW was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_APPOP_REVOKE_SYSTEM_ALERT_WINDOW = 890;

    // ACTION: An app requested the app-op permission REQUEST_WRITE_SETTINGS
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_APPOP_REQUEST_WRITE_SETTINGS = 891;

    // ACTION: An app was granted the app-op permission REQUEST_WRITE_SETTINGS
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_APPOP_GRANT_WRITE_SETTINGS = 892;

    // ACTION: An app requested the app-op permission REQUEST_WRITE_SETTINGS and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_APPOP_DENIED_WRITE_SETTINGS = 893;

    // ACTION: The app-op permission REQUEST_WRITE_SETTINGS was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_APPOP_REVOKE_WRITE_SETTINGS = 894;

    // ACTION: An app requested the app-op permission REQUEST_INSTALL_PACKAGES
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_APPOP_REQUEST_REQUEST_INSTALL_PACKAGES = 895;

    // ACTION: An app was granted the app-op permission REQUEST_INSTALL_PACKAGES
    // PACKAGE: The package name of the app that was granted the permission
    // OBSOLETE as of Android P
    ACTION_APPOP_GRANT_REQUEST_INSTALL_PACKAGES = 896;

    // ACTION: An app requested the app-op permission REQUEST_INSTALL_PACKAGES and the request was denied
    // PACKAGE: The package name of the app requesting the permission
    // OBSOLETE as of Android P
    ACTION_APPOP_DENIED_REQUEST_INSTALL_PACKAGES = 897;

    // ACTION: The app-op permission REQUEST_INSTALL_PACKAGES was revoked for an app
    // PACKAGE: The package name of the app the permission was revoked for
    // OBSOLETE as of Android P
    ACTION_APPOP_REVOKE_REQUEST_INSTALL_PACKAGES = 898;

    // ACTION: Phase 1 of instant application resolution occurred
    // OS: O
    ACTION_INSTANT_APP_RESOLUTION_PHASE_ONE = 899;

    // ACTION: Phase 2 of instant application resolution occurred
    // OS: O
    ACTION_INSTANT_APP_RESOLUTION_PHASE_TWO = 900;

    // FIELD: The amount of time for an ephemeral resolution phase; in milliseconds
    // OS: O
    FIELD_INSTANT_APP_RESOLUTION_DELAY_MS = 901;

    // FIELD: The status of an ephemeral resolution phase
    // Value 0: success
    // Value 1: no full hash match
    // OS: O
    FIELD_INSTANT_APP_RESOLUTION_STATUS = 902;

    // FIELD - A token to identify all events that are part of the same instant application launch
    // OS: O
    FIELD_INSTANT_APP_LAUNCH_TOKEN = 903;

    // FIELD - The name of the package responsible for launching the activity
    // OS: O
    APP_TRANSITION_CALLING_PACKAGE_NAME = 904;

    // FIELD - Whether or not the launched activity is part of an instant application
    // OS: O
    APP_TRANSITION_IS_EPHEMERAL = 905;

    // An autofill session was started.
    // OS: O
    // Package: Package of app that is autofilled
    // NOTE: starting on OS MR1, it also added the following field:
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // NOTE: starting on OS P, it also added the following field:
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFIL_FLAGS: flags used to start the session.
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session started.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_SESSION_STARTED = 906;

    // An autofill request was processed by a service
    // Type TYPE_SUCCESS: service called FillCalback.onSuccess()
    // Type TYPE_FAILURE: service called FillCallback.onFailure()
    // Package: Package of app that is autofilled
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // Tag FIELD_AUTOFILL_NUM_DATASETS: The number of datasets returned in the response, or -1 if
    // the service returned a null response
    // NOTE: starting on OS P, it also added the following fields:
    // TYPE_CLOSE: request timed out before service called a FillCallback method
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_REQUEST_ORDINAL: sequence number of the request inside a session; starts
    //     with 1.
    // Tag FIELD_AUTOFILL_FLAGS: flags used to request autofill
    // Tag FIELD_AUTOFILL_DURATION: how long it took (in ms) to show the autofill UI after a field
    //     was focused.
    // Tag FIELD_AUTOFILL_AUTHENTICATION_STATUS: status of authenticated datasets or responses.
    // Tag FIELD_AUTOFILL_NUM_FIELD_CLASSIFICATION_IDS: if service requested field classification,
    //     number of entries field ids in the request.
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    // NOTE: Prior to P, some of the fields above were logged by 5 different metrics:
    // - AUTOFILL_UI_LATENCY
    // - AUTOFILL_AUTHENTICATED;
    // - AUTOFILL_DATASET_AUTHENTICATED
    // - AUTOFILL_INVALID_AUTHENTICATION
    // - AUTOFILL_INVALID_DATASET_AUTHENTICATION
    // NOTE: starting on OS Q, it also added the following fields:
    // Tag FIELD_AUTOFILL_TEXT_LEN: length of the error message provided by the service
    // Tag FIELD_AUTOFILL_NUMBER_AUGMENTED_REQUESTS: number of requests made to the augmented
    //     autofill service
    AUTOFILL_REQUEST = 907;

    // Tag of a field for a package of an autofill service
    FIELD_AUTOFILL_SERVICE = 908;

    // Tag of a field for the number of datasets
    FIELD_AUTOFILL_NUM_DATASETS = 909;

    // An autofill dataset selection UI was shown
    // Type TYPE_DISMISS: UI was explicityly canceled by the user
    // Type TYPE_CLOSE: UI was destroyed without influence of the user
    // Type TYPE_ACTION: dataset was selected
    // Type TYPE_DETAIL: authentication was selected
    // Package: Package of app that was autofilled
    // Tag FIELD_AUTOFILL_FILTERTEXT_LEN: The length of the filter text
    // Tag FIELD_AUTOFILL_NUM_DATASETS: The number of datasets shown
    // NOTE: starting on OS P, it also added the following fields:
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_FILL_UI = 910;

    // Tag of a field for the length of the filter text
    FIELD_AUTOFILL_FILTERTEXT_LEN = 911;

    // An autofill authentication succeeded
    // Package: Package of app that was autofilled
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // NOTE: starting on OS P, this metric became a value for FIELD_AUTOFILL_AUTHENTICATION_STATUS
    AUTOFILL_AUTHENTICATED = 912;

    // An activity was autofilled and all values could be applied
    // Package: Package of app that is autofilled
    // Tag FIELD_AUTOFILL_NUM_VALUES: Number of values that were suggested to be autofilled
    // Tag FIELD_AUTOFILL_NUM_VIEWS_FILLED: Number of views that could be filled
    // NOTE: starting on OS P, it also added the following fields:
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_DATASET_APPLIED = 913;

    // Tag of a field for the number values to be filled in
    FIELD_AUTOFILL_NUM_VALUES = 914;

    // Tag of a field for the number of views that were filled
    FIELD_AUTOFILL_NUM_VIEWS_FILLED = 915;

    // An autofill save UI was shown
    // Type TYPE_DISMISS: UI was explicityly canceled by the user
    // Type TYPE_CLOSE: UI was destroyed without influence of the user
    // Type TYPE_ACTION: data was saved
    // Package: Package of app that was autofilled
    // Tag FIELD_AUTOFILL_NUM_IDS: The number of ids that are saved
    // NOTE: starting on OS P, it also added the following fields:
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    // NOTE: starting on OS Q, it also added the following fields:
    // FIELD_AUTOFILL_UPDATE: Whether the UI displayed "UPDATE" instead of "SAVE"
    AUTOFILL_SAVE_UI = 916;

    // Tag of a field for the number of saveable ids
    FIELD_AUTOFILL_NUM_IDS = 917;

    // ACTION: An autofill service was requested to save data
    // Type TYPE_SUCCESS: The request succeeded right away
    // Type TYPE_OPEN: The request succeeded but the service launched an IntentSender
    // Type TYPE_FAILURE: The request failed
    // Package: Package of app that was autofilled
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // NOTE: starting on OS P, it also added the following fields:
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    // NOTE: starting on OS Q, it also added the following fields:
    // Tag FIELD_AUTOFILL_TEXT_LEN: length of the error message provided by the service
    AUTOFILL_DATA_SAVE_REQUEST = 918;

    // An auto-fill session was finished
    // OS: O
    // Package: Package of app that was autofilled
    // NOTE: starting on OS P, it also added the following fields:
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    // Tag FIELD_AUTOFILL_NUMBER_REQUESTS: number of requests made to the service (each request
    //     is logged by a separate AUTOFILL_REQUEST metric)
    AUTOFILL_SESSION_FINISHED = 919;

    // meta-event: a reader has checkpointed the log here.
    METRICS_CHECKPOINT = 920;

    // OPEN: Settings -> Display -> When in VR Mode
    VR_DISPLAY_PREFERENCE = 921;

    // OPEN: Settings > Accessibility > Magnification
    // CATEGORY: SETTINGS
    // OS: O
    ACCESSIBILITY_SCREEN_MAGNIFICATION_SETTINGS = 922;

    // ACTION: Logs pressing the "Clear app" button in the app info settings page for an instant
    // app.
    // VALUE: The package name of the app
    ACTION_SETTINGS_CLEAR_INSTANT_APP = 923;

    // OPEN: Settings -> System -> Reset options
    RESET_DASHBOARD = 924;

    // ACTION: QS -> Tile clicked
    ACTION_QS_CLICK = 925;

    // ACTION: QS -> Secondary click
    ACTION_QS_SECONDARY_CLICK = 926;

    // FIELD: Position info in QS clicks
    FIELD_QS_POSITION = 927;

    // FIELD: The value of a QS tile when clicked (if applicable)
    FIELD_QS_VALUE = 928;

    // ACTION: QS -> Detail panel -> more settings
    ACTION_QS_MORE_SETTINGS = 929;

    // ACTION: QS -> Click date
    ACTION_QS_DATE = 930;

    // ACTION: Event on nav button
    ACTION_NAV_BUTTON_EVENT = 931;

    // FIELD: Flags for a nav button event
    FIELD_FLAGS = 932;

    // FIELD: Action for a nav button event
    FIELD_NAV_ACTION = 933;

    // OPEN: Settings > Security > Nexus Imprint > [Fingerprint] > Delete
    // CATEGORY: SETTINGS
    // OS: O
    FINGERPRINT_REMOVE_SIDECAR = 934;

    // OPEN: Settings > Storage > Movies & TV
    // CATEGORY: SETTINGS
    // OS: O
    APPLICATIONS_STORAGE_MOVIES = 935;

    // OPEN: Text selection "assist" menu item shown.
    //  SUBTYPE: 1 is for EMAIL, 2 is for PHONE, 3 is for ADDRESS, 4 is for URL, 0 is for OTHER.
    // CATEGORY: TEXT_CONTROLS
    // OS: O
    TEXT_SELECTION_MENU_ITEM_ASSIST = 936;

    // ACTION: Text selection "assist" menu item clicked.
    //  SUBTYPE: 1 is for EMAIL, 2 is for PHONE, 3 is for ADDRESS, 4 is for URL, 0 is for OTHER.
    // CATEGORY: TEXT_CONTROLS
    // OS: O
    ACTION_TEXT_SELECTION_MENU_ITEM_ASSIST = 937;

    // OPEN: Settings > Security > Managed Device Info > Apps installed
    // CATEGORY: SETTINGS
    // OS: O
    ENTERPRISE_PRIVACY_INSTALLED_APPS = 938;

    // OPEN: Settings > Security > Managed Device Info > nnn permissions
    // CATEGORY: SETTINGS
    // OS: O
    ENTERPRISE_PRIVACY_PERMISSIONS = 939;

    // OPEN: Settings > Security > Managed Device Info > Default apps
    // CATEGORY: SETTINGS
    // OS: O
    ENTERPRISE_PRIVACY_DEFAULT_APPS = 940;

    // OPEN: Settings > Notifications > An app > A channel > Importance
    // CATEGORY: SETTINGS
    // OS: O
    NOTIFICATION_CHANNEL_IMPORTANCE = 941;

    // OPEN: Settings > Notifications > An app > A channel > On the lock screen
    // CATEGORY: SETTINGS
    // OS: O
    NOTIFICATION_CHANNEL_LOCK_SCREEN_VIS = 942;

    // This value should never appear in log outputs - it is reserved for
    // internal platform metrics use.
    RESERVED_FOR_LOGBUILDER_UID = 943;

    // OPEN: Running background apps notification > List of background apps
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O
    RUNNING_BACKGROUND_APPS_DIALOG = 944;

    // FIELD - The delay from the start of the transition until we just call bindApplication on the
    // client.
    // OS: O
    APP_TRANSITION_BIND_APPLICATION_DELAY_MS = 945;

    // FIELD - The group ID of a notification.
    // Type: string
    // OS: O
    FIELD_NOTIFICATION_GROUP_ID = 946;

    // FIELD - If the notification is a group summary: 1.
    // Type: int encoded boolean
    // OS: O
    FIELD_NOTIFICATION_GROUP_SUMMARY = 947;

    // An app attempted to forge a different component name in the AssisStructure that would be
    // passed to the autofill service.
    // OS: O (security patch)
    // Package: Real package of the app being autofilled
    // Tag FIELD_AUTOFILL_SERVICE: Package of the autofill service that processed the request
    // TAG FIELD_AUTOFILL_FORGED_COMPONENT_NAME: Component name being forged
    // NOTE: starting on OS P, it also added the following field:
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_FORGED_COMPONENT_ATTEMPT = 948;

    // FIELD - The component that an app tried tro forged.
    // Type: string
    // OS: O (security patch)
    FIELD_AUTOFILL_FORGED_COMPONENT_NAME = 949;

    // ---- End O Constants, all O constants go above this line ----

    // OPEN: Settings > System > Languages & input > Advanced > Lift to open camera
    SETTINGS_GESTURE_CAMERA_LIFT_TRIGGER = 986;

    // OPEN: Settings > Battery > High Usage > Abnormal app page
    // CATEGORY: SETTINGS
    FUELGAUGE_ANOMALY_DETAIL = 987;

    // OPEN: Settings > Battery > High Usage
    DIALOG_HANDLE_ANOMALY = 988;

    // ACTION: Camera lift gesture
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O
    ACTION_CAMERA_LIFT_TRIGGER = 989;

    // OPEN: Choose screen lock dialog in Settings
    // CATEGORY: SETTINGS
    // OS: O DR
    SETTINGS_CHOOSE_LOCK_DIALOG = 990;

    // OPEN: Assist Gesture training intro in Settings
    // CATEGORY: SETTINGS
    // OS: O DR
    SETTINGS_ASSIST_GESTURE_TRAINING_INTRO = 991;

    // OPEN: Assist Gesture training enrolling in Settings
    // CATEGORY: SETTINGS
    // OS: O DR
    SETTINGS_ASSIST_GESTURE_TRAINING_ENROLLING = 992;

    // OPEN: Assist Gesture training finished in Settings
    // CATEGORY: SETTINGS
    // OS: O DR
    SETTINGS_ASSIST_GESTURE_TRAINING_FINISHED = 993;

    // FIELD: The numeric preference value (of type long) when it is changed in Settings
    FIELD_SETTINGS_PREFERENCE_CHANGE_LONG_VALUE = 994;

    // FIELD: The numeric preference value (of type float) when it is changed in Settings
    FIELD_SETTINGS_PREFERENCE_CHANGE_FLOAT_VALUE = 995;

    // OPEN: Settings > System > Languages & input > Assist gesture
    // CATEGORY: SETTINGS
    // OS: O DR
    SETTINGS_ASSIST_GESTURE = 996;

    // ACTION: Assist gesture released without triggering
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O DR
    ASSIST_GESTURE_RELEASED = 997;

    // ACTION: Assist gesture primed
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O DR
    ASSIST_GESTURE_PRIMED = 998;

    // ACTION: Assist gesture triggered
    //  SUBTYPE: 1 is for SCREEN_ON, 2 is for SCREEN_OFF
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O DR
    ASSIST_GESTURE_TRIGGERED = 999;

    // ACTION: Update default app from Settings
    ACTION_SETTINGS_UPDATE_DEFAULT_APP = 1000;

    // FIELD - Query length when Settings search result is clicked
    FIELD_SETTINGS_SEARCH_QUERY_LENGTH = 1001;

    // FIELD - Number of results when Settings search result is clicked
    FIELD_SETTINGS_SEARCH_RESULT_COUNT = 1002;

    // OPEN: Settings > Display > Ambient Display
    // CATEGORY: SETTINGS
    // OS: O DR
    AMBIENT_DISPLAY_SETTINGS = 1003;

    // ACTION: CaptivePortalLoginActivity starts
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O DR
    ACTION_CAPTIVE_PORTAL_LOGIN_ACTIVITY = 1004;

    // ACTION: CaptivePortalLoginActivity auto-closes
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O DR
    ACTION_CAPTIVE_PORTAL_LOGIN_RESULT_DISMISSED = 1005;

    // ACTION: CaptivePortalLoginActivity > Menu > Do not use this network
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O DR
    ACTION_CAPTIVE_PORTAL_LOGIN_RESULT_UNWANTED = 1006;

    // ACTION: CaptivePortalLoginActivity > Menu > Use this network
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O DR
    ACTION_CAPTIVE_PORTAL_LOGIN_RESULT_WANTED_AS_IS = 1007;

    // ACTION: Settings > Wi-Fi > [Long press network] > Sign in to network
    // CATEGORY: SETTINGS
    // OS: O DR
    ACTION_WIFI_SIGNIN = 1008;

    // OPEN: Settings->Connected Devices->Bluetooth->(click on details link for a paired device)
    // CATEGORY: SETTINGS
    // OS: O DR
    BLUETOOTH_DEVICE_DETAILS = 1009;

    // OPEN: Settings > credential pages - prompt for key guard configuration confirmation
    CONFIGURE_KEYGUARD_DIALOG = 1010;

    // Open: Settings > Search > No Result View
    SETTINGS_SEARCH_NO_RESULT = 1011;

    // OPEN: Assist Gesture before training
    // CATEGORY: SETTINGS
    // OS: O DR
    SETTINGS_ASSIST_GESTURE_FIRST_TIME = 1012;

    // CaptivePortalLoginActivity displays SSL error page
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O DR
    CAPTIVE_PORTAL_LOGIN_ACTIVITY_SSL_ERROR = 1013;

    // OPEN: Settings > Network > Tether > Wi-Fi hotspot
    WIFI_TETHER_SETTINGS = 1014;

    // OPEN: Settings->Connected Devices->Bluetooth->(click on details link for a paired device)
    // -> Edit name button.
    // CATEGORY: SETTINGS
    // OS: O DR
    DIALOG_BLUETOOTH_PAIRED_DEVICE_RENAME = 1015;

    // ACTION: Settings > Notification Settings > Open application notification
    // CATEGORY: SETTINGS
    // OS: O DR
    ACTION_OPEN_APP_NOTIFICATION_SETTING = 1016;

    // ACTION: Settings > App Info > Open app settings
    // CATEGORY: SETTINGS
    // OS: O DR
    ACTION_OPEN_APP_SETTING = 1017;

    // OPEN: Settings > Connected devices > Bluetooth > Pair new device
    // CATEGORY: SETTINGS
    // OS: O DR
    BLUETOOTH_PAIRING = 1018;

    // ACTION: Collect PSD Signals
    // CATEGORY: SETTINGS
    // OS: O DR
    ACTION_PSD_LOADER = 1019;

    // ACTION: Background check action on an app
    // CATEGORY: SETTINGS
    // OS: O DR
    ACTION_APP_BACKGROUND_CHECK = 1020;

    // ACTION: Location check action on an app
    // CATEGORY: SETTINGS
    // OS: O DR
    ACTION_APP_LOCATION_CHECK = 1021;

    // Device headset status
    // CATEGORY: OTHER
    //  SUBTYPE: 1 is DON, 2 is DOFF
    // OS: O DR
    ACTION_HEADSET_STATUS = 1022;

    // Device Headset Plug status
    // CATEGORY: OTHER
    //  SUBTYPE: 1 is AC power, 2 is USB power, 3 is Unplug
    // OS: O DR
    ACTION_HEADSET_PLUG = 1023;

    // Device Headset battery level on Plug
    // CATEGORY: OTHER
    // FIELD - The battery percentage when the user decided to plug in
    // Type: integer
    // OS: O DR
    FIELD_PLUG_BATTERY_PERCENTAGE = 1024;

    // Device Headset battery level on Plug
    // CATEGORY: OTHER
    // FIELD - The battery percentage when the user decided to plug in
    // Type: integer
    // OS: O DR
    FIELD_UNPLUG_BATTERY_PERCENTAGE = 1025;

    // Device Headset Pose status
    // CATEGORY: OTHER
    //  SUBTYPE: 1 is 6DOF, 2 is 3DOF
    // OS: O DR
    ACTION_HEADSET_POSE_STATUS = 1026;

    // Device Headset Usage session time
    // CATEGORY: OTHER
    // FIELD - The time the headset was used in a session
    // OS: O DR
    FIELD_SESSION_TIME_MS = 1027;

    // Device Headset Idle time
    // CATEGORY: OTHER
    // FIELD - The time in between each session
    // OS: O DR
    FIELD_TIME_ELAPSED_BETWEEN_SESSION_MS = 1028;

    // Device Headset charge session time
    // CATEGORY: OTHER
    // FIELD - The time taken for each charge
    // OS: O DR
    FIELD_TIME_OF_CHARGE_MS = 1029;

    // Device Headset time between charge
    // CATEGORY: OTHER
    // FIELD - The time in between each charge
    // OS: O DR
    FIELD_TIME_ELAPSED_BETWEEN_CHARGE_MS = 1030;

    // OPEN: Settings->Connected Devices->Bluetooth->(click on details link for a paired device)
    // -> Forget button.
    // CATEGORY: SETTINGS
    // OS: O DR
    DIALOG_BLUETOOTH_PAIRED_DEVICE_FORGET = 1031;

    // An event from the camera service
    // CATEGORY: OTHER
    //  SUBTYPE: CameraEvent
    // OS: O DR
    ACTION_CAMERA_EVENT = 1032;

    // OPEN: Settings > Trampoline Intent > Settings page
    // CATEGORY: SETTINGS
    // OS: O DR
    TRAMPOLINE_SETTINGS_EVENT = 1033;

    // ---- End O-DR1 Constants, all O-DR1 constants go above this line ----

    // ACTION: Settings > Network & Internet > Mobile network > Mobile data
    // CATEGORY: SETTINGS
    // OS: O MR
    ACTION_MOBILE_NETWORK_MOBILE_DATA_TOGGLE = 1081;

    // ACTION: Settings > Network & Internet > Mobile network > Data usage
    // CATEGORY: SETTINGS
    // OS: O MR
    ACTION_MOBILE_NETWORK_DATA_USAGE = 1082;

    // FIELD - State of asynchronous ranking when Settings search result is clicked
    // CATEGORY: SETTINGS
    // OS: O MR
    FIELD_SETTINGS_SEARCH_RESULT_ASYNC_RANKING_STATE = 1083;

    // ACTION: Settings > Connected devices > SMS Mirroring
    // CATEGORY: SETTINGS
    // OS: O MR
    ACTION_SETTINGS_SMS_MIRRORING = 1084;

    // ACTION: Chooser picked a ranked target.
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O MR
    ACTION_TARGET_SELECTED = 1085;

    // FIELD - is category used in Chooser: 1.
    // Type: int encoded boolean
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O MR
    FIELD_IS_CATEGORY_USED = 1086;

    // FIELD - ranked position of selected target for Chooser.
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: O MR
    FIELD_RANKED_POSITION = 1087;

    // OPEN: Settings > Data plan usage
    // CATEGORY: SETTINGS
    // OS: O MR
    DATA_PLAN_USAGE_SUMMARY = 1088;

    // FIELD: The numeric preference value (of type int) when it is changed in Settings
    FIELD_SETTINGS_PREFERENCE_CHANGE_INT_VALUE = 1089;

    // ACTION: Logged when the app has notified that it has fully drawn. See
    // Activity.reportFullyDrawn().
    APP_TRANSITION_REPORTED_DRAWN = 1090;

    // FIELD: The delay of the activity reporting to be fully drawn measured from the beginning of
    // the app transition.
    APP_TRANSITION_REPORTED_DRAWN_MS = 1091;

    // OPEN: Settings > Storage > Photos & Videos
    // CATEGORY: SETTINGS
    // OS: O MR
    APPLICATIONS_STORAGE_PHOTOS = 1092;

    // ACTION: Logged when the status bar icons change.
    // OS: O MR
    STATUS_BAR_ICONS_CHANGED = 1093;

    // FIELD: Bitfield indicating which icons are shown.
    // OS: O MR
    FIELD_STATUS_ICONS = 1094;

    // FIELD: Number of status icons currently shown.
    // OS: O MR
    FIELD_NUM_STATUS_ICONS = 1095;

    // ACTION: Logged when user tries to pair a Bluetooth device without name from Settings app
    // CATEGORY: SETTINGS
    // OS: O MR
    ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES = 1096;

    // FIELD - Whether smart suggestion ranking was enabled or not
    // Type: int encoded boolean
    // CATEGORY: SETTINGS
    // OS: O MR
    FIELD_SETTINGS_SMART_SUGGESTIONS_ENABLED = 1097;

    // ACTION: The device boots
    ACTION_BOOT = 1098;

    // FIELD: A string value representing some state of the platform, e.g., boot reason
    FIELD_PLATFORM_REASON = 1099;

    // CATEGORY: The category for all actions relating to selection session logging.
    // OS: O MR
    TEXT_SELECTION_SESSION = 1100;

    // ACTION: A selection session started (i.e. the selection handles appeared)
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_START = 1101;

    // ACTION: The user modified the selection (e.g. by dragging the handles)
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_MODIFY = 1102;

    // ACTION: The user modified the selection by pressing the "select all" button.
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_SELECT_ALL = 1103;

    // ACTION: The user modified the selection by pressing on a word in a multi word selection
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_RESET = 1104;

    // ACTION: Smart selection made a single word prediction
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_SMART_SINGLE = 1105;

    // ACTION: Smart selection made a multi word prediction
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_SMART_MULTI = 1106;

    // ACTION: The app made an automatic selection on the user's behalf (not smart selection)
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_AUTO = 1107;

    // ACTION: A selection session ended with the user typing over the text
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_OVERTYPE = 1108;

    // ACTION: A selection session ended with the user copying the text
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_COPY = 1109;

    // ACTION: A selection session ended with the user pasting over the text
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_PASTE = 1110;

    // ACTION: A selection session ended with the user cutting the text
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_CUT = 1111;

    // ACTION: A selection session ended with the user pressing the share button
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_SHARE = 1112;

    // ACTION: A selection session ended with the user pressing the smart share button
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_SMART_SHARE = 1113;

    // ACTION: A selection session ended with the user dragging the text
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_DRAG = 1114;

    // ACTION: A selection session ended with the user abandoning the selection
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_ABANDON = 1115;

    // ACTION: A selection session ended with the user picking an unhandled action bar item
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    ACTION_TEXT_SELECTION_OTHER = 1116;

    // FIELD: Time in milliseconds from the start of the session to this event
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    FIELD_SELECTION_SINCE_START = 1117;

    // FIELD: time in milliseconds between the last event in the session and this one
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    FIELD_SELECTION_SINCE_PREVIOUS = 1118;

    // FIELD: a random uid for a selection session (lasting from select start to end)
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    FIELD_SELECTION_SESSION_ID = 1119;

    // FIELD: the sequence number of the event in the session
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    FIELD_SELECTION_SESSION_INDEX = 1120;

    // FIELD: a concatenation of the widget type and ML model version.
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    FIELD_SELECTION_VERSION_TAG = 1121;

    // FIELD: text select start offset in words (as defined by the ICU BreakIterator), stored as two
    //        packed 16bit integers. (start in MSBs, end in LSBs)
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    FIELD_SELECTION_RANGE = 1122;

    // FIELD: smart text selection start offset in words (as defined by the ICU BreakIterator),
    //        stored as two packed 16bit integers. (start in MSBs, end in LSBs)
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: O MR
    FIELD_SELECTION_SMART_RANGE = 1123;

    // The value of an autofillable and savable view was reset
    // Package: Package of app that was autofilled
    // OS: O MR
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // Tag FIELD_AUTOFILL_PREVIOUS_LENGTH: the previous length of the value
    // NOTE: starting on OS P, it also added the following fields:
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_VALUE_RESET = 1124;

    // Tag of AUTOFILL_VALUE_RESET
    // OS: O MR
    FIELD_AUTOFILL_PREVIOUS_LENGTH = 1125;

    // An autofill dataset authentication succeeded
    // Package: Package of app that was autofilled
    // OS: O MR
    // NOTE: starting on OS P, this metric became a value for FIELD_AUTOFILL_AUTHENTICATION_STATUS
    AUTOFILL_DATASET_AUTHENTICATED = 1126;

    // An autofill service provided an invalid dataset authentication
    // Package: Package of app that was autofilled
    // OS: O MR
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // NOTE: starting on OS P, this metric became a value for FIELD_AUTOFILL_AUTHENTICATION_STATUS
    AUTOFILL_INVALID_DATASET_AUTHENTICATION = 1127;

    // An autofill service provided an invalid authentication extra
    // Package: Package of app that was autofilled
    // OS: O MR
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // NOTE: starting on OS P, this metric became a value for FIELD_AUTOFILL_AUTHENTICATION_STATUS
    AUTOFILL_INVALID_AUTHENTICATION = 1128;

    // An autofill service used a custom description (using RemoteViews) in the autofill save UI
    // Package: Package of app that is autofilled
    // OS: O MR
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // Tag FIELD_AUTOFILL_SAVE_TYPE: Type of save object passed by the service
    // NOTE: starting on OS P, it also added the following fields:
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_SAVE_CUSTOM_DESCRIPTION = 1129;

    // FIELD - Type of save object passed by the service when the Save UI is shown
    // OS: O MR
    FIELD_AUTOFILL_SAVE_TYPE = 1130;

    // An autofill service used a custom subtitle (String) in the autofill save UI
    // Package: Package of app that is autofilled
    // OS: O MR
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // Tag FIELD_AUTOFILL_SAVE_TYPE: Type of save object passed by the service
    // NOTE: starting on OS P, it also added the following fields:
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_SAVE_CUSTOM_SUBTITLE = 1131;

    // User tapped a link in the custom description of the autofill save UI provided by an autofill service
    // Package: Package of app that is autofilled
    // OS: O MR
    // Type TYPE_UNKNOWN: The link was not properly set by the service
    // Type TYPE_OPEN: The link launched an activity
    // Type TYPE_FAILURE: The link could not launc an activity
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // Tag FIELD_AUTOFILL_SAVE_TYPE: Type of save object passed by the service
    // NOTE: starting on OS P, it also added the following fields:
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_SAVE_LINK_TAPPED = 1132;

    // Result of the validation on save when an autofill service provided a validator
    // Package: Package of app that is autofilled
    // OS: O MR
    // Type TYPE_FAILURE: The validation could not be performed due to an error
    // Type TYPE_SUCCESS: The validation passed
    // Type TYPE_DISMISS: The validation failed
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // Tag FIELD_AUTOFILL_SAVE_TYPE: Type of save object passed by the service
    // NOTE: starting on OS P, it also added the following fields:
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_SAVE_VALIDATION = 1133;

    // Result of an operation in the autofill save UI after the user tapped a link in the custom description
    // provided by the autofill service
    // Package: Package of app that is autofilled
    // OS: O MR
    // Type TYPE_OPEN: The autofill save UI was restored
    // Type TYPE_DISMISS: The autofill save UI was destroyed
    // Type TYPE_FAILURE: An invalid opperation was reported by the app's AutofillManager
    // NOTE: starting on OS P, it also added the following fields:
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_PENDING_SAVE_UI_OPERATION = 1134;

    // Autofill service called API that disables itself
    // Package: Package of the autofill service
    // OS: O MR
    AUTOFILL_SERVICE_DISABLED_SELF = 1135;

    // DEPRECATED - on P it was merged with AUTOFILL_REQUEST
    // Reports how long it took to show the autofill UI after a field was focused
    // Tag FIELD_AUTOFILL_DURATION: Duration in ms
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // Package: Package of the autofill service
    // OS: O MR
    AUTOFILL_UI_LATENCY = 1136;

    // Action: the snooze leave-behind was shown after the user clicked the snooze icon
    // OS: O MR
    NOTIFICATION_SNOOZE_CLICKED = 1137;

    // Action: user selected a notification snooze duration from the drop down
    // OS: O MR
    NOTIFICATION_SELECT_SNOOZE = 1138;

    // attached to NOTIFICATION_SNOOZED and NOTIFICATION_SELECT_SNOOZE events
    // OS: O MR
    FIELD_NOTIFICATION_SNOOZE_DURATION_MS = 1139;

    // attached to NOTIFICATION_SELECT_SNOOZE events to indicate the option selected
    // OS: O MR
    FIELD_NOTIFICATION_SNOOZE_INDEX = 1140;

    // Action: user tapped undo on the notification snooze leave-behind
    // OS: O MR
    NOTIFICATION_UNDO_SNOOZE = 1141;

    // Action: user togged the visibility of the notification snooze options drop down
    // OS: O MR
    NOTIFICATION_SNOOZE_OPTIONS = 1142;

    // OPEN: Settings > Display > Colors
    // CATEGORY: SETTINGS
    // OS: O MR
    COLOR_MODE_SETTINGS = 1143;

    // Enclosing category for group of APP_TRANSITION_FOO events,
    // logged when we cancel an app transition.
    APP_TRANSITION_CANCELLED = 1144;

    // Tag of a field representing a duration on autofill-related metrics.
    FIELD_AUTOFILL_DURATION = 1145;

    // ---- End O-MR1 Constants, all O-MR1 constants go above this line ----

    // OPEN: Settings > Network & Internet > Mobile network
    // CATEGORY: SETTINGS
    SETTINGS_MOBILE_NETWORK_CATEGORY = 1200;

    // ACTION: Settings > Network & Internet > Mobile network > Roaming
    // CATEGORY: SETTINGS
    ACTION_MOBILE_NETWORK_DATA_ROAMING_TOGGLE = 1201;

    // ACTION: Settings > Network & Internet > Mobile network > Advanced
    // CATEGORY: SETTINGS
    ACTION_MOBILE_NETWORK_EXPAND_ADVANCED_FIELDS = 1202;

    // ACTION: Settings > Network & Internet > Mobile network > Enhanced 4G LTE Mode
    // CATEGORY: SETTINGS
    ACTION_MOBILE_ENHANCED_4G_LTE_MODE_TOGGLE = 1203;

    // ACTION: Settings > Network & Internet > Mobile network > Preferred network type
    // CATEGORY: SETTINGS
    ACTION_MOBILE_NETWORK_SELECT_PREFERRED_NETWORK = 1204;

    // ACTION: Settings > Network & Internet > Mobile network > Preferred network type (enabled networks)
    // CATEGORY: SETTINGS
    ACTION_MOBILE_NETWORK_SELECT_ENABLED_NETWORK = 1205;

    // OPEN: Settings > Network & Internet > Mobile network > Carrier
    // CATEGORY: SETTINGS
    ACTION_MOBILE_NETWORK_EUICC_SETTING = 1206;

    // OPEN: Settings > Network & Internet > Mobile network > Wi-Fi calling
    // CATEGORY: SETTINGS
    ACTION_MOBILE_NETWORK_WIFI_CALLING = 1207;

    // ACTION: Settings > Network & Internet > Mobile network > Carrier video calling
    // CATEGORY: SETTINGS
    ACTION_MOBILE_NETWORK_VIDEO_CALLING_TOGGLE = 1208;

    // ACTION: Settings > Network & Internet > Mobile network > Automatically select network
    // CATEGORY: SETTINGS
    ACTION_MOBILE_NETWORK_AUTO_SELECT_NETWORK_TOGGLE = 1209;

    // ACTION: Settings > Network & Internet > Mobile network > Network
    // CATEGORY: SETTINGS
    ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK = 1210;

    // Not used anymore.
    FIELD_MOBILE_NETWORK = 1211;

    // OPEN: Settings > Network & Internet > Mobile network > Access Point Names
    // CATEGORY: SETTINGS
    ACTION_MOBILE_NETWORK_APN_SETTINGS = 1212;

    // OPEN: Settings > Network & Internet > Mobile network > Carrier settings
    // CATEGORY: SETTINGS
    ACTION_MOBILE_NETWORK_CARRIER_SETTINGS = 1213;

    // OPEN: Settings > Network & Internet > Mobile network > System select
    // CATEGORY: SETTINGS
    ACTION_MOBILE_NETWORK_CDMA_SYSTEM_SELECT = 1214;

    // OPEN: Settings > Network & Internet > Mobile network > CDMA subscription
    // CATEGORY: SETTINGS
    ACTION_MOBILE_NETWORK_CDMA_SUBSCRIPTION_SELECT = 1215;

    // ACTION: Settings > Network & Internet > Mobile network > Set up data service
    // CATEGORY: SETTINGS
    ACTION_MOBILE_NETWORK_SET_UP_DATA_SERVICE = 1216;

    // OPEN: Settings > Developer Options > Experiment dashboard
    // CATEGORY: SETTINGS
    SETTINGS_FEATURE_FLAGS_DASHBOARD = 1217;

    // OPEN: Settings > Notifications > [App] > Topic Notifications
    // CATEGORY: SETTINGS
    // OS: P
    NOTIFICATION_CHANNEL_GROUP = 1218;

    // OPEN: Settings > Developer options > Enable > Info dialog
    // CATEGORY: SETTINGS
    // OS: P
    DIALOG_ENABLE_DEVELOPMENT_OPTIONS = 1219;

    // OPEN: Settings > Developer options > OEM unlocking > Info dialog
    // CATEGORY: SETTINGS
    // OS: P
    DIALOG_ENABLE_OEM_UNLOCKING = 1220;

    // OPEN: Settings > Security > Nexus Imprint > [Fingerprint]
    // CATEGORY: SETTINGS
    // OS: P
    FINGERPRINT_AUTHENTICATE_SIDECAR = 1221;

    // OPEN: Settings > Developer options > USB debugging > Info dialog
    // CATEGORY: SETTINGS
    // OS: P
    DIALOG_ENABLE_ADB = 1222;

    // OPEN: Settings > Developer options > Revoke USB debugging authorizations > Info dialog
    // CATEGORY: SETTINGS
    // OS: P
    DIALOG_CLEAR_ADB_KEYS = 1223;

    // Open: Settings > Developer options > Quick setting tile config
    // CATEGORY: SETTINGS
    // OS: P
    DEVELOPMENT_QS_TILE_CONFIG = 1224;

    // OPEN: Settings > Developer options > Store logger data persistently on device > Info dialog
    // CATEGORY: SETTINGS
    // OS: P
    DIALOG_LOG_PERSIST = 1225;

    // ACTION: DND Settings > Priority only allows > Alarms toggle
    // SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_ZEN_ALLOW_ALARMS = 1226;

    // ACTION: DND Settings > Priority only allows > Media toggle
    // SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_ZEN_ALLOW_MEDIA = 1227;

    // An autofill service explicitly defined which view should commit the autofill context
    // Package: Package of app that is autofilled
    // OS: P
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_EXPLICIT_SAVE_TRIGGER_DEFINITION = 1228;

    // The autofill context was commited when the user clicked a view explicitly marked by the
    // service as committing it
    // Package: Package of app that is autofilled
    // OS: P
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_SAVE_EXPLICITLY_TRIGGERED = 1229;

    // OPEN: Settings > Network & Internet > Mobile network > Wi-Fi calling
    // CATEGORY: SETTINGS
    // OS: P
    WIFI_CALLING_FOR_SUB = 1230;

    // An autofill service asked to disable autofill for a given application.
    // Package: Package of app that is being disabled for autofill
    // OS: P
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // Tag FIELD_AUTOFILL_DURATION: duration (in ms) that autofill will be disabled
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_SERVICE_DISABLED_APP = 1231;

    // An autofill service asked to disable autofill for a given activity.
    // Package: Package of app whose activity is being disabled for autofill
    // OS: P
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // Tag FIELD_CLASS_NAME: Class name of the activity that is being disabled for autofill
    // Tag FIELD_AUTOFILL_DURATION: duration (in ms) that autofill will be disabled
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_SERVICE_DISABLED_ACTIVITY = 1232;

    // ACTION: Stop an app and turn on background check
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_APP_STOP_AND_BACKGROUND_CHECK = 1233;

    // FIELD: The action type for each anomaly
    // CATEGORY: SETTINGS
    // OS: P
    FIELD_ANOMALY_ACTION_TYPE = 1234;

    // OPEN: Settings -> Battery -> Wakelock anomaly
    // CATEGORY: SETTINGS
    // OS: P
    ANOMALY_TYPE_WAKELOCK = 1235;

    // OPEN: Settings -> Battery -> Wakeup alarm anomaly
    // CATEGORY: SETTINGS
    // OS: P
    ANOMALY_TYPE_WAKEUP_ALARM = 1236;

    // OPEN: Settings -> Battery -> Unoptimized bt anomaly
    // CATEGORY: SETTINGS
    // OS: P
    ANOMALY_TYPE_UNOPTIMIZED_BT = 1237;

    // Open: Settings > Dev options > Oem unlock > lock it > warning dialog.
    // OS: P
    DIALOG_OEM_LOCK_INFO = 1238;

    // ACTION: Settings > Wi-Fi > Click one network > Auto sign in
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_WIFI_AUTO_SIGN_IN = 1239;

    // Open: Settings > System > About phone > IMEI
    // CATEGORY: SETTINGS
    // OS: P
    DIALOG_IMEI_INFO = 1240;

    // In permission action fields tagged like this reference the permission affected
    FIELD_PERMISSION = 1241;

    // ACTION: An app requested a permission and we asked to user to approve the request
    // PACKAGE: The package name of the app requesting the permission
    // Tag FIELD_PERMISSION: Name of the permission requested
    ACTION_PERMISSION_REQUESTED = 1242;

    // ACTION: An app was granted the a permission. This can happen after a user approved a request
    //         or automatically. In the second case there will not be an
    //         ACTION_PERMISSION_REQUESTED.
    // PACKAGE: The package name of the app that was granted the permission
    // Tag FIELD_PERMISSION: Name of the permission granted
    ACTION_PERMISSION_GRANTED = 1243;

    // ACTION: An app requested the a permission and the request was denied by the user or a device
    //         policy
    // PACKAGE: The package name of the app requesting the permission
    // Tag FIELD_PERMISSION: Name of the permission denied
    ACTION_PERMISSION_DENIED = 1244;

    // ACTION: A permission was revoked
    // PACKAGE: The package name of the app the permission was revoked for
    // Tag FIELD_PERMISSION: Name of the permission revoked
    ACTION_PERMISSION_REVOKED = 1245;

    // OPEN: Settings > System > About Phone > Sim status
    // CATEGORY: SETTINGS
    // OS: P
    DIALOG_SIM_STATUS = 1246;

    // OPEN: Settings > System > About Phone > Android Version
    // CATEGORY: SETTINGS
    // OS: P
    DIALOG_FIRMWARE_VERSION = 1247;

    // OPEN: Settings > Network & internet > Menu > Private DNS
    // CATEGORY: SETTINGS
    // OS: P
    DIALOG_PRIVATE_DNS = 1248;

    // ACTION: A private dns mode been selected by user
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_PRIVATE_DNS_MODE = 1249;

    // FIELD: text select start offset in words (as defined by the ICU BreakIterator).
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: P
    FIELD_SELECTION_RANGE_START = 1250;

    // FIELD: text select end offset in words (as defined by the ICU BreakIterator).
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: P
    FIELD_SELECTION_RANGE_END = 1251;

    // FIELD: smart text selection start offset in words (as defined by the ICU BreakIterator),
    //        stored as two packed 16bit integers. (start in MSBs, end in LSBs)
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: P
    FIELD_SELECTION_SMART_RANGE_START = 1252;

    // FIELD: smart text selection end offset in words (as defined by the ICU BreakIterator),
    //        stored as two packed 16bit integers. (start in MSBs, end in LSBs)
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: P
    FIELD_SELECTION_SMART_RANGE_END = 1253;

    // FIELD: the entity type of the text currently selected.
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: P
    FIELD_SELECTION_ENTITY_TYPE = 1254;

    // FIELD: the type of widget the selection was made in.
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: P
    FIELD_SELECTION_WIDGET_TYPE = 1255;

    // FIELD: the name of the text classifier model used.
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: P
    FIELD_TEXTCLASSIFIER_MODEL = 1256;

    // OPEN: Settings > Sound & notification > Do Not Disturb > Behavior > Messages
    // CATEGORY: SETTINGS
    // OS: P
    NOTIFICATION_ZEN_MODE_MESSAGES = 1257;

    // OPEN: Settings > Sound & notification > Do Not Disturb > Behavior > Calls
    // CATEGORY: SETTINGS
    // OS: P
    NOTIFICATION_ZEN_MODE_CALLS = 1258;

    // OPEN: Settings > Sound & notification > Do Not Disturb > TURN ON -> Until you turn off
    // CATEGORY: SETTINGS
    // OS: P
    NOTIFICATION_ZEN_MODE_TOGGLE_ON_FOREVER = 1259;

    // OPEN: Settings > Sound & notification > Do Not Disturb > TURN ON -> Time countdown manual rule (ie: for one hour)
    // CATEGORY: SETTINGS
    // OS: P
    NOTIFICATION_ZEN_MODE_TOGGLE_ON_COUNTDOWN = 1260;

    // OPEN: Settings > Sound & notification > Do Not Disturb > TURN ON -> Next Alarm (ie: Until Tue 7:20 AM)
    // CATEGORY: SETTINGS
    // OS: P
    NOTIFICATION_ZEN_MODE_TOGGLE_ON_ALARM = 1261;

    // FIELD: the version of the widget the selection was made in.
    // CATEGORY: TEXT_SELECTION_SESSION
    // OS: P
    FIELD_SELECTION_WIDGET_VERSION = 1262;

    // OPEN: Settings > Battery(version 2)
    // CATEGORY: SETTINGS
    // OS: P
    FUELGAUGE_POWER_USAGE_SUMMARY_V2 = 1263;

    // OPEN: Settings > Connected devices > Connection preferences
    // CATEGORY: SETTINGS
    // OS: P
    CONNECTION_DEVICE_ADVANCED = 1264;

    // OPEN: Settings > Security > Screen lock gear icon
    // CATEGORY: SETTINGS
    // OS: P
    SCREEN_LOCK_SETTINGS = 1265;

    // OPEN: Settings > Sound > Do Not Disturb > Turn on automatically > Delete rule (trash can icon)
    // CATEGORY: SETTINGS
    // OS: P
    NOTIFICATION_ZEN_MODE_DELETE_RULE_DIALOG = 1266;

    // OPEN: Settings > Sound > Do Not Disturb > Turn on automatically > Select rule ("Event") > Rule name > OK
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_ZEN_MODE_RULE_NAME_CHANGE_OK = 1267;

    // OPEN: Settings > Sound > Do Not Disturb > TURN ON NOW/TURN OFF NOW
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_ZEN_TOGGLE_DND_BUTTON = 1268;

    // OPEN: Settings > Sound > Do Not Disturb > Turn on automatically > Add rule > Event/Time
    // OPEN: Settings > Sound > Do Not Disturb > Turn on automatically > Select rule ("Event") > Rule name
    // CATEGORY: SETTINGS
    // OS: P
    NOTIFICATION_ZEN_MODE_RULE_NAME_DIALOG = 1269;

    // OPEN: Settings > Sound > Do Not Disturb > Turn on automatically > Add rule
    // CATEGORY: SETTINGS
    // OS: P
    NOTIFICATION_ZEN_MODE_RULE_SELECTION_DIALOG = 1270;

    // Tag of a field for the number of ids in an autofill field classification request.
    FIELD_AUTOFILL_NUM_FIELD_CLASSIFICATION_IDS = 1271;

    // An autofill service updated its user data
    // Package: Package of the autofill service that updated the user data
    // Tag FIELD_AUTOFILL_NUM_VALUES: number of fields added (or 0 if reset)
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // OS: P
    AUTOFILL_USERDATA_UPDATED = 1272;

    // Some data entered by the user matched the field classification requested by the service.
    // Package: Package of app that is autofilled
    // Counter: number of matches found
    // OS: P
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // Tag FIELD_AUTOFILL_MATCH_SCORE: Average score of the matches, in the range of 0 to 100
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_FIELD_CLASSIFICATION_MATCHES = 1273;

    // Tag used to report autofill field classification scores
    FIELD_AUTOFILL_MATCH_SCORE = 1274;

    // ACTION: Usb config has been changed to charging
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_USB_CONFIG_CHARGING = 1275;

    // ACTION: Usb config has been changed to mtp (file transfer)
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_USB_CONFIG_MTP = 1276;

    // ACTION: Usb config has been changed to ptp (photo transfer)
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_USB_CONFIG_PTP = 1277;

    // ACTION: Usb config has been changed to rndis (usb tethering)
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_USB_CONFIG_RNDIS = 1278;

    // ACTION: Usb config has been changed to midi
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_USB_CONFIG_MIDI = 1279;

    // ACTION: Usb config has been changed to accessory
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_USB_CONFIG_ACCESSORY = 1280;

    // OPEN: Settings > Battery > Smart Battery
    // CATEGORY: SETTINGS
    // OS: P
    FUELGAUGE_SMART_BATTERY = 1281;

    // ACTION: User tapped Screenshot in the power menu.
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: P
    ACTION_SCREENSHOT_POWER_MENU = 1282;

    // OPEN: Settings > Apps & Notifications -> Special app access -> Directory Access
    // CATEGORY: SETTINGS
    // OS: P
    DIRECTORY_ACCESS = 1283;

    // OPEN: Settings > Apps & Notifications -> Special app access -> Directory Access -> Package
    // CATEGORY: SETTINGS
    // OS: P
    APPLICATIONS_DIRECTORY_ACCESS_DETAIL = 1284;

    // OPEN: Settings > Battery > Smart Battery > Restricted apps
    // CATEGORY: SETTINGS
    // OS: P
    FUELGAUGE_RESTRICTED_APP_DETAILS = 1285;

    // OPEN: Settings > Sound & notification > Do Not Disturb > Turn on now
    // CATEGORY: SETTINGS
    // OS: P
    NOTIFICATION_ZEN_MODE_ENABLE_DIALOG = 1286;

    // ACTION: Rotate suggestion accepted in rotation locked mode
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: P
    ACTION_ROTATION_SUGGESTION_ACCEPTED = 1287;

    // OPEN: Rotation suggestion shown in rotation locked mode
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: P
    ROTATION_SUGGESTION_SHOWN = 1288;

    // An autofill service was bound using an unofficial(but still supported) permission.
    // Package: Package of the autofill service
    // OS: P
    AUTOFILL_INVALID_PERMISSION = 1289;

    // OPEN: QS Alarm tile shown
    // ACTION: QS Alarm tile tapped
    //  SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: P
    QS_ALARM = 1290;

    // OPEN: Settings->Connected Devices->USB->(click on details link)
    // CATEGORY: SETTINGS
    // OS: P
    USB_DEVICE_DETAILS = 1291;

    // OPEN: Settings > Accessibility > Vibration
    // CATEGORY: SETTINGS
    // OS: P
    ACCESSIBILITY_VIBRATION = 1292;

    // OPEN: Settings > Accessibility > Vibration > Notification vibration
    // CATEGORY: SETTINGS
    // OS: P
    ACCESSIBILITY_VIBRATION_NOTIFICATION = 1293;

    // OPEN: Settings > Accessibility > Vibration > Touch vibration
    // CATEGORY: SETTINGS
    // OS: P
    ACCESSIBILITY_VIBRATION_TOUCH = 1294;

    // OPEN: Volume panel > output chooser dialog
    // OS: P
    OUTPUT_CHOOSER = 1295;

    // Action: Volume panel > output chooser dialog > tap on device
    // OS: P
    ACTION_OUTPUT_CHOOSER_CONNECT = 1296;

    // Action: Volume panel > output chooser dialog > tap on X next to connected device
    // OS: P
    ACTION_OUTPUT_CHOOSER_DISCONNECT = 1297;

    // OPEN: TV Settings > Home theater control
    // OS: P
    SETTINGS_TV_HOME_THEATER_CONTROL_CATEGORY = 1298;

    // OPEN: TV Settings > TV Inputs (Inputs & Devices)
    // OS: P
    SETTINGS_TV_INPUTS_CATEGORY = 1299;

    // OPEN: TV Settings > Device
    // OS: P
    SETTINGS_TV_DEVICE_CATEGORY = 1300;

    // OPEN: TV Settings > Network > Proxy settings
    // OS: P
    DIALOG_TV_NETWORK_PROXY = 1301;

    // Events for battery saver turning on/off and/or the interactive state changes.
    // OS: P
    BATTERY_SAVER = 1302;

    // Device interactive state -- i.e. the screen ON (=1) or OFF (=1)
    // OS: P
    FIELD_INTERACTIVE = 1303;

    // Time spent in milliseconds in the current mode.
    // OS: P
    FIELD_DURATION_MILLIS = 1304;

    // Battery level in uAh (0 - ~3,000,000 depending on device) when the current "mode" started.
    // OS: P
    FIELD_START_BATTERY_UA = 1305;

    // Battery level in uAh (0 - ~3,000,000 depending on device) when this event was created.
    // OS: P
    FIELD_END_BATTERY_UA = 1306;

    // Battery level in % (0-100) when the current "mode" started.
    // OS: P
    FIELD_START_BATTERY_PERCENT = 1307;

    // Battery level in % (0-100) when this event was created.
    // OS: P
    FIELD_END_BATTERY_PERCENT = 1308;

    // ACTION: Settings > Display > Night Light
    // SUBTYPE: com.android.server.display.ColorDisplayService.AutoMode value
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_NIGHT_DISPLAY_AUTO_MODE_CHANGED = 1309;

    // ACTION: Settings > Display > Night Light
    // CATEGORY: SETTINGS
    // SUBTYPE: 0 is starting time, 1 is ending time
    // OS: P
    ACTION_NIGHT_DISPLAY_AUTO_MODE_CUSTOM_TIME_CHANGED = 1310;

    // FIELD: Current mode corresponding to a QS tile
    // CATEGORY: QUICK SETTINGS
    // OS: P
    FIELD_QS_MODE = 1311;

    // OPEN: Settings->Developer Options->Default USB
    // CATEGORY: SETTINGS
    // OS: P
    USB_DEFAULT = 1312;

    // CATEGORY: The category for all actions related to TextClassifier generateLinks.
    // OS: P
    TEXT_CLASSIFIER_GENERATE_LINKS = 1313;

    // FIELD: milliseconds spent generating links.
    // CATEGORY: TEXT_CLASSIFIER_GENERATE_LINKS
    // OS: P
    FIELD_LINKIFY_LATENCY = 1314;

    // FIELD: length of the input text in characters.
    // CATEGORY: TEXT_CLASSIFIER_GENERATE_LINKS
    // OS: P
    FIELD_LINKIFY_TEXT_LENGTH = 1315;

    // FIELD: number of links detected.
    // CATEGORY: TEXT_CLASSIFIER_GENERATE_LINKS
    // OS: P
    FIELD_LINKIFY_NUM_LINKS = 1316;

    // FIELD: length of all links in characters.
    // CATEGORY: TEXT_CLASSIFIER_GENERATE_LINKS
    // OS: P
    FIELD_LINKIFY_LINK_LENGTH = 1317;

    // FIELD: the type of entity the stats are for.
    // CATEGORY: TEXT_CLASSIFIER_GENERATE_LINKS
    // OS: P
    FIELD_LINKIFY_ENTITY_TYPE = 1318;

    // FIELD: a random uid for a single call to generateLinks
    // CATEGORY: TEXT_CLASSIFIER_GENERATE_LINKS
    // OS: P
    FIELD_LINKIFY_CALL_ID = 1319;

    // FIELD: The compiler filter used when when optimizing the package.
    //        Logged together with app transition events.
    // OS: P
    PACKAGE_OPTIMIZATION_COMPILATION_FILTER = 1320;

    // FIELD: The reason for optimizing the package.
    //        Logged together with app transition events.
    // OS: P
    PACKAGE_OPTIMIZATION_COMPILATION_REASON = 1321;

    // FIELD: The camera API level used.
    // CATEGORY: CAMERA
    // OS: P
    FIELD_CAMERA_API_LEVEL = 1322;

    // OPEN: Settings > Battery > Battery tip > Battery tip Dialog
    // CATEGORY: SETTINGS
    // OS: P
    FUELGAUGE_BATTERY_TIP_DIALOG = 1323;

    // OPEN: Settings > Battery > Battery tip
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_BATTERY_TIP_SHOWN = 1324;

    // OPEN: Settings > Security & Location > Location > See all
    // CATEGORY: SETTINGS
    // OS: P
    RECENT_LOCATION_REQUESTS_ALL = 1325;

    // FIELD: The x-location of a swipe gesture, conveyed as percent of total width
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: P
    FIELD_GESTURE_X_PERCENT = 1326;

    // FIELD: The y-location of a swipe gesture, conveyed as percent of total width
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: P
    FIELD_GESTURE_Y_PERCENT = 1327;

    // ACTION: Expand the notification panel while unlocked
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: P
    ACTION_PANEL_VIEW_EXPAND = 1328;

    // FIELD: Rotation of the device
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: P
    FIELD_DEVICE_ROTATION = 1329;

    // OPEN: TV Settings > Inputs > Input Options
    // CATEGORY: SETTINGS
    // OS: P
    SETTINGS_TV_INPUT_OPTIONS_CATEGORY = 1330;

    // OPEN: TV Settings > Network & Internet > Add known WIFI network
    // CATEGORY: SETTINGS
    // OS: P
    SETTINGS_TV_WIFI_ADD_KNOWN_CATEGORY = 1331;

    // ACTION: DND Settings > What to block > full screen intents
    //   SUBTYPE: false is allowed, true is blocked
    // CATEGORY: SETTINGS
    // OS: 6.0
    ACTION_ZEN_BLOCK_FULL_SCREEN_INTENTS = 1332;

    // ACTION: DND Settings > What to block
    //   SUBTYPE: false is allowed, true is blocked
    // OS: P
    ACTION_ZEN_BLOCK_LIGHT = 1333;

    // ACTION: DND Settings > What to block
    //   SUBTYPE: false is allowed, true is blocked
    // OS: P
    ACTION_ZEN_BLOCK_PEEK = 1334;

    // ACTION: DND Settings > What to block
    //   SUBTYPE: false is allowed, true is blocked
    // OS: P
    ACTION_ZEN_BLOCK_STATUS = 1335;

    // ACTION: DND Settings > What to block
    //   SUBTYPE: false is allowed, true is blocked
    // OS: P
    ACTION_ZEN_BLOCK_BADGE = 1336;

    // ACTION: DND Settings > What to block
    //   SUBTYPE: false is allowed, true is blocked
    // OS: P
    ACTION_ZEN_BLOCK_AMBIENT = 1337;

    // ACTION: DND Settings > What to block
    //   SUBTYPE: false is allowed, true is blocked
    // OS: P
    ACTION_ZEN_BLOCK_NOTIFICATION_LIST = 1338;

    // OPEN: DND Settings > What to block
    // OS: P
    ZEN_WHAT_TO_BLOCK = 1339;

    // ACTION: DND Settings > Priority only allows > System toggle
    // SUBTYPE: 0 is off, 1 is on
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_ZEN_ALLOW_SYSTEM = 1340;

    // OPEN: Settings > Sounds > Do Not Disturb > Duration
    // CATEGORY: SETTINGS
    // OS: P
    NOTIFICATION_ZEN_MODE_DURATION_DIALOG = 1341;

    // OPEN: Settings > Sound & notification > Do Not Disturb > Duration -> Time Option (ie: for one hour)
    // CATEGORY: SETTINGS
    // OS: P
    NOTIFICATION_ZEN_MODE_DURATION_TIME = 1342;

    // OPEN: Settings > Sound & notification > Do Not Disturb > Duration -> Until you turn off
    // CATEGORY: SETTINGS
    // OS: P
    NOTIFICATION_ZEN_MODE_DURATION_FOREVER = 1343;

    // OPEN: Settings > Sound & notification > Do Not Disturb > Duration -> Ask every time
    // CATEGORY: SETTINGS
    // OS: P
    NOTIFICATION_ZEN_MODE_DURATION_PROMPT = 1344;

    // Notification Guts, active app ops variant
    // OS: P
    APP_OPS_GUTS = 1345;

    // ACTION: Notification Guts, active app ops variant > Settings button
    // OS: P
    ACTION_OPS_GUTS_SETTINGS = 1346;

    // ACTION: Settings > Battery settings > Battery tip > App restriction tip
    // OS: P
    ACTION_APP_RESTRICTION_TIP = 1347;

    // ACTION: Settings > Battery settings > Battery tip > High usage tip
    // OS: P
    ACTION_HIGH_USAGE_TIP = 1348;

    // ACTION: Settings > Battery settings > Battery tip > Summary tip
    // OS: P
    ACTION_SUMMARY_TIP = 1349;

    // ACTION: Settings > Battery settings > Battery tip > Smart battery tip
    // OS: P
    ACTION_SMART_BATTERY_TIP = 1350;

    // ACTION: Settings > Battery settings > Battery tip > Early warning tip
    // OS: P
    ACTION_EARLY_WARNING_TIP = 1351;

    // ACTION: Settings > Battery settings > Battery tip > Low battery tip
    // OS: P
    ACTION_LOW_BATTERY_TIP = 1352;

    // ACTION: Settings > Battery settings > Battery tip > App restriction list shown
    // OS: P
    ACTION_APP_RESTRICTION_TIP_LIST = 1353;

    // ACTION: Settings > Battery settings > Battery tip > High usage list shown
    // OS: P
    ACTION_HIGH_USAGE_TIP_LIST = 1354;

    // OPEN: Settings > Date & time > Select time zone -> Region
    // CATEGORY: SETTINGS
    // OS: P
    SETTINGS_ZONE_PICKER_REGION = 1355;

    // OPEN: Settings > Date & time > Select time zone -> Time Zone
    // CATEGORY: SETTINGS
    // OS: P
    SETTINGS_ZONE_PICKER_TIME_ZONE = 1356;

    // OPEN: Settings > Date & time > Select time zone -> Select UTC Offset
    // CATEGORY: SETTINGS
    // OS: P
    SETTINGS_ZONE_PICKER_FIXED_OFFSET = 1357;

    // Action: notification shade > manage notifications
    // OS: P
    ACTION_MANAGE_NOTIFICATIONS = 1358;

    // This value should never appear in log outputs - it is reserved for
    // internal platform metrics use.
    RESERVED_FOR_LOGBUILDER_LATENCY_MILLIS = 1359;

    // OPEN: Settings > Gestures > Prevent Ringing
    // OS: P
    SETTINGS_PREVENT_RINGING = 1360;

    // ACTION: Settings > Battery settings > Battery tip > Open app restriction page
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_TIP_OPEN_APP_RESTRICTION_PAGE = 1361;

    // ACTION: Settings > Battery settings > Battery tip > Restrict app
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_TIP_RESTRICT_APP = 1362;

    // ACTION: Settings > Battery settings > Battery tip > Unrestrict app
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_TIP_UNRESTRICT_APP = 1363;

    // ACTION: Settings > Battery settings > Battery tip > Open smart battery page
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_TIP_OPEN_SMART_BATTERY = 1364;

    // ACTION: Settings > Battery settings > Battery tip > Turn on battery saver
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_TIP_TURN_ON_BATTERY_SAVER = 1365;

    // FIELD: type of anomaly in settings app
    // CATEGORY: SETTINGS
    // OS: P
    FIELD_ANOMALY_TYPE = 1366;

    // ACTION: Settings > Anomaly receiver > Anomaly received
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_ANOMALY_TRIGGERED = 1367;

    // ACTION: Settings > Condition > Device muted
    // CATEGORY: SETTINGS
    // OS: P
    SETTINGS_CONDITION_DEVICE_MUTED = 1368;

    // ACTION: Settings > Condition > Device vibrate
    // CATEGORY: SETTINGS
    // OS: P
    SETTINGS_CONDITION_DEVICE_VIBRATE = 1369;

    // OPEN: Settings > Connected devices > previously connected devices
    // CATEGORY: SETTINGS
    // OS: P
    PREVIOUSLY_CONNECTED_DEVICES = 1370;

    // ACTION: A Settings Slice is requested
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_SETTINGS_SLICE_REQUESTED = 1371;

    // ACTION: A Settings Slice is updated with new value
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_SETTINGS_SLICE_CHANGED = 1372;

    // OPEN: Settings > Network & Internet > Wi-Fi > Wi-Fi Preferences > Turn on Wi-Fi automatically
    //       note: Wifi Scanning must be off for this dialog to show
    // CATEGORY: SETTINGS
    // OS: P
    WIFI_SCANNING_NEEDED_DIALOG = 1373;

    // OPEN: Settings > System > Gestures > Swipe up gesture
    // CATEGORY: SETTINGS
    // OS: P
    SETTINGS_GESTURE_SWIPE_UP = 1374;

    // OPEN: Settings > Storage > Dialog to format a storage volume
    // CATEGORY: SETTINGS
    // OS: P
    DIALOG_VOLUME_FORMAT = 1375;

    // OPEN: DND onboarding activity > screen on checkbox
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_ZEN_ONBOARDING_SCREEN_ON = 1376;

    // OPEN: DND onboarding activity > screen off checkbox
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_ZEN_ONBOARDING_SCREEN_OFF = 1377;

    // OPEN: DND onboarding activity > Ok button
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_ZEN_ONBOARDING_OK = 1378;

    // OPEN: DND onboarding activity > Settings link
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_ZEN_ONBOARDING_SETTINGS = 1379;

    // OPEN: DND onboarding activity
    // CATEGORY: SETTINGS
    // OS: P
    SETTINGS_ZEN_ONBOARDING = 1380;

    // OPEN: Settings > Display > Auto brightness
    // CATEGORY: SETTINGS
    // OS: P
    SETTINGS_AUTO_BRIGHTNESS = 1381;

    // OPEN: Smart replies in a notification seen at least once
    // CATEGORY: NOTIFICATION
    //   PACKAGE: App that posted the notification
    //   SUBTYPE: Number of smart replies.
    // OS: P
    SMART_REPLY_VISIBLE = 1382;

    // ACTION: Smart reply in a notification clicked.
    // CATEGORY: NOTIFICATION
    //   PACKAGE: App that posted the notification
    //   SUBTYPE: Index of smart reply clicked.
    // OS: P
    SMART_REPLY_ACTION = 1383;

    // Tagged data for SMART_REPLY_VISIBLE. Count of number of smart replies.
    // OS: P
    NOTIFICATION_SMART_REPLY_COUNT = 1384;

    // Volume dialog > ringer toggle
    // OS: P
    ACTION_VOLUME_RINGER_TOGGLE = 1385;

    // Volume dialog > settings button
    // OS: P
    ACTION_VOLUME_SETTINGS = 1386;

    // ACTION: Settings > Anomaly receiver > Anomaly ignored, don't show up in battery settings
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_ANOMALY_IGNORED = 1387;

    // ACTION: Settings > Battery settings > Battery tip > Open battery saver page
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_TIP_OPEN_BATTERY_SAVER_PAGE = 1388;

    // FIELD: the version code of an app
    // CATEGORY: SETTINGS
    // OS: P
    FIELD_APP_VERSION_CODE = 1389;

    // OPEN: Settings > Connected Devices > Bluetooth
    // CATEGORY: SETTINGS
    // OS: P
    BLUETOOTH_FRAGMENT = 1390;

    // Enclosing category for group of FIELD_HIDDEN_API_FOO events, logged when
    // an app uses a hidden API.
    ACTION_HIDDEN_API_ACCESSED = 1391;

    // Tagged data for ACTION_HIDDEN_API_ACCESSED. The metod of the hidden API
    // access; see enum HiddenApiAccessMethod
    // OS: P
    FIELD_HIDDEN_API_ACCESS_METHOD = 1392;

    // Tagged data for ACTION_HIDDEN_API_ACCESSED. Indicates that access was
    // denied to the API.
    // OS: P
    FIELD_HIDDEN_API_ACCESS_DENIED = 1393;

    // Tagged data for ACTION_HIDDEN_API_ACCESSED. The signature of the hidden
    // API that was accessed.
    // OS: P
    FIELD_HIDDEN_API_SIGNATURE = 1394;

    // The number of items in the shade when this notification event was logged.
    // OS: P
    NOTIFICATION_SHADE_COUNT = 1395;

    // ACTION: DND Settings > What to block
    // OS: P
    ACTION_ZEN_SOUND_ONLY = 1396;

    // ACTION: DND Settings > Notifications
    // OS: P
    ACTION_ZEN_SOUND_AND_VIS_EFFECTS = 1397;

    // ACTION: DND Settings > Notifications
    // OS: P
    ACTION_ZEN_SHOW_CUSTOM = 1398;

    // ACTION: DND Settings > Notifications
    // OS: P
    ACTION_ZEN_CUSTOM = 1399;

    // Screen: DND Settings > Notifications
    // OS: P
    SETTINGS_ZEN_NOTIFICATIONS = 1400;

    // An event category for slices.
    // OPEN: Slice became visible.
    // CLOSE: Slice became invisible.
    // ACTION: Slice was tapped.
    SLICE = 1401;

    // The authority part of the slice URI
    FIELD_SLICE_AUTHORITY = 1402;

    // The path part of the slice URI
    FIELD_SLICE_PATH = 1403;

    // The authority part of the subslice URI
    FIELD_SUBSLICE_AUTHORITY = 1404;

    // The path part of the subslice URI
    FIELD_SUBSLICE_PATH = 1405;

    // OPEN: DND onboarding activity > don't update button
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_ZEN_ONBOARDING_KEEP_CURRENT_SETTINGS = 1406;

    // ACTION: Storage initialization wizard initialization choice of external/portable
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_STORAGE_INIT_EXTERNAL = 1407;

    // ACTION: Storage initialization wizard initialization choice of internal/adoptable
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_STORAGE_INIT_INTERNAL = 1408;

    // ACTION: Storage initialization wizard benchmark fast choice of continue
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_STORAGE_BENCHMARK_FAST_CONTINUE = 1409;

    // ACTION: Storage initialization wizard benchmark slow choice of continue
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_STORAGE_BENCHMARK_SLOW_CONTINUE = 1410;

    // ACTION: Storage initialization wizard benchmark slow choice of abort
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_STORAGE_BENCHMARK_SLOW_ABORT = 1411;

    // ACTION: Storage initialization wizard migration choice of now
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_STORAGE_MIGRATE_NOW = 1412;

    // ACTION: Storage initialization wizard migration choice of later
    // CATEGORY: SETTINGS
    // OS: P
    ACTION_STORAGE_MIGRATE_LATER = 1413;

    // Tag used to report whether an activity is being autofilled  on compatibility mode.
    // OS: P
    FIELD_AUTOFILL_COMPAT_MODE = 1414;

    // OPEN: Settings > Sound > Switch a2dp devices dialog
    // CATEGORY: SETTINGS
    // OS: P
    DIALOG_SWITCH_A2DP_DEVICES = 1415;

    // OPEN: Settings > Sound > Switch hfp devices dialog
    // CATEGORY: SETTINGS
    // OS: P
    DIALOG_SWITCH_HFP_DEVICES = 1416;

    // ACTION: User has started or ended charging
    // Type TYPE_DISMISS: Charging has ended
    // Type TYPE_ACTION: Charging has started, contains fields: battery level
    // Tag FIELD_BATTERY_LEVEL_START: Battery level at the start
    // Tag FIELD_BATTERY_LEVEL_END: Battery level at the end
    // Tag FIELD_CHARGING_DURATION: Time in ms phone was charging
    // Tag FIELD_PLUG_TYPE: Charging plug type
    ACTION_CHARGE = 1417;

    // Tag used to determine battery level when device started charging
    FIELD_BATTERY_LEVEL_START = 1418;

    // Tag used to determine battery level when device ended charging
    FIELD_BATTERY_LEVEL_END = 1419;

    // Tag used to determine length of charging
    FIELD_CHARGING_DURATION_MILLIS = 1420;

    // Tag used to determine what type of charging was started/ended
    // 1 = Plugged AC
    // 2 = Plugged USB
    // 4 = Wireless
    FIELD_PLUG_TYPE = 1421;

    // ACTION: USB-C Connector connected.
    // CATEGORY: OTHER
    // OS: P
    ACTION_USB_CONNECTOR_CONNECTED = 1422;

    // ACTION: USB-C Connector disconnected.
    // CATEGORY: OTHER
    // OS: P
    // uses FIELD_DURATION_MILLIS for connected duration
    ACTION_USB_CONNECTOR_DISCONNECTED = 1423;

    // ACTION: USB-C Audio device connected
    // CATEGORY: OTHER
    // OS: P
    ACTION_USB_AUDIO_CONNECTED = 1424;

    // FIELD: VIDPID of connected USB Audio device
    // CATEGORY: OTHER
    // OS: P
    FIELD_USB_AUDIO_VIDPID = 1425;

    // ACTION: USB-C Audio device disconnected
    // CATEGORY: OTHER
    // OS: P
    // use FIELD_DURATION_MILLIS for time
    ACTION_USB_AUDIO_DISCONNECTED = 1426;

    // ACTION: Hardware failure event
    // CATEGORY: OTHER
    // OS: P
    ACTION_HARDWARE_FAILED = 1427;

    // FIELD: Hardware failure category
    // CATEGORY: OTHER
    // OS: P
    // Uses enum HardwareType
    FIELD_HARDWARE_TYPE = 1428;

    // FIELD: Hardware failure category
    // CATEGORY: OTHER
    // OS: P
    // Uses enum HardwareFailureCode
    FIELD_HARDWARE_FAILURE_CODE = 1429;

    // ACTION: Physical drop event
    // CATEGORY: OTHER
    // OS: P
    // use FIELD_DURATION_MILLIS for time
    ACTION_PHYSICAL_DROP = 1430;

    // FIELD: Confidence in detection of drop, in integer percentage.
    // CATEGORY: OTHER
    // OS: P
    FIELD_CONFIDENCE_PERCENT = 1431;

    // FIELD: Detected bounce acceleration, in 1/1000th of a G.
    // CATEGORY: OTHER
    // OS: P
    FIELD_ACCEL_MILLI_G = 1432;

    // ACTION: Battery health snapshot
    // CATEGORY: OTHER
    // OS: P
    // uses FIELD_END_BATTERY_PERCENT for instantaneous batt %
    ACTION_BATTERY_HEALTH = 1433;

    // FIELD: Battery health snapshot type - min daily voltage, resistance, etc.
    // CATEGORY: OTHER
    // OS: P
    FIELD_BATTERY_HEALTH_SNAPSHOT_TYPE = 1434;

    // FIELD: Battery temperature at snapshot, in 1/10 deg C.
    // CATEGORY: OTHER
    // OS: P
    FIELD_BATTERY_TEMPERATURE_DECI_C = 1435;

    // FIELD: Battery voltage at snapshot, in microVolts.
    // CATEGORY: OTHER
    // OS: P
    FIELD_BATTERY_VOLTAGE_UV = 1436;

    // FIELD: Battery open circuit voltage at snapshot, in microVolts.
    // CATEGORY: OTHER
    // OS: P
    FIELD_BATTERY_OPEN_CIRCUIT_VOLTAGE_UV = 1437;

    // ACTION: Number of times the battery has charged beyond a
    //         fractional threshold of full capacity.
    // CATEGORY: OTHER
    // OS: P
    ACTION_BATTERY_CHARGE_CYCLES = 1438;

    // FIELD: BATTERY_CHARGE_CYCLES - Number of times the battery has charged
    //                                beyond a fractional threshold of full
    //                                capacity.  A comma-separated string of
    //                                buckets.  If there are eight buckets,
    //                                each bucket represents charging to n/8
    //                                percent full.
    // CATEGORY: OTHER
    // OS: P
    FIELD_BATTERY_CHARGE_CYCLES = 1439;

    // ACTION: Hush gesture - volume up + power button
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: P
    ACTION_HUSH_GESTURE = 1440;

    // OPEN: Settings -> Developer Options -> Disable Bluetooth A2DP hardware
    // offload
    // CATEGORY: SETTINGS
    // OS: P
    DIALOG_BLUETOOTH_DISABLE_A2DP_HW_OFFLOAD = 1441;

    // ACTION: SLOW_IO - I/O operation took longer than threshold,
    //                   reported aggregated per day when > 0.
    // CATEGORY: OTHER
    // OS: P
    ACTION_SLOW_IO = 1442;

    // FIELD: IO_OPERATION_TYPE - The IO Operation that caused the high latency.
    //        The value is an integer from the enum IoOperation.
    // CATEGORY: OTHER
    // OS: P
    FIELD_IO_OPERATION_TYPE = 1443;

    // FIELD: IO_OPERATION_COUNT - Count of how many times this slow IO operation happened
    //                over the past 24hr (reported only if > 0).
    // CATEGORY: OTHER
    // OS: P
    FIELD_IO_OPERATION_COUNT = 1444;

    // ACTION: Speaker Imedance - last recorded speaker impedance.
    //                            reported max once per 24hr.
    // CATEGORY: OTHER
    // OS: P
    ACTION_SPEAKER_IMPEDANCE = 1445;

    // FIELD: Speaker Impedance in milliohms.
    // CATEGORY: OTHER
    // OS: P
    FIELD_SPEAKER_IMPEDANCE_MILLIOHMS = 1446;

    // FIELD: Speaker Location - identifies one of several speakers on a device.
    // CATEGORY: OTHER
    // OS: P
    FIELD_SPEAKER_LOCATION = 1447;

    // FIELD: Instantaneous battery resistance in microohms.
    // CATEGORY: OTHER
    // OS: P
    FIELD_BATTERY_RESISTANCE_UOHMS = 1448;

    // FIELD: Instantaneous battery current - in microamps.
    // CATEGORY: OTHER
    // OS: P
    FIELD_BATTERY_CURRENT_UA = 1449;

    // FIELD: HARDWARE_LOCATION - Identifier for instance of a hardware type on a
    //                            board.
    // CATEGORY: OTHER
    // OS: P
    FIELD_HARDWARE_LOCATION = 1450;

    // ACTION: BATTERY_CAUSED_SHUTDOWN - shutdown due to low battery, the
    //                  action is logged after the subsequent boot.
    // CATEGORY: OTHER
    // OS: P
    ACTION_BATTERY_CAUSED_SHUTDOWN = 1451;

    // FIELD: Flags used on autofill-related metrics
    // OS: P
    FIELD_AUTOFILL_FLAGS = 1452;

    // Tag used when the service returned an authenticated dataset or response.
    // Used to replace the following individual metrics, which now are logged as the value of this
    // field in the AUTOFILL_REQUEST metric:
    // - AUTOFILL_AUTHENTICATED;
    // - AUTOFILL_DATASET_AUTHENTICATED
    // - AUTOFILL_INVALID_AUTHENTICATION
    // - AUTOFILL_INVALID_DATASET_AUTHENTICATION
    // OS: P
    FIELD_AUTOFILL_AUTHENTICATION_STATUS = 1453;

    // FIELD: Index of the autofill request inside of a session.
    // OS: P
    FIELD_AUTOFILL_REQUEST_ORDINAL = 1454;

    // FIELD: Number of requests made to an autofill service during a session.
    // OS: P
    FIELD_AUTOFILL_NUMBER_REQUESTS = 1455;

    // FIELD: Id of the autofill session associated with this metric.
    // OS: P
    FIELD_AUTOFILL_SESSION_ID = 1456;

    // ---- End P Constants, all P constants go above this line ----

    // Time since this notification last interrupted (visibly or audible) the user
    NOTIFICATION_SINCE_INTERRUPTION_MILLIS = 1500;

    // OPEN: Notification interrupted the user, either audibly or visually.
    //   Tagged data: NOTIFICATION_SINCE_INTERRUPTION_MILLIS
    // CATEGORY: NOTIFICATION
    NOTIFICATION_INTERRUPTION = 1501;

    // OPEN: Settings
    // CATEGORY: SETTINGS
    // OS: Q
    SETTINGS_HOMEPAGE = 1502;

    // OPEN: Settings > Create shortcut(widget)
    // CATEGORY: SETTINGS
    // OS: Q
    SETTINGS_CREATE_SHORTCUT = 1503;

    // ACTION: Authenticate using fingerprint
    // CATEGORY: SETTINGS
    // OS: Q
    ACTION_FACE_AUTH = 1504;

    // ACTION: Add fingerprint > Enroll fingerprint
    // CATEGORY: SETTINGS
    // OS: Q
    ACTION_FACE_ENROLL = 1505;

    // OPEN: Face Enroll introduction
    // CATEGORY: SETTINGS
    // OS: Q
    FACE_ENROLL_INTRO = 1506;

    // OPEN: Face Enroll introduction
    // CATEGORY: SETTINGS
    // OS: Q
    FACE_ENROLL_ENROLLING = 1507;

    // OPEN: Face Enroll introduction
    // CATEGORY: SETTINGS
    // OS: Q
    FACE_ENROLL_FINISHED = 1508;

    // OPEN: Face Enroll sidecar
    // CATEGORY: SETTINGS
    // OS: Q
    FACE_ENROLL_SIDECAR = 1509;

    // OPEN: Settings > Add face > Error dialog
    // OS: Q
    DIALOG_FACE_ERROR = 1510;

    // OPEN: Settings > Security > Face
    // CATEGORY: SETTINGS
    // OS: Q
    FACE = 1511;

    // OPEN: Settings > Acessibility > HearingAid pairing instructions dialog
    // CATEGORY: SETTINGS
    // OS: Q
    DIALOG_ACCESSIBILITY_HEARINGAID = 1512;

    // ACTION: Activity start
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    ACTION_ACTIVITY_START = 1513;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Calling UID
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_CALLING_UID = 1514;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Calling package name
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_CALLING_PACKAGE_NAME = 1515;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Calling UID proc state
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_CALLING_UID_PROC_STATE = 1516;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Calling UID has any visible window
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_CALLING_UID_HAS_ANY_VISIBLE_WINDOW = 1517;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Real calling UID
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_REAL_CALLING_UID = 1518;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Real calling UID proc state
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_REAL_CALLING_UID_PROC_STATE = 1519;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Real calling UID has any visible window
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_REAL_CALLING_UID_HAS_ANY_VISIBLE_WINDOW = 1520;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Target UID
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_TARGET_UID = 1521;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Target UID package name
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_TARGET_PACKAGE_NAME = 1522;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Target UID proc state
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_TARGET_UID_PROC_STATE = 1523;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Target UID has any visible window
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_TARGET_UID_HAS_ANY_VISIBLE_WINDOW = 1524;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Target doze whitelist tag
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_TARGET_WHITELIST_TAG = 1525;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Target short component name
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_TARGET_SHORT_COMPONENT_NAME = 1526;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Coming from pending intent
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_COMING_FROM_PENDING_INTENT = 1527;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Intent action
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_INTENT_ACTION = 1528;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record process name
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_PROCESS_NAME = 1529;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record current proc state
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_CUR_PROC_STATE = 1530;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record has client activities
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_HAS_CLIENT_ACTIVITIES = 1531;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record has foreground services
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_HAS_FOREGROUND_SERVICES = 1532;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record has foreground activities
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_HAS_FOREGROUND_ACTIVITIES = 1533;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record has top UI
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_HAS_TOP_UI = 1534;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record has overlay UI
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_HAS_OVERLAY_UI = 1535;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record pending UI clean
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_PENDING_UI_CLEAN = 1536;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Millis since caller app's process record last interaction event
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_MILLIS_SINCE_LAST_INTERACTION_EVENT = 1537;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Millis since caller app's process record fg interaction
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_MILLIS_SINCE_FG_INTERACTION = 1538;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Millis since caller app's process record last became unimportant
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_MILLIS_SINCE_UNIMPORTANT = 1539;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record launch mode
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_LAUNCH_MODE = 1540;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record target activity
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_TARGET_ACTIVITY = 1541;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record flags
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_FLAGS = 1542;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record real activity
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_REAL_ACTIVITY = 1543;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record short component name
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_SHORT_COMPONENT_NAME = 1544;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record process name
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_PROCESS_NAME = 1545;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record is fullscreen
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_IS_FULLSCREEN = 1546;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record is no display
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_IS_NO_DISPLAY = 1547;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Millis since activity was last visible
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_MILLIS_SINCE_LAST_VISIBLE = 1548;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record's resultTo packageName
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_RESULT_TO_PKG_NAME = 1549;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record's resultTo shortComponentName
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_RESULT_TO_SHORT_COMPONENT_NAME = 1550;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record is visible
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_IS_VISIBLE = 1551;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record is visible ignoring keyguard
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_IS_VISIBLE_IGNORING_KEYGUARD = 1552;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Millis since activity's last launch
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_MILLIS_SINCE_LAST_LAUNCH = 1553;

    // OPEN: Settings > Add face
    // OS: Q
    FACE_ENROLL_PREVIEW = 1554;

    // Field used to indicate whether a save request was used to update existing user data.
    FIELD_AUTOFILL_UPDATE = 1555;

    // OPEN: Settings > Network & Internet > Wi-Fi > Add network
    // CATEGORY: SETTINGS
    // OS: Q
    SETTINGS_WIFI_ADD_NETWORK = 1556;

    // OPEN: Settings > System > Input & Gesture > Reach up gesture
    // OS: Q
    SETTINGS_GESTURE_WAKE_LOCK_SCREEN = 1557;

    // OPEN: Emergency dialer opened
    // CLOSE: Emergency dialer closed
    //  SUBTYPE: The entry type that user opened emergency dialer
    // CATEGORY: EMERGENCY_DIALER
    // OS: Q
    EMERGENCY_DIALER = 1558;

    // FIELD: The screen is currently locked
    // CATEGORY: EMERGENCY_DIALER
    // OS: Q
    FIELD_EMERGENCY_DIALER_IS_SCREEN_LOCKED = 1559;

    // FIELD: Bit flag indicating the actions performed by user
    // CATEGORY: EMERGENCY_DIALER
    // OS: Q
    FIELD_EMERGENCY_DIALER_USER_ACTIONS = 1560;

    // FIELD: The duration user stayed at emergency dialer
    // CATEGORY: EMERGENCY_DIALER
    // OS: Q
    FIELD_EMERGENCY_DIALER_DURATION_MS = 1561;

    // ACTION: Making call via emergency dialer
    //  SUBTYPE: The UI that user made phone call
    // CATEGORY: EMERGENCY_DIALER
    // OS: Q
    EMERGENCY_DIALER_MAKE_CALL = 1562;

    // FIELD: The phone number type of a call user made
    // CATEGORY: EMERGENCY_DIALER
    // OS: Q
    FIELD_EMERGENCY_DIALER_PHONE_NUMBER_TYPE = 1563;

    // FIELD: There is a shortcut for the phone number
    // CATEGORY: EMERGENCY_DIALER
    // OS: Q
    FIELD_EMERGENCY_DIALER_PHONE_NUMBER_HAS_SHORTCUT = 1564;

    // FIELD: The phone is in pocket while using emergency dialer
    // CATEGORY: EMERGENCY_DIALER
    // OS: Q
    FIELD_EMERGENCY_DIALER_IN_POCKET = 1565;

    // ACTION: The second tap on emergency shortcut to make a phone call
    // CATEGORY: EMERGENCY_DIALER
    // OS: Q
    EMERGENCY_DIALER_SHORTCUT_CONFIRM_TAP = 1566;

    // FIELD: The time in milliseconds of second tap on shortcut since first tap
    // CATEGORY: EMERGENCY_DIALER
    // OS: Q
    FIELD_EMERGENCY_DIALER_SHORTCUT_TAPS_INTERVAL = 1567;

    // OPEN: Power menu is opened
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: Q
    POWER_MENU = 1568;

    // ACTION: User tapped emergency dialer icon in the power menu.
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: Q
    ACTION_EMERGENCY_DIALER_FROM_POWER_MENU = 1569;

    // OPEN: Settings > System > Input & Gesture > Wake screen
    // OS: Q
    SETTINGS_GESTURE_WAKE_SCREEN = 1570;

    // OPEN: Settings > Network & internet > Mobile network
    // CATEGORY: SETTINGS
    // OS: Q
    MOBILE_NETWORK = 1571;

    // Tag of a field for the length of a text
    FIELD_AUTOFILL_TEXT_LEN = 1572;

    // Action: the notification assistant is changing a notification
    // OS: Q
    NOTIFICATION_ASSISTANT_ADJUSTMENT = 1573;

    // Subtype: The people attached to a notification was changed
    ADJUSTMENT_KEY_PEOPLE = 1574;

    // Subtype: The snooze options attached to a notification was changed
    ADJUSTMENT_KEY_SNOOZE_CRITERIA = 1575;

    // Subtype: The group of a notification was changed
    ADJUSTMENT_KEY_GROUP_KEY = 1576;

    // Subtype: The user sentiment of a notification was changed
    ADJUSTMENT_KEY_USER_SENTIMENT = 1577;

    // Subtype: New actions have been added to a notification
    ADJUSTMENT_KEY_SMART_ACTIONS = 1578;

    // Subtype: New smart replies have been added to a notification
    ADJUSTMENT_KEY_SMART_REPLIES = 1579;

    // Subtype: The importance of a notification has been changed
    ADJUSTMENT_KEY_IMPORTANCE = 1580;

    // OPEN: Settings > Network & internet > Mobile network > Choose network
    // CATEGORY: SETTINGS
    // OS: Q
    MOBILE_NETWORK_SELECT = 1581;

    // OPEN: Settings > Network & internet > Mobile network > Mobile Data > Dialog
    // CATEGORY: SETTINGS
    // OS: Q
    MOBILE_DATA_DIALOG = 1582;

    // OPEN: Settings > Network & internet > Mobile network > Data roaming > Dialog
    // CATEGORY: SETTINGS
    // OS: Q
    MOBILE_ROAMING_DIALOG = 1583;

    // OPEN: Settings > Display > Lock screen display > On lock screen
    // CATEGORY: SETTINGS
    // OS: Q
    LOCK_SCREEN_NOTIFICATION_CONTENT = 1584;

    // ConfirmDeviceCredentials > BiometricPrompt
    // CATEGORY: SETTINGS
    // OS: Q
    BIOMETRIC_FRAGMENT = 1585;

    // OPEN: Biometric Enrollment (android.settings.BIOMETRIC_ENROLL action intent)
    // CATEGORY: SETTINGS
    // OS: Q
    BIOMETRIC_ENROLL_ACTIVITY = 1586;

    // OPEN: Settings > Privacy
    // CATEGORY: SETTINGS
    // OS: Q
    TOP_LEVEL_PRIVACY = 1587;

    // OPEN: Settings > Sound & notification > Do Not Disturb > See all exceptions >
    // Allow apps to override
    // CATEGORY: SETTINGS
    // OS: Q
    NOTIFICATION_ZEN_MODE_OVERRIDING_APPS = 1588;

    // OPEN: Settings > Sound & notification > Do Not Disturb > See all exceptions >
    // Allow apps to override > Choose app
    // CATEGORY: SETTINGS
    // OS: Q
    NOTIFICATION_ZEN_MODE_OVERRIDING_APP = 1589;

    // ACTION: User sent a direct reply
    //    PACKAGE: App that posted the notification
    // CATEGORY: NOTIFICATION
    // OS: Q
    NOTIFICATION_DIRECT_REPLY_ACTION = 1590;

    // OPEN: Settings > Developer options > Disable > Info dialog
    // CATEGORY: SETTINGS
    // OS: Q
    DIALOG_DISABLE_DEVELOPMENT_OPTIONS = 1591;

    // Tag for an ACTION: QS -> Tile click / Secondary click / long press
    //    indicating the StatusBarState when menu was pulled down
    // CATEGORY: QUICK_SETTINGS
    // OS: Q
    FIELD_STATUS_BAR_STATE = 1592;

    // Tag for an ACTION: QS -> Tile click / Secondary click / long press
    //    indicating whether current state is full QS
    // CATEGORY: QUICK_SETTINGS
    // OS: Q
    FIELD_IS_FULL_QS = 1593;

    // ACTION: Display folding state was changed
    // CATEGORY: OTHER
    //   SUBTYPE: 1 if display is folded, 0 if not.
    // OS: Q
    ACTION_DISPLAY_FOLD = 1594;

    // OPEN: WifiDppConfiguratorActivity (android.settings.WIFI_DPP_CONFIGURATOR_XXX action intents)
    // CATEGORY: SETTINGS
    // OS: Q
    SETTINGS_WIFI_DPP_CONFIGURATOR = 1595;

    // OPEN: WifiDppEnrolleeActivity (android.settings.WIFI_DPP_ENROLLEE_XXX action intents)
    // CATEGORY: SETTINGS
    // OS: Q
    SETTINGS_WIFI_DPP_ENROLLEE = 1596;

    // OPEN: Settings > Apps & Notifications -> Special app access -> Financial Apps Sms Access
    // CATEGORY: SETTINGS
    // OS: Q
    SETTINGS_FINANCIAL_APPS_SMS_ACCESS = 1597;

    // OPEN: QS Sensor Privacy Mode tile shown
    // ACTION: QS Sensor Privacy Mode tile tapped
    // SUBTYPE: 0 is off, 1 is on
    // CATEGORY: QUICK_SETTINGS
    // OS: Q
    QS_SENSOR_PRIVACY = 1598;

    // Tagged data for SMART_REPLY_VISIBLE. Count of number of smart actions.
    // OS: Q
    NOTIFICATION_SMART_ACTION_COUNT = 1599;

    // Tagged data for SMART_REPLY_VISIBLE and NOTIFICATION_ITEM_ACTION.
    // Whether the notification has notification-assistant generated
    // actions/replies.
    // OS: Q
    NOTIFICATION_SMART_SUGGESTION_ASSISTANT_GENERATED = 1600;

    // Tagged data for NOTIFICATION_ITEM_ACTION. Whether the action is a smart
    // action.
    // OS: Q
    NOTIFICATION_ACTION_IS_SMART = 1601;

    // FIELD: true if the associated ACTION_ZEN_ALLOW_* or ACTION_ZEN_BLOCK_* allows/blocks
    // the effect/sound when DND is on.  false if set to disallow/show.
    // OS: Q
    FIELD_ZEN_TOGGLE_EXCEPTION = 1602;

    // FIELD: rule id an ACTION_ZEN_ALLOW_* or ACTION_ZEN_BLOCK_* is associated with
    // OS: Q
    FIELD_ZEN_RULE_ID = 1603;

    // OPEN: Settings > Sound > Do Not Disturb > Schedules > (Click on system rule)
    // > Do Not Disturb behavior
    // CATEGORY: SETTINGS
    // OS: Q
    ZEN_CUSTOM_RULE_SETTINGS = 1604;

    // OPEN: Settings > Sound > Do Not Disturb > Schedules > (Click on system rule)
    // > Do Not Disturb behavior > Custom
    // CATEGORY: SETTINGS
    // OS: Q
    ZEN_CUSTOM_RULE_SOUND_SETTINGS = 1605;

    // OPEN: Settings > Sound > Do Not Disturb > Schedules > (Click on system rule)
    // > Do Not Disturb behavior > Use default Do Not Disturb behavior
    // CATEGORY: SETTINGS
    // OS: Q
    ZEN_CUSTOM_RULE_DEFAULT_SETTINGS = 1606;

    // OPEN: Settings > Sound > Do Not Disturb > Schedules > (Click on system rule)
    // > Do Not Disturb behavior > Custom
    // CATEGORY: SETTINGS
    // OS: Q
    ZEN_CUSTOM_RULE_CUSTOM_SETTINGS = 1607;

    // OPEN: Settings > Sound > Do Not Disturb > Schedules > (Click on system rule)
    // > Do Not Disturb behavior > Use default Do Not Disturb behavior
    // > Notification restriction
    // CATEGORY: SETTINGS
    // OS: Q
    ZEN_CUSTOM_RULE_NOTIFICATION_RESTRICTIONS = 1608;

    // OPEN: Settings > Sound > Do Not Disturb > Schedules > (Click on system rule)
    // > Do Not Disturb behavior > Use default Do Not Disturb behavior
    // > Notification restriction > Custom
    // CATEGORY: SETTINGS
    // OS: Q
    ZEN_CUSTOM_RULE_VIS_EFFECTS = 1609;

    // OPEN: Settings > Sound > Do Not Disturb > Schedules > (Click on system rule)
    // > Do Not Disturb behavior > Use default Do Not Disturb behavior
    // > Notification restriction > Custom > Allow messages
    // CATEGORY: SETTINGS
    // OS: Q
    ZEN_CUSTOM_RULE_MESSAGES = 1610;

    // OPEN: Settings > Sound > Do Not Disturb > Schedules > (Click on system rule)
    // > Do Not Disturb behavior > Use default Do Not Disturb behavior
    // > Notification restriction > Custom > Allow calls
    // CATEGORY: SETTINGS
    // OS: Q
    ZEN_CUSTOM_RULE_CALLS = 1611;

    // OPEN: Settings > Sound > Do Not Disturb > Click footer link if custom settings applied
    // CATEGORY: SETTINGS
    // OS: Q
    ZEN_CUSTOM_SETTINGS_DIALOG = 1612;

    // OPEN: Settings > Developer Options > Game Update Packages
    // CATEGORY: SETTINGS
    // OS: Q
    SETTINGS_GUP_DASHBOARD = 1613;

    // CATEGORY: The category for all actions relating to language detection logging.
    // OS: Q
    LANGUAGE_DETECTION = 1614;

    // CATEGORY: The category for all actions relating to conversation actions logging.
    // OS: Q
    CONVERSATION_ACTIONS = 1615;

    // ACTION: Actions from a text classifier are shown to user.
    // CATEGORY: LANGUAGE_DETECTION, CONVERSATION_ACTIONS
    // OS: Q
    ACTION_TEXT_CLASSIFIER_ACTIONS_SHOWN = 1616;

    // FIELD: Event time of a text classifier event in unix timestamp.
    // CATEGORY: LANGUAGE_DETECTION, CONVERSATION_ACTIONS
    // OS: Q
    FIELD_TEXT_CLASSIFIER_EVENT_TIME = 1617;

    // ACTION: Users compose their own replies instead of using suggested ones.
    // CATEGORY: LANGUAGE_DETECTION, CONVERSATION_ACTIONS
    // OS: Q
    ACTION_TEXT_CLASSIFIER_MANUAL_REPLY = 1618;

    // ACTION: Text classifier generates an action.
    // CATEGORY: LANGUAGE_DETECTION, CONVERSATION_ACTIONS
    // OS: Q
    ACTION_TEXT_CLASSIFIER_ACTIONS_GENERATED = 1619;

    // OPEN: Settings > Accessibility > Vibration > Ring vibration
    // CATEGORY: SETTINGS
    // OS: Q
    ACCESSIBILITY_VIBRATION_RING = 1620;

    // ACTION: Notification blocking helper view, which helps the user to block
    // application or channel from showing notifications.
    // SUBTYPE: NotificationBlockingHelper enum.
    // CATEGORY: NOTIFICATION
    // OS: Q
    NOTIFICATION_BLOCKING_HELPER = 1621;

    // ACTION: Tap & Pay -> Default Application Setting -> Use Forground
    // OS: Q
    ACTION_NFC_PAYMENT_FOREGROUND_SETTING = 1622;

    // ACTION: Tap & Pay -> Default Application Setting -> Use Default
    // OS: Q
    ACTION_NFC_PAYMENT_ALWAYS_SETTING = 1623;

    // OPEN: Settings > System > Input & Gesture > Skip song gesture
    // OS: Q
    SETTINGS_GESTURE_SKIP_SONG = 1624;

    // OPEN: Settings > System > Input & Gesture > Silence gesture
    // OS: Q
    SETTINGS_GESTURE_SILENCE = 1625;

    // OPEN: Settings > System > Input & Gesture > Tap screen gesture
    // OS: Q
    SETTINGS_GESTURE_TAP_SCREEN = 1626;

    // OPEN: Settings > Network & internet > Click Mobile network to land on a page with a list of
    // SIM/eSIM subscriptions.
    // CATEGORY: SETTINGS
    // OS: Q
    MOBILE_NETWORK_LIST = 1627;

    // OPEN: Settings > Display > Adaptive sleep
    // OS: Q
    SETTINGS_ADAPTIVE_SLEEP = 1628;

    // Tagged data for SMART_REPLY_VISIBLE and NOTIFICATION_ITEM_ACTION.
    // The UI location of the notification containing the smart suggestions.
    // This is a NotificationLocation object (see the NotificationLocation
    // enum).
    // OS: Q
    NOTIFICATION_LOCATION = 1629;

    // The autofill system made request to the system-provided augmented autofill service.
    // OS: Q
    // Package: Package of app that is autofilled
    // Tag FIELD_CLASS_NAME: Class name of the activity that is autofilled.
    // Tag FIELD_AUTOFILL_SERVICE: Package of the augmented autofill service that processed the
    // request
    // Tag FIELD_AUTOFILL_SESSION_ID: id of the autofill session associated with this metric.
    // Tag FIELD_AUTOFILL_COMPAT_MODE: package is being autofilled on compatibility mode.
    AUTOFILL_AUGMENTED_REQUEST = 1630;

    // Tag of a field for the number of augmented autofill requests in a session
    // OS: Q
    FIELD_AUTOFILL_NUMBER_AUGMENTED_REQUESTS = 1631;

    // OPEN: Settings > System > Aware
    // OS: Q
    SETTINGS_AWARE = 1632;

    // OPEN: Settings > System > Aware > Disable > Dialog
    // OS: Q
    DIALOG_AWARE_DISABLE = 1633;

    // FIELD: Session ID of TextClassifierEvent.
    // CATEGORY: LANGUAGE_DETECTION, CONVERSATION_ACTIONS
    // OS: Q
    FIELD_TEXT_CLASSIFIER_SESSION_ID = 1634;

    // FIELD: First entity type.
    // CATEGORY: LANGUAGE_DETECTION, CONVERSATION_ACTIONS
    // OS: Q
    FIELD_TEXT_CLASSIFIER_FIRST_ENTITY_TYPE = 1635;
    // FIELD: Second entity type.
    // CATEGORY: LANGUAGE_DETECTION, CONVERSATION_ACTIONS
    // OS: Q
    FIELD_TEXT_CLASSIFIER_SECOND_ENTITY_TYPE = 1636;

    // FIELD: Third entity type.
    // CATEGORY: LANGUAGE_DETECTION, CONVERSATION_ACTIONS
    // OS: Q
    FIELD_TEXT_CLASSIFIER_THIRD_ENTITY_TYPE = 1637;

    // FIELD: Score of the suggestion.
    // CATEGORY: LANGUAGE_DETECTION, CONVERSATION_ACTIONS
    // OS: Q
    FIELD_TEXT_CLASSIFIER_SCORE = 1638;

    // FIELD: widget type, e.g: notification, textview
    // CATEGORY: LANGUAGE_DETECTION, CONVERSATION_ACTIONS
    // OS: Q
    FIELD_TEXT_CLASSIFIER_WIDGET_TYPE = 1639;

    // FIELD: version of the widget.
    // CATEGORY: LANGUAGE_DETECTION, CONVERSATION_ACTIONS
    // OS: Q
    FIELD_TEXT_CLASSIFIER_WIDGET_VERSION = 1640;

    // ---- End Q Constants, all Q constants go above this line ----
    // Add new aosp constants above this line.
    // END OF AOSP CONSTANTS
  }
}
