// 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
    // CATEGORY: SETTINGS
    // OS: 6.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_AUTOFIL_FLAGS - Flags used to start the session
    // Type 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_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_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 field:
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // 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 field:
    // 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 field:
    // Tag FIELD_AUTOFILL_SERVICE: Package of service that processed the request
    // 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 field:
    // 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_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 field:
    // 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 field:
    // 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 field:
    // 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 field:
    // 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 field:
    // 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 field:
    // 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_AUTOFILL_SERVICE: Package of service that processed the request
    // 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_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_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_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_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_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;

    // ---- End P Constants, all P constants go above this line ----
    // Add new aosp constants above this line.
    // END OF AOSP CONSTANTS
  }
}
