/*
 * 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";
package android.providers.settings;

option java_multiple_files = true;

import "frameworks/base/core/proto/android/providers/settings/common.proto";
import "frameworks/base/core/proto/android/privacy.proto";

// Note: it's a conscious decision to add each setting as a separate field. This
// allows annotating each setting with its own privacy tag.
message SecureSettingsProto {
    option (android.msg_privacy).dest = DEST_EXPLICIT;

    repeated SettingsOperationProto historical_operations = 1;

    message Accessibility {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // List of the enabled accessibility providers.
        optional SettingProto enabled_accessibility_services = 2;
        optional SettingProto autoclick_enabled = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto autoclick_delay = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // Setting specifying the accessibility service or feature to be toggled via
        // the accessibility button in the navigation bar. This is either a
        // flattened ComponentName or the class name of a system class implementing
        // a supported accessibility feature.
        optional SettingProto button_target_component = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto captioning_enabled = 6 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto captioning_locale = 7 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto captioning_preset = 8 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto captioning_background_color = 9 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto captioning_foreground_color = 10 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto captioning_edge_type = 11 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto captioning_edge_color = 12 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto captioning_window_color = 13 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto captioning_typeface = 14 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto captioning_font_scale = 15 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto display_daltonizer_enabled = 16 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // Integer property that specifies the type of color space adjustment to perform.
        optional SettingProto display_daltonizer = 17 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto display_inversion_enabled = 18 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto display_magnification_enabled = 19 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto display_magnification_navbar_enabled = 20 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto display_magnification_scale = 21 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto high_text_contrast_enabled = 22 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto large_pointer_icon = 23 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto shortcut_enabled = 24 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto shortcut_on_lock_screen = 25 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto shortcut_dialog_shown = 26 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto shortcut_target_service = 27 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto soft_keyboard_mode = 28 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // Whether to speak passwords while in accessibility mode.
        optional SettingProto speak_password = 29 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto touch_exploration_enabled = 30 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // List of the accessibility services to which the user has granted
        // permission to put the device into touch exploration mode.
        optional SettingProto touch_exploration_granted_accessibility_services = 31;
        // Settings for accessibility timeout
        optional SettingProto non_interactive_ui_timeout_ms = 32 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto interactive_ui_timeout_ms = 33 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Accessibility accessibility = 2;

    // Origins for which browsers should allow geolocation by default.
    // The value is a space-separated list of origins.
    optional SettingProto allowed_geolocation_origins = 3;

    message AlwaysOnVpn {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto app = 1;
        optional SettingProto lockdown = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional AlwaysOnVpn always_on_vpn = 4;

    optional SettingProto android_id = 5;
    optional SettingProto anr_show_background = 6 [ (android.privacy).dest = DEST_AUTOMATIC ];

    message Assist {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        // The current assistant component. It could be a voice interaction service,
        // or an activity that handles ACTION_ASSIST, or empty, which means using
        // the default handling.
        optional SettingProto assistant = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto structure_enabled = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto screenshot_enabled = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto disclosure_enabled = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto gesture_enabled = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto gesture_sensitivity = 6 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto gesture_silence_alerts_enabled = 7 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto gesture_wake_enabled = 8 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto gesture_setup_complete = 9 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Assist assist = 7;

    message Autofill {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        // The currently selected autofill service flattened ComponentName.
        optional SettingProto service = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // Boolean indicating if Autofill supports field classification.
        optional SettingProto feature_field_classification = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto user_data_max_user_data_size = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto user_data_max_field_classification_ids_size = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto user_data_max_category_count = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto user_data_max_value_length = 6 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto user_data_min_value_length = 7 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // The query URI to find an auto fill service to install.
        optional SettingProto service_search_uri = 8 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Autofill autofill = 8;

    message AutomaticStorageManager {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto days_to_retain = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto bytes_cleared = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto last_run = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto turned_off_by_policy = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional AutomaticStorageManager automatic_storage_manager = 9;

    message Backup {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto auto_restore = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto provisioned = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto transport = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto manager_constants = 5;
        // Local transport parameters so we can configure it for tests.
        // This is encoded as a key=value list, separated by commas.
        // The following keys are supported:
        //   fake_encryption_flag  (boolean)
        optional SettingProto local_transport_parameters = 6;
        optional SettingProto packages_to_clear_data_before_full_restore = 7;
    }
    optional Backup backup = 10;

    optional SettingProto bluetooth_on_while_driving = 11 [ (android.privacy).dest = DEST_AUTOMATIC ];

    message Camera {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto gesture_disabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto double_tap_power_gesture_disabled = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto double_twist_to_flip_enabled = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto lift_trigger_enabled = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Camera camera = 12;

    optional SettingProto carrier_apps_handled = 13 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto cmas_additional_broadcast_pkg = 14 [ (android.privacy).dest = DEST_AUTOMATIC ];
    repeated SettingProto completed_categories = 15;
    optional SettingProto connectivity_release_pending_intent_delay_ms = 16 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto device_paired = 17 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto dialer_default_application = 18 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto display_density_forced = 19 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto double_tap_to_wake = 20 [ (android.privacy).dest = DEST_AUTOMATIC ];

    message Doze {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto always_on = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto pulse_on_pick_up = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto pulse_on_long_press = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto pulse_on_double_tap = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto pulse_on_tap = 6 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Doze doze = 21;

    optional SettingProto emergency_assistance_application = 22 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto enhanced_voice_privacy_enabled = 23 [ (android.privacy).dest = DEST_AUTOMATIC ];

    message Gesture {
        optional SettingProto aware_enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];

        optional SettingProto silence_alarms_count = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto silence_calls_count = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto silence_enabled = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // del: silence_notification_count = 5
        optional SettingProto silence_timer_count = 6 [ (android.privacy).dest = DEST_AUTOMATIC ];

        optional SettingProto skip_count = 7 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto skip_enabled = 8 [ (android.privacy).dest = DEST_AUTOMATIC ];

        optional SettingProto silence_alarms_touch_count = 9 [ (android.privacy).dest =
            DEST_AUTOMATIC ];
        optional SettingProto silence_calls_touch_count = 10 [ (android.privacy).dest =
            DEST_AUTOMATIC ];
        optional SettingProto silence_timer_touch_count = 11 [ (android.privacy).dest =
            DEST_AUTOMATIC ];
        optional SettingProto skip_touch_count = 12 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto aware_tap_pause_gesture_count = 13 [
            (android.privacy).dest =
            DEST_AUTOMATIC ];
        optional SettingProto aware_tap_pause_touch_count = 14 [ (android.privacy).dest =
            DEST_AUTOMATIC ];
    }
    optional Gesture gesture = 74;

    optional SettingProto immersive_mode_confirmations = 24 [ (android.privacy).dest = DEST_AUTOMATIC ];

    message Incall {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto power_button_behavior = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto back_button_behavior = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Incall incall = 25;

    message InputMethods {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto default_input_method = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto disabled_system_input_methods = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto enabled_input_methods = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto method_selector_visibility = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto subtype_history = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto selected_input_method_subtype = 6 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto show_ime_with_hard_keyboard = 7 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional InputMethods input_methods = 26;

    optional SettingProto install_non_market_apps = 27 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto instant_apps_enabled = 28 [ (android.privacy).dest = DEST_AUTOMATIC ];
    // Uri of the slice that's presented on the keyguard. Defaults to a slice
    // with the date and next alarm.
    optional SettingProto keyguard_slice_uri = 29;
    optional SettingProto last_setup_shown = 30 [ (android.privacy).dest = DEST_AUTOMATIC ];

    message Launcher {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto swipe_up_to_switch_apps_enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Launcher launcher = 70;

    message Location {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        // The degree of location access enabled by the user.
        optional SettingProto mode = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // The App or module that changes the location mode.
        optional SettingProto changer = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];

        // What should happen to the location permissions when upgraded to Android Q.
        // 0 == revoke permissions. Anything else == do nothing.
        optional SettingProto permissions_upgrade_to_q_mode = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Location location = 31;

    // How frequently will the user be reminded about location permission grants
    message LocationAccessCheck {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        // Time in between periodic checks
        optional SettingProto interval_millis = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];

        // Time in between the user granting a location permission and a check
        optional SettingProto delay_millis = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional LocationAccessCheck location_access_check = 73;

    message LockScreen {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto lock_after_timeout = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto allow_private_notifications = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto allow_remote_input = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto show_notifications = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional LockScreen lock_screen = 32;

    // Whether lock-to-app will lock the keyguard when exiting.
    optional SettingProto lock_to_app_exit_locked = 33 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto lockdown_in_power_menu = 34 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto long_press_timeout = 35 [ (android.privacy).dest = DEST_AUTOMATIC ];

    message ManagedProfile {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto contact_remote_search = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional ManagedProfile managed_profile = 36;

    message Mount {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        // Whether or not alert sounds are played on StorageManagerService events.
        optional SettingProto play_notification_snd = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto ums_autostart = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto ums_prompt = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto ums_notify_enabled = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Mount mount = 37;

    optional SettingProto multi_press_timeout = 38 [ (android.privacy).dest = DEST_AUTOMATIC ];

    optional SettingProto navigation_mode = 76 [ (android.privacy).dest = DEST_AUTOMATIC ];
    message NfcPayment {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto default_component = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // Whether NFC payment is handled by the foreground application or a default.
        optional SettingProto foreground = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // The query URI to find an NFC service to install.
        optional SettingProto payment_service_search_uri = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional NfcPayment nfc_payment = 39;

    message NightDisplay {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto activated = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto auto_mode = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto color_temperature = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto custom_start_time = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto custom_end_time = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto last_activated_time = 6 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional NightDisplay night_display = 40;

    message Notification {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        // Read only list of the service components that the current user has
        // explicitly allowed to see and assist with all of the user's
        // notifications.
        // "enabled_notification_assistant" in code.
        optional SettingProto enabled_assistant = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto enabled_listeners = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto enabled_policy_access_packages = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto badging = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto show_note_about_notification_hiding = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto in_call_notification_enabled = 6 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto bubbles = 7 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Notification notification = 41;

    message PackageVerifier {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto user_consent = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto state = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional PackageVerifier package_verifier = 42;

    message ParentalControl {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto last_update = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto redirect_url = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional ParentalControl parental_control = 43;

    message PrintService {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        // The query URI to find a print service to install.
        optional SettingProto search_uri = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto disabled_print_services = 2;
        optional SettingProto enabled_print_services = 3;
    }
    optional PrintService print_service = 44;

    message QuickSettings {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        // Holds comma-separated list of ordering of QuickSettings tiles.
        optional SettingProto tiles = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto auto_added_tiles = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional QuickSettings qs = 45;

    message Rotation {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto show_rotation_suggestions = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto num_rotation_suggestions_accepted = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Rotation rotation = 46;

    // User-selected RTT mode. When on, outgoing and incoming calls will be
    // answered as RTT calls when supported by the device and carrier. Boolean
    // value.
    optional SettingProto rtt_calling_mode = 69 [ (android.privacy).dest = DEST_AUTOMATIC ];

    message Screensaver {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto components = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto activate_on_dock = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto activate_on_sleep = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto default_component = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Screensaver screensaver = 47;

    message Search {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto global_search_activity = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto num_promoted_sources = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto max_results_to_display = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto max_results_per_source = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto web_results_override_limit = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto promoted_source_deadline_millis = 6 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto source_timeout_millis = 7 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto prefill_millis = 8 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto max_stat_age_millis = 9 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto max_source_event_age_millis = 10 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto min_impressions_for_source_ranking = 11 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto min_clicks_for_source_ranking = 12 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto max_shortcuts_returned = 13 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto query_thread_core_pool_size = 14 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto query_thread_max_pool_size = 15 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto shortcut_refresh_core_pool_size = 16 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto shortcut_refresh_max_pool_size = 17 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto thread_keepalive_seconds = 18 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto per_source_concurrent_query_limit = 19 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Search search = 48;

    message SpellChecker {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // "selected_spell_checker" in code.
        optional SettingProto selected = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // "selected_spell_checker_subtype" in code.
        optional SettingProto selected_subtype = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional SpellChecker spell_checker = 49;

    optional SettingProto settings_classname = 50 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto show_first_crash_dialog_dev_option = 51 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto skip_first_use_hints = 52 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto sleep_timeout = 53 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto sms_default_application = 54 [ (android.privacy).dest = DEST_AUTOMATIC ];

    message Sounds {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto charging_sounds_enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto charging_vibration_enabled = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Sounds sounds = 72;

    // Defines whether managed profile ringtones should be synced from its
    // parent profile.
    optional SettingProto sync_parent_sounds = 55 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto system_navigation_keys_enabled = 56 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto theme_customization_overlay_packages = 75 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto trust_agents_initialized = 57 [ (android.privacy).dest = DEST_AUTOMATIC ];

    message Tts {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto default_rate = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto default_pitch = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto default_synth = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto default_locale = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto enabled_plugins = 5;
    }
    optional Tts tts = 58;

    message Tty {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto tty_mode_enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // The preferred TTY mode:
        // 0 = TTy Off, CDMA default
        // 1 = TTY Full
        // 2 = TTY HCO
        // 3 = TTY VCO
        optional SettingProto preferred_tty_mode = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Tty tty = 59;

    message Tv {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        // Whether the current user has been set up via setup wizard (0 = false,
        // 1 = true). This value differs from USER_SETUP_COMPLETE in that it can be
        // reset back to 0 in case SetupWizard has been re-enabled on TV devices.
        optional SettingProto user_setup_complete = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto input_hidden_inputs = 2;
        optional SettingProto input_custom_labels = 3;
    }
    optional Tv tv = 60;

    optional SettingProto ui_night_mode = 61 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto unknown_sources_default_reversed = 62 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto usb_audio_automatic_routing_disabled = 63 [ (android.privacy).dest = DEST_AUTOMATIC ];
    // Whether the current user has been set up via setup wizard (0 = false, 1 = true)
    optional SettingProto user_setup_complete = 64 [ (android.privacy).dest = DEST_AUTOMATIC ];

    message Voice {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        // The currently selected voice interaction service flattened ComponentName.
        optional SettingProto interaction_service = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // The ComponentName string of the service to be used as the voice
        // recognition service.
        optional SettingProto recognition_service = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Voice voice = 65;

    message Volume {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        // What behavior should be invoked when the volume hush gesture is triggered
        // One of VOLUME_HUSH_OFF, VOLUME_HUSH_VIBRATE, VOLUME_HUSH_MUTE.
        optional SettingProto hush_gesture = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // Persisted playback time after a user confirmation of an unsafe volume level.
        optional SettingProto unsafe_volume_music_active_ms = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Volume volume = 66;

    message Vr {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        optional SettingProto display_mode = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto enabled_listeners = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Vr vr = 67;

    optional SettingProto wake_gesture_enabled = 68 [ (android.privacy).dest = DEST_AUTOMATIC ];

    message Zen {
        option (android.msg_privacy).dest = DEST_EXPLICIT;

        // If 0, turning on dnd manually will last indefinitely. Else if
        // non-negative, turning on dnd manually will last for this many minutes.
        // Else (if negative), turning on dnd manually will surface a dialog that
        // prompts user to specify a duration.
        optional SettingProto duration = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto show_zen_upgrade_notification = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto show_zen_settings_suggestion = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto settings_updated = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto settings_suggestion_viewed = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Zen zen = 71;

    // Please insert fields in alphabetical order and group them into messages
    // if possible (to avoid reaching the method limit).
    // Next tag = 77;
}
