// Copyright (C) 2017 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.messages";
option java_outer_classname = "SystemMessageProto";

package com_android_notifications;

// Descriptors for system messages: notifications, dialogs, toasts, etc.
message SystemMessage {

  // System message IDs
  // These are non-consecutive in order to preserve some existing, ad hoc IDs.
  // It is OK to use skipped IDs.
  // Prefer to add new IDs consecutively from zero, search for ADD_NEW_IDS_ABOVE_THIS_LINE.
  // Most of these IDs only became meaningful with the O release.
  enum ID {
    // Unknown
    NOTE_UNKNOWN = 0;

    // Notify the user that a screenshot was captured.
    // Package: com.android.systemui
    NOTE_GLOBAL_SCREENSHOT = 1;

    // Warn the user about an invalid charger.
    // Package: com.android.systemui
    NOTE_BAD_CHARGER = 2;

    // Warn the user about low battery.
    // Package: com.android.systemui
    NOTE_POWER_LOW = 3;

    // Warn the user that the device has gotten warm.
    // Package: com.android.systemui
    NOTE_HIGH_TEMP = 4;

    // Warn the user that some notifications are hidden.
    // Package: com.android.systemui
    NOTE_HIDDEN_NOTIFICATIONS = 5;

    // Notify the user of a problem with a plugin (dev devices only).
    // Package: com.android.systemui
    NOTE_PLUGIN = 6;

    // Notify the user that instant app is running.
    // Package: com.android.systemui
    NOTE_INSTANT_APPS = 7;

    // Notify the user that they should select an input method
    // Package: android
    NOTE_SELECT_INPUT_METHOD = 8;

    // Notify the user about limited functionality before decryption
    // Package: android
    NOTE_FBE_ENCRYPTED_NOTIFICATION = 9;

    // Give the user a way out of car mode
    // Package: android
    NOTE_CAR_MODE_DISABLE = 10;

    // Notification to tell the user that a heavy-weight application is running.
    // Package: android
    NOTE_HEAVY_WEIGHT_NOTIFICATION = 11;

    // Notification to tell the user that a process has exceeded its memory limit.
    // Package: android
    NOTE_DUMP_HEAP_NOTIFICATION = 12;

    // Notification that is shown when finishing a system upgrade
    // Package: android
    NOTE_SYSTEM_UPGRADING = 13;

    // Notify the user that tethering is active.
    // Package: android
    NOTE_TETHER_GENERAL = 14;
    NOTE_TETHER_USB = 15;
    NOTE_TETHER_BLUETOOTH = 16;

    // Notify the user that always-on VPN has disconnected.
    // Package: android
    NOTE_VPN_DISCONNECTED = 17;

    // Notify the user about a sync error.
    // Package: android
    NOTE_SYNC_ERROR = 18;

    // Ask the user to select a keyboard language and layout
    // Package: android
    NOTE_SELECT_KEYBOARD_LAYOUT = 19;

    // Update the user about the status of the VPN
    // Package: android
    NOTE_VPN_STATUS = 20;

    // Package manager either installed or deleted a package
    // Package: android
    NOTE_PACKAGE_STATE = 21;

    // Tell the user that storage space is low
    // Package: android
    NOTE_LOW_STORAGE = 23;

    // Confirm that the user wants to reset out of retail demo mode
    // Package: android
    NOTE_RETAIL_RESET = 24;

    // Entice the use to tap to share files
    // Package: android
    NOTE_USB_MTP_TAP = 25;

    // Display the Android Debug Protocol status
    // Package: android
    NOTE_ADB_ACTIVE = 26;

    // Inform that USB is configured for Media Transfer Protocol
    // Package: android
    NOTE_USB_MTP = 27;

    // Inform that USB is configured for Picture Transfer Protocol
    // Package: android
    NOTE_USB_PTP = 28;

    // Inform that USB is configured as a Musical Instrument Digital Interface
    // Package: android
    NOTE_USB_MIDI = 29;

    // Inform that USB is configured in host mode
    // Package: android
    NOTE_USB_ACCESSORY = 30;

    // Inform the user that the device is supplying power to another device.
    // Package: android
    NOTE_USB_SUPPLYING = 31;

    // Inform the user that the device is consuming power from another device.
    // Package: android
    NOTE_USB_CHARGING = 32;

    // Inform the user that a certificate authority is managing SSL
    // Package: android
    NOTE_SSL_CERT_INFO = 33;

    // Warn the user they are approaching their data limit.
    // Package: android
    NOTE_NET_WARNING = 34;

    // Warn the user they have reached their data limit.
    // Package: android
    NOTE_NET_LIMIT = 35;

    // Warn the user they have exceeded their data limit.
    // Package: android
    NOTE_NET_LIMIT_SNOOZED = 36;

    // Inform the user they need to sign in to an account
    // Package: android, and others
    NOTE_ACCOUNT_REQUIRE_SIGNIN = 37;

    // Inform the user that there has been a permission request for an account
    // Package: android
    NOTE_ACCOUNT_CREDENTIAL_PERMISSION = 38;

    // Inform the user their phone recently shut down due to high temperature
    NOTE_THERMAL_SHUTDOWN = 39;

    // Tell the user about currently running foreground services
    // Package: android
    NOTE_FOREGROUND_SERVICES = 40;

    // Inform the user that the connected audio accessory is not supported
    NOTE_USB_AUDIO_ACCESSORY_NOT_SUPPORTED = 41;

    // Inform the user that a wrong password was detected while attempting to connect
    // to a wifi network
    NOTE_WIFI_WRONG_PASSWORD = 42;

    // Inform the user that Wifi Wake will re-enable wifi when possible
    NOTE_WIFI_WAKE_ONBOARD = 43;

    // Inform the user that Wifi Wake has automatically re-enabled wifi
    NOTE_WIFI_WAKE_TURNED_BACK_ON = 44;

    // Inform the user that unexpectedly rapid network usage is happening
    NOTE_NET_RAPID = 45;

    // Notify the user that carrier wifi networks are available.
    // Package: android
    NOTE_CARRIER_NETWORK_AVAILABLE = 46;

    // Inform that USB is configured for Tethering
    // Package: android
    NOTE_USB_TETHER = 47;

    // Inform that DND settings have changed on OS upgrade
    // Package: android
    NOTE_ZEN_UPGRADE = 48;

    // Notification to suggest automatic battery saver.
    // Package: android
    NOTE_AUTO_SAVER_SUGGESTION = 49;

    // Notify the user that their softap config preference has changed.
    // Package: android
    NOTE_SOFTAP_CONFIG_CHANGED = 50;

    // Notify the user that an app suggested network is available for connection.
    // Package: android
    NOTE_NETWORK_SUGGESTION_AVAILABLE = 51;

    // Inform the user that the contaminant is detected on the USB port
    NOTE_USB_CONTAMINANT_DETECTED = 52;

    // Inform that user that the USB port is free of contaminants.
    NOTE_USB_CONTAMINANT_NOT_DETECTED = 53;

    // Inform the user that Test Harness Mode is active.
    // Package: android
    NOTE_TEST_HARNESS_MODE_ENABLED = 54;

    // Inform the user that Serial Console is active.
    // Package: android
    NOTE_SERIAL_CONSOLE_ENABLED = 55;

    // Inform the user that the current network may not support using a randomized MAC address.
    NOTE_NETWORK_NO_MAC_RANDOMIZATION_SUPPORT = 56;

    // Inform the user that EAP failure occurs
    NOTE_WIFI_EAP_FAILURE = 57;

    // Notify the user that their softap disabled because auto shutdown timeout expired.
    // Package: android
    NOTE_SOFTAP_AUTO_DISABLED = 58;

    // Notify the user that their admin has changed location settings.
    // Package: android
    NOTE_LOCATION_CHANGED = 59;

    // Notify user that a SIM is required to connect to Wifi network
    // Package: android
    NOTE_ID_WIFI_SIM_REQUIRED = 60;

    // TODO: remove this notification after feature development is done
    // Inform the user a foreground service is restricted from BG-launch.
    NOTE_FOREGROUND_SERVICE_BG_LAUNCH = 61;

    // Display the Android Debug Protocol status
    // Package: android
    NOTE_ADB_WIFI_ACTIVE = 62;

    // Notify the user a carrier suggestion is available to get IMSI exemption.
    // Package: android
    NOTE_CARRIER_SUGGESTION_AVAILABLE = 63;

    // Inform that NAS settings have changed on OS upgrade
    // Package: android
    NOTE_NAS_UPGRADE = 64;

    // Notify the user to unblock the microphone global toggle
    // Package: android
    NOTE_UNBLOCK_MIC_TOGGLE = 65;

    // Notify the user to unblock the camera global toggle
    // Package: android
    NOTE_UNBLOCK_CAM_TOGGLE = 66;

    // Notify the user that a CA certificate is pending for the wifi connection.
    NOTE_SERVER_CA_CERTIFICATE = 67;

    // Notify the user to set up dream
    NOTE_SETUP_DREAM = 68;

    // Inform the user that MTE override is active.
    // Package: android
    NOTE_MTE_OVERRIDE_ENABLED = 69;

    // Inform the user of notification permissions changes.
    // Package: android
    NOTE_REVIEW_NOTIFICATION_PERMISSIONS = 71;

    // Inform the user of wifi apm state changes.
    // Package: android
    NOTE_WIFI_APM_NOTIFICATION = 73;

    // Inform the user of bluetooth apm state changes.
    // Package: android
    NOTE_BT_APM_NOTIFICATION = 74;

    // ADD_NEW_IDS_ABOVE_THIS_LINE
    // Legacy IDs with arbitrary values appear below
    // Legacy IDs existed as stable non-conflicting constants prior to the O release

    // Network status notes, previously decleared in metrics_constants with these values
    // Package: android
    //
    // A captive portal was detected during network validation
    NOTE_NETWORK_SIGN_IN = 740;
    // An unvalidated network without Internet was selected by the user
    NOTE_NETWORK_NO_INTERNET = 741;
    // A validated network failed revalidation and lost Internet access
    NOTE_NETWORK_LOST_INTERNET = 742;
    // The system default network switched to a different network
    NOTE_NETWORK_SWITCH = 743;
    // Device logged-in captive portal network successfully
    NOTE_NETWORK_LOGGED_IN = 744;
    // A partial connectivity network was detected during network validation
    NOTE_NETWORK_PARTIAL_CONNECTIVITY = 745;
    // Private DNS is broken in strict mode
    NOTE_NETWORK_PRIVATE_DNS_BROKEN = 746;

    // Notify the user that their work profile has been deleted
    // Package: android
    NOTE_PROFILE_WIPED = 1001;

    // Warn the user that their org can monitor the network
    // Package: android
    NOTE_NETWORK_LOGGING = 1002;

    // Confirm that the user wants to remove the guest account.
    // Package: com.android.systemui
    NOTE_REMOVE_GUEST = 1010;

    // Confirm that the user wants to log out of the device.
    // Package: com.android.systemui
    NOTE_LOGOUT_USER = 1011;

    // Notify the user that a TV PIP is running.
    // Package: com.android.systemui
    NOTE_TV_PIP = 1100;

    // Extreme battery saver notification.
    NOTE_BATTERY_SAVER_WARNING = 1200;

    // Notify the user that open wifi networks are available.
    // Package: android
    NOTE_NETWORK_AVAILABLE = 17303299;

    // Communicate to the user about remote bugreports.
    // Package: android
    NOTE_REMOTE_BUGREPORT = 678432343;

    // Notify the user about public volume state changes..
    // Package: com.android.systemui
    NOTE_STORAGE_PUBLIC = 0x53505542;  // 1397773634

    // Notify the user about private volume state changes.
    // Package: com.android.systemui
    NOTE_STORAGE_PRIVATE = 0x53505256;

    // Notify the user about an unsupported storage device..
    // Package: com.android.systemui
    NOTE_STORAGE_DISK = 0x5344534b;

    // Notify the user that data or apps are being moved to external storage.
    // Package: com.android.systemui
    NOTE_STORAGE_MOVE = 0x534d4f56;

    // Notify the user that the admin suspended personal apps on the device.
    // Package: android
    NOTE_PERSONAL_APPS_SUSPENDED = 1003;

    // Notify the user that window magnification is available.
    // package: android
    NOTE_A11Y_WINDOW_MAGNIFICATION_FEATURE = 1004;

    // Notify the user that some accessibility service has view and control permissions.
    // package: android
    NOTE_A11Y_VIEW_AND_CONTROL_ACCESS = 1005;

    // Notify the user an abusive background app has been detected.
    // Package: android
    // Note: this is a base ID, multiple notifications will be posted for each
    // abusive apps, with notification ID based off this ID.
    NOTE_ABUSIVE_BG_APPS_BASE = 0xc1b2508; // 203105544
  }
}
