// 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 {

  // Known visual elements: views or controls.
  enum View {
    VIEW_UNKNOWN = 0;
    MAIN_SETTINGS = 1;
    ACCESSIBILITY = 2;
    ACCESSIBILITY_CAPTION_PROPERTIES = 3;
    ACCESSIBILITY_SERVICE = 4;
    ACCESSIBILITY_TOGGLE_DALTONIZER = 5;
    ACCESSIBILITY_TOGGLE_GLOBAL_GESTURE = 6;
    ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION = 7;
    ACCOUNT = 8;
    ACCOUNTS_ACCOUNT_SYNC = 9;
    ACCOUNTS_CHOOSE_ACCOUNT_ACTIVITY = 10;
    ACCOUNTS_MANAGE_ACCOUNTS = 11;
    APN = 12;
    APN_EDITOR = 13;
    APP_OPS_DETAILS = 14;
    APP_OPS_SUMMARY = 15;
    APPLICATION = 16;
    APPLICATIONS_APP_LAUNCH = 17;
    APPLICATIONS_APP_PERMISSION = 18;
    APPLICATIONS_APP_STORAGE = 19;
    APPLICATIONS_INSTALLED_APP_DETAILS = 20;
    APPLICATIONS_PROCESS_STATS_DETAIL = 21;
    APPLICATIONS_PROCESS_STATS_MEM_DETAIL = 22;
    APPLICATIONS_PROCESS_STATS_UI = 23;
    BLUETOOTH = 24;
    BLUETOOTH_DEVICE_PICKER = 25;
    BLUETOOTH_DEVICE_PROFILES = 26;
    CHOOSE_LOCK_GENERIC = 27;
    CHOOSE_LOCK_PASSWORD = 28;
    CHOOSE_LOCK_PATTERN = 29;
    CONFIRM_LOCK_PASSWORD = 30;
    CONFIRM_LOCK_PATTERN = 31;
    CRYPT_KEEPER = 32;
    CRYPT_KEEPER_CONFIRM = 33;
    DASHBOARD_SEARCH_RESULTS = 34;
    DASHBOARD_SUMMARY = 35;
    DATA_USAGE = 36;
    DATA_USAGE_SUMMARY = 37;
    DATE_TIME = 38;
    DEVELOPMENT = 39;
    DEVICEINFO = 40;
    DEVICEINFO_IMEI_INFORMATION = 41;
    DEVICEINFO_STORAGE = 42;
    DEVICEINFO_SIM_STATUS = 43;
    DEVICEINFO_STATUS = 44;
    DEVICEINFO_USB = 45;
    DISPLAY = 46;
    DREAM = 47;
    ENCRYPTION = 48;
    FINGERPRINT = 49;
    FINGERPRINT_ENROLL = 50;
    FUELGAUGE_BATTERY_HISTORY_DETAIL = 51;
    FUELGAUGE_BATTERY_SAVER = 52;
    FUELGAUGE_POWER_USAGE_DETAIL = 53;
    FUELGAUGE_POWER_USAGE_SUMMARY = 54;
    HOME = 55;
    ICC_LOCK = 56;
    INPUTMETHOD_LANGUAGE = 57;
    INPUTMETHOD_KEYBOARD = 58;
    INPUTMETHOD_SPELL_CHECKERS = 59;
    INPUTMETHOD_SUBTYPE_ENABLER = 60;
    INPUTMETHOD_USER_DICTIONARY = 61;
    INPUTMETHOD_USER_DICTIONARY_ADD_WORD = 62;
    LOCATION = 63;
    LOCATION_MODE = 64;
    MANAGE_APPLICATIONS = 65;
    MASTER_CLEAR = 66;
    MASTER_CLEAR_CONFIRM = 67;
    NET_DATA_USAGE_METERED = 68;
    NFC_BEAM = 69;
    NFC_PAYMENT = 70;
    NOTIFICATION = 71;
    NOTIFICATION_APP_NOTIFICATION = 72;
    NOTIFICATION_OTHER_SOUND = 73;
    NOTIFICATION_REDACTION = 74;
    NOTIFICATION_STATION = 75;
    NOTIFICATION_ZEN_MODE = 76;
    OWNER_INFO = 77;
    PRINT_JOB_SETTINGS = 78;
    PRINT_SERVICE_SETTINGS = 79;
    PRINT_SETTINGS = 80;
    PRIVACY = 81;
    PROXY_SELECTOR = 82;
    RESET_NETWORK = 83;
    RESET_NETWORK_CONFIRM = 84;
    RUNNING_SERVICE_DETAILS = 85;
    SCREEN_PINNING = 86;
    SECURITY = 87;
    SIM = 88;
    TESTING = 89;
    TETHER = 90;
    TRUST_AGENT = 91;
    TRUSTED_CREDENTIALS = 92;
    TTS_ENGINE_SETTINGS = 93;
    TTS_TEXT_TO_SPEECH = 94;
    USAGE_ACCESS = 95;
    USER = 96;
    USERS_APP_RESTRICTIONS = 97;
    USER_DETAILS = 98;
    VOICE_INPUT = 99;
    VPN = 100;
    WALLPAPER_TYPE = 101;
    WFD_WIFI_DISPLAY = 102;
    WIFI = 103;
    WIFI_ADVANCED = 104;
    WIFI_CALLING = 105;
    WIFI_SAVED_ACCESS_POINTS = 106;
    WIFI_APITEST = 107;
    WIFI_INFO = 108;
    WIFI_P2P = 109;
    WIRELESS = 110;
    QS_PANEL = 111;
    QS_AIRPLANEMODE = 112;
    QS_BLUETOOTH = 113;
    QS_CAST = 114;
    QS_CELLULAR = 115;
    QS_COLORINVERSION = 116;
    QS_DATAUSAGEDETAIL = 117;
    QS_DND = 118;
    QS_FLASHLIGHT = 119;
    QS_HOTSPOT = 120;
    QS_INTENT = 121;
    QS_LOCATION = 122;
    QS_ROTATIONLOCK = 123;
    QS_USERDETAILITE = 124;
    QS_USERDETAIL = 125;
    QS_WIFI = 126;
    NOTIFICATION_PANEL = 127;
    NOTIFICATION_ITEM = 128;
    NOTIFICATION_ITEM_ACTION = 129;
    APPLICATIONS_ADVANCED = 130;
    LOCATION_SCANNING = 131;
    MANAGE_APPLICATIONS_ALL = 132;
    MANAGE_APPLICATIONS_NOTIFICATIONS = 133;
    ACTION_WIFI_ADD_NETWORK = 134;
    ACTION_WIFI_CONNECT = 135;
    ACTION_WIFI_FORCE_SCAN = 136;
    ACTION_WIFI_FORGET = 137;
    ACTION_WIFI_OFF = 138;
    ACTION_WIFI_ON = 139;
    MANAGE_PERMISSIONS = 140;
    NOTIFICATION_ZEN_MODE_PRIORITY = 141;
    NOTIFICATION_ZEN_MODE_AUTOMATION = 142;
    MANAGE_DOMAIN_URLS = 143;
    NOTIFICATION_ZEN_MODE_SCHEDULE_RULE = 144;
    NOTIFICATION_ZEN_MODE_EXTERNAL_RULE = 145;
    NOTIFICATION_ZEN_MODE_EVENT_RULE = 146;
    ACTION_BAN_APP_NOTES = 147;
    ACTION_DISMISS_ALL_NOTES = 148;
    QS_DND_DETAILS = 149;
    QS_BLUETOOTH_DETAILS = 150;
    QS_CAST_DETAILS = 151;
    QS_WIFI_DETAILS = 152;
    QS_WIFI_TOGGLE = 153;
    QS_BLUETOOTH_TOGGLE = 154;
    QS_CELLULAR_TOGGLE = 155;
    QS_SWITCH_USER = 156;
    QS_CAST_SELECT = 157;
    QS_CAST_DISCONNECT = 158;
    ACTION_BLUETOOTH_TOGGLE = 159;
    ACTION_BLUETOOTH_SCAN = 160;
    ACTION_BLUETOOTH_RENAME = 161;
    ACTION_BLUETOOTH_FILES = 162;
    QS_DND_TIME = 163;
    QS_DND_CONDITION_SELECT = 164;
    QS_DND_ZEN_SELECT = 165;
    QS_DND_TOGGLE = 166;
    ACTION_ZEN_ALLOW_REMINDERS = 167;
    ACTION_ZEN_ALLOW_EVENTS = 168;
    ACTION_ZEN_ALLOW_MESSAGES = 169;
    ACTION_ZEN_ALLOW_CALLS = 170;
    ACTION_ZEN_ALLOW_REPEAT_CALLS = 171;
    ACTION_ZEN_ADD_RULE = 172;
    ACTION_ZEN_ADD_RULE_OK = 173;
    ACTION_ZEN_DELETE_RULE = 174;
    ACTION_ZEN_DELETE_RULE_OK = 175;
    ACTION_ZEN_ENABLE_RULE = 176;
    ACTION_AIRPLANE_TOGGLE = 177;
    ACTION_CELL_DATA_TOGGLE = 178;
    NOTIFICATION_ACCESS = 179;
    NOTIFICATION_ZEN_MODE_ACCESS = 180;
    APPLICATIONS_DEFAULT_APPS = 181;
    APPLICATIONS_STORAGE_APPS = 182;
    APPLICATIONS_USAGE_ACCESS_DETAIL = 183;
    APPLICATIONS_HIGH_POWER_APPS = 184;
    FUELGAUGE_HIGH_POWER_DETAILS = 185;
    ACTION_LS_UNLOCK = 186;
    ACTION_LS_SHADE = 187;
    ACTION_LS_HINT = 188;
    ACTION_LS_CAMERA = 189;
    ACTION_LS_DIALER = 190;
    ACTION_LS_LOCK = 191;
    ACTION_LS_NOTE = 192;
    ACTION_LS_QS = 193;
    ACTION_SHADE_QS_PULL = 194;
    ACTION_SHADE_QS_TAP = 195;
    LOCKSCREEN = 196;
    BOUNCER = 197;
    SCREEN = 198;
    NOTIFICATION_ALERT = 199;
    ACTION_EMERGENCY_CALL = 200;
    APPLICATIONS_MANAGE_ASSIST = 201;
    PROCESS_STATS_SUMMARY = 202;
    ACTION_ROTATION_LOCK = 203;
    ACTION_NOTE_CONTROLS = 204;
    ACTION_NOTE_INFO = 205;
    ACTION_APP_NOTE_SETTINGS = 206;
    VOLUME_DIALOG = 207;
    VOLUME_DIALOG_DETAILS = 208;
    ACTION_VOLUME_SLIDER = 209;
    ACTION_VOLUME_STREAM = 210;
    ACTION_VOLUME_KEY = 211;
    ACTION_VOLUME_ICON = 212;
    ACTION_RINGER_MODE = 213;
    ACTION_ACTIVITY_CHOOSER_SHOWN = 214;
    ACTION_ACTIVITY_CHOOSER_PICKED_APP_TARGET = 215;
    ACTION_ACTIVITY_CHOOSER_PICKED_SERVICE_TARGET = 216;
    ACTION_ACTIVITY_CHOOSER_PICKED_STANDARD_TARGET = 217;
    ACTION_BRIGHTNESS = 218;
    ACTION_BRIGHTNESS_AUTO = 219;
    BRIGHTNESS_DIALOG = 220;
    SYSTEM_ALERT_WINDOW_APPS = 221;
    DREAMING = 222;
    DOZING = 223;
    OVERVIEW_ACTIVITY = 224;
    ABOUT_LEGAL_SETTINGS = 225;
    ACTION_SEARCH_RESULTS = 226;
    TUNER = 227;
    TUNER_QS = 228;
    TUNER_DEMO_MODE = 229;
    TUNER_QS_REORDER = 230;
    TUNER_QS_ADD = 231;
    TUNER_QS_REMOVE = 232;
    TUNER_STATUS_BAR_ENABLE = 233;
    TUNER_STATUS_BAR_DISABLE = 234;
    TUNER_DEMO_MODE_ENABLED = 235;
    TUNER_DEMO_MODE_ON = 236;
    TUNER_BATTERY_PERCENTAGE = 237;
    FUELGAUGE_INACTIVE_APPS = 238;
    ACTION_ASSIST_LONG_PRESS = 239;
    FINGERPRINT_ENROLLING = 240;
    FINGERPRINT_FIND_SENSOR = 241;
    FINGERPRINT_ENROLL_FINISH = 242;
    FINGERPRINT_ENROLL_INTRO = 243;
    FINGERPRINT_ENROLL_ONBOARD = 244;
    FINGERPRINT_ENROLL_SIDECAR = 245;
    FINGERPRINT_ENROLLING_SETUP = 246;
    FINGERPRINT_FIND_SENSOR_SETUP = 247;
    FINGERPRINT_ENROLL_FINISH_SETUP = 248;
    FINGERPRINT_ENROLL_INTRO_SETUP = 249;
    FINGERPRINT_ENROLL_ONBOARD_SETUP = 250;
    ACTION_FINGERPRINT_ENROLL = 251;
    ACTION_FINGERPRINT_AUTH = 252;
    ACTION_FINGERPRINT_DELETE = 253;
    ACTION_FINGERPRINT_RENAME = 254;
    ACTION_DOUBLE_TAP_POWER_CAMERA_GESTURE = 255;
    ACTION_WIGGLE_CAMERA_GESTURE = 256;
    QS_WORKMODE = 257;
    BACKGROUND_CHECK_SUMMARY = 258;
    QS_LOCK_TILE = 259;
    QS_USER_TILE = 260;
    QS_BATTERY_TILE = 261;
    NOTIFICATION_ZEN_MODE_VISUAL_INTERRUPTIONS = 262;
    ACTION_ZEN_ALLOW_WHEN_SCREEN_OFF = 263;
    // Dead
    ACTION_ZEN_ALLOW_LIGHTS = 264;
    NOTIFICATION_TOPIC_NOTIFICATION = 265;
    ACTION_DEFAULT_SMS_APP_CHANGED = 266;
    QS_COLOR_MATRIX = 267;
    QS_CUSTOM = 268;
    ACTION_ZEN_ALLOW_WHEN_SCREEN_ON = 269;

    // Logged when the user docks a window from recents by
    // longpressing a task and dragging it to the dock area.
    ACTION_WINDOW_DOCK_DRAG_DROP = 270;

    // Logged when the user docks a fullscreen window by long pressing
    // recents which also opens recents on the lower/right side.
    ACTION_WINDOW_DOCK_LONGPRESS = 271;

    // Logged when the user docks a window by dragging from the navbar
    // which also opens recents on the lower/right side.
    ACTION_WINDOW_DOCK_SWIPE = 272;

    // Logged when the user launches a profile-specific app and we
    // intercept it with the confirm credentials UI.
    PROFILE_CHALLENGE = 273;

    QS_BATTERY_DETAIL = 274;

    // Logged when the user goes into the overview history.
    OVERVIEW_HISTORY = 275;

    // Logged when the user pages through overview.
    OVERVIEW_PAGE = 276;

    // Logged when the user launches a task from overview.
    OVERVIEW_SELECT = 277;

    // Logged when the user views the emergency info.
    ACTION_VIEW_EMERGENCY_INFO = 278;

    // Logged when the user views the edit emergency info activity.
    ACTION_EDIT_EMERGENCY_INFO = 279;

    // Logged when the user edits an emergency info field.
    ACTION_EDIT_EMERGENCY_INFO_FIELD = 280;

    // Logged when the user adds a new emergency contact.
    ACTION_ADD_EMERGENCY_CONTACT = 281;

    // Logged when the user deletes an emergency contact.
    ACTION_DELETE_EMERGENCY_CONTACT = 282;

    // Logged when the user calls an emergency contact.
    ACTION_CALL_EMERGENCY_CONTACT = 283;

    // QS Tile for Data Saver.
    QS_DATA_SAVER = 284;

    // OPEN: Settings > Security > User credentials
    // CATEGORY: Settings
    // OS: 6.1
    // GMS: 7.8.99
    USER_CREDENTIALS = 285;

    // Logged when the user undocks a previously docked window by long pressing recents while in
    // docked mode.
    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;

    // Interactive bug report initiated from power menu.
    ACTION_BUGREPORT_FROM_POWER_MENU_INTERACTIVE = 292;

    // Full bug report initiated from power menu.
    ACTION_BUGREPORT_FROM_POWER_MENU_FULL = 293;

    // Interactive bug report initiated from Settings.
    ACTION_BUGREPORT_FROM_SETTINGS_INTERACTIVE = 294;

    // Full bug report initiated from Settings.
    ACTION_BUGREPORT_FROM_SETTINGS_FULL = 295;

    // Bug report canceled using system notification.
    ACTION_BUGREPORT_NOTIFICATION_ACTION_CANCEL = 296;

    // Bug report details screen open using system notification.
    ACTION_BUGREPORT_NOTIFICATION_ACTION_DETAILS = 297;

    // Additional Bug report screen shot taken using system notification.
    ACTION_BUGREPORT_NOTIFICATION_ACTION_SCREENSHOT = 298;

    // Bug report shared by user using system notification.
    ACTION_BUGREPORT_NOTIFICATION_ACTION_SHARE = 299;

    // User changed bug report name using the details screen.
    ACTION_BUGREPORT_DETAILS_NAME_CHANGED = 300;

    // User changed bug report title using the details screen.
    ACTION_BUGREPORT_DETAILS_TITLE_CHANGED = 301;

    // User changed bug report description using the details screen.
    ACTION_BUGREPORT_DETAILS_DESCRIPTION_CHANGED = 302;

    // Changes made on bug report details screen were saved by user.
    ACTION_BUGREPORT_DETAILS_SAVED = 303;

    // Changes made on bug report details screen were canceled by user.
    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;
  }
}
