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

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

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