// 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;
  }

  // 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;
    }

  // 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
    // 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
    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 > Privacy
    // 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
    // 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
    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.
    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.
    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 > Ring & 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
    // 3 = 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;

    // FIELD: Device USB overheat alarm trigger.
    // CATEGORY: GLOBAL_SYSTEM_UI
    // OS: P
    POWER_OVERHEAT_ALARM = 1457;

    // NOTIFICATION_SINCE_INTERRUPTION_MILLIS added to P
    // NOTIFICATION_INTERRUPTION added to P

    // ---- 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: 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 > Developer Options > Game Driver Preference
    // CATEGORY: SETTINGS
    // OS: Q
    SETTINGS_GAME_DRIVER_DASHBOARD = 1613;

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

    // Add new aosp constants above this line.
    // END OF AOSP CONSTANTS
  }
}
