Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a9c0bb17 authored by Kweku Adams's avatar Kweku Adams
Browse files

Refactoring SystemSettingsProto to avoid method limit.

Bug: 76011704
Bug: 74975371
Test: flash device and check incident.proto output
and m EMMA_INSTRUMENT_STATIC=true EMMA_INSTRUMENT=true out/target/common/obj/APPS/CtsStatsdApp_intermediates/jacoco/work/instrumented/updated.stamp
and atest CtsIncidentHostTestCases:com.android.server.cts.SettingsIncidentTest

Change-Id: I30bb0f35dacd55c11603f9f8b9888c7d35df7a54
parent d9afdee2
Loading
Loading
Loading
Loading
+1 −106
Original line number Diff line number Diff line
@@ -20,9 +20,9 @@ package android.providers.settings;
option java_multiple_files = true;
option java_outer_classname = "SettingsServiceProto";

import "frameworks/base/core/proto/android/providers/settings/common.proto";
import "frameworks/base/core/proto/android/providers/settings/global.proto";
import "frameworks/base/core/proto/android/providers/settings/secure.proto";
import "frameworks/base/core/proto/android/providers/settings/system.proto";
import "frameworks/base/libs/incident/proto/android/privacy.proto";

message SettingsServiceDumpProto {
@@ -48,111 +48,6 @@ message UserSettingsProto {
    optional SystemSettingsProto system_settings = 3;
}

// 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 SystemSettingsProto {
    option (android.msg_privacy).dest = DEST_EXPLICIT;

    repeated SettingsOperationProto historical_operations = 1;

    optional SettingProto end_button_behavior = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto advanced_settings = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto bluetooth_discoverability = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto bluetooth_discoverability_timeout = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto font_scale = 6 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto system_locales = 7 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto display_color_mode = 8 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto screen_off_timeout = 9 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto screen_brightness = 10 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto screen_brightness_for_vr = 11 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto screen_brightness_mode = 12 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto screen_auto_brightness_adj = 13 [ (android.privacy).dest = DEST_AUTOMATIC ];
    // Determines which streams are affected by ringer mode changes. The stream
    // type's bit will be set to 1 if it should be muted when going into an
    // inaudible ringer mode.
    optional SettingProto mode_ringer_streams_affected = 14 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto mute_streams_affected = 15 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto vibrate_on = 16 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto vibrate_input_devices = 17 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto notification_vibration_intensity = 18 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto haptic_feedback_intensity = 19 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto volume_ring = 20 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto volume_system = 21 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto volume_voice = 22 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto volume_music = 23 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto volume_alarm = 24 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto volume_notification = 25 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto volume_bluetooth_sco = 26 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto volume_accessibility = 27 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto volume_master = 28 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto master_mono = 29 [ (android.privacy).dest = DEST_AUTOMATIC ];
    // Whether silent mode should allow vibration feedback. This is used
    // internally in AudioService and the Sound settings activity to coordinate
    // decoupling of vibrate and silent modes. This setting will likely be
    // removed in a future release with support for audio/vibe feedback
    // profiles.
    // Not used anymore. On devices with vibrator, the user explicitly selects
    // silent or vibrate mode. Kept for use by legacy database upgrade code in
    // DatabaseHelper.
    optional SettingProto vibrate_in_silent = 30 [ (android.privacy).dest = DEST_AUTOMATIC ];
    // Appended to various volume related settings to record the previous values
    // before the settings were affected by a silent/vibrate ringer mode change.
    optional SettingProto append_for_last_audible = 31 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto ringtone = 32;
    optional SettingProto ringtone_cache = 33;
    optional SettingProto notification_sound = 34;
    optional SettingProto notification_sound_cache = 35;
    optional SettingProto alarm_alert = 36;
    optional SettingProto alarm_alert_cache = 37;
    optional SettingProto media_button_receiver = 38;
    optional SettingProto text_auto_replace = 39 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto text_auto_caps = 40 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto text_auto_punctuate = 41 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto text_show_password = 42 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto show_gtalk_service_status = 43 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto time_12_24 = 44 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto date_format = 45 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto setup_wizard_has_run = 46 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto accelerometer_rotation = 47 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto user_rotation = 48 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto hide_rotation_lock_toggle_for_accessibility = 49 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto vibrate_when_ringing = 50 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto dtmf_tone_when_dialing = 51 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto dtmf_tone_type_when_dialing = 52 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto hearing_aid = 53 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto tty_mode = 54 [ (android.privacy).dest = DEST_AUTOMATIC ];
    // 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 = 55 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto sound_effects_enabled = 56 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto haptic_feedback_enabled = 57 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto notification_light_pulse = 58 [ (android.privacy).dest = DEST_AUTOMATIC ];
    // Show pointer location on screen? 0 = no, 1 = yes.
    optional SettingProto pointer_location = 59 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto show_touches = 60 [ (android.privacy).dest = DEST_AUTOMATIC ];
    // Log raw orientation data from {@link
    // com.android.server.policy.WindowOrientationListener} for use with the
    // orientationplot.py tool.
    // 0 = no, 1 = yes
    optional SettingProto window_orientation_listener_log = 61 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto lockscreen_sounds_enabled = 62 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto lockscreen_disabled = 63 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto sip_receive_calls = 64 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto sip_call_options = 65 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto sip_always = 66 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto sip_address_only = 67 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto pointer_speed = 68 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto lock_to_app_enabled = 69 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto egg_mode = 70 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto show_battery_percent = 71 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto when_to_make_wifi_calls = 72 [ (android.privacy).dest = DEST_AUTOMATIC ];

    // Please insert fields in the same order as in
    // frameworks/base/core/java/android/provider/Settings.java.
    // Next tag = 73;
}

message SettingsProto {
    // Enum values gotten from Settings.java
    enum ScreenBrightnessMode {
+246 −0
Original line number Diff line number Diff line
/*
 * 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/libs/incident/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 SystemSettingsProto {
    option (android.msg_privacy).dest = DEST_EXPLICIT;

    repeated SettingsOperationProto historical_operations = 1;

    optional SettingProto advanced_settings = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];

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

        // "alarm_alert" in code.
        optional SettingProto default_uri = 1;
        optional SettingProto alert_cache = 2;
    }
    optional Alarm alarm = 3;

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

        // Whether remote devices may discover and/or connect to this device:
        // 2 -- discoverable and connectable
        // 1 -- connectable but not discoverable
        // 0 -- neither connectable nor discoverable
        optional SettingProto discoverability = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto discoverability_timeout_secs = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Bluetooth bluetooth = 4;

    optional SettingProto date_format = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto display_color_mode = 6 [ (android.privacy).dest = DEST_AUTOMATIC ];

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

        // Show pointer location on screen? 0 = no, 1 = yes. "pointer_location
        // in code.
        optional SettingProto pointer_location = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto show_touches = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // Log raw orientation data from {@link
        // com.android.server.policy.WindowOrientationListener} for use with the
        // orientationplot.py tool.
        // 0 = no, 1 = yes
        optional SettingProto window_orientation_listener_log = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional DevOptions developer_options = 7;

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

        // "dtmf_tone_when_dialing" in code.
        optional SettingProto play_when_dialing = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // "dtmf_tone_type_when_dialing" in code.
        optional SettingProto type_played_when_dialing = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional DtmfTone dtmf_tone = 8;

    optional SettingProto egg_mode = 9 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto end_button_behavior = 10 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto font_scale = 11 [ (android.privacy).dest = DEST_AUTOMATIC ];

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

        optional SettingProto enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto intensity = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional HapticFeedback haptic_feedback = 12;

    // Whether the hearing aid is enabled. The value is boolean (1 or 0).
    optional SettingProto hearing_aid = 13 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto lock_to_app_enabled = 14 [ (android.privacy).dest = DEST_AUTOMATIC ];

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

        optional SettingProto sounds_enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto disabled = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Lockscreen lockscreen = 15;

    // The system default media button event receiver.
    optional SettingProto media_button_receiver = 16;

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

        optional SettingProto sound = 1;
        optional SettingProto sound_cache = 2;
        optional SettingProto light_pulse = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto vibration_intensity = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Notification notification = 17;

    optional SettingProto pointer_speed = 18 [ (android.privacy).dest = DEST_AUTOMATIC ];

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

        // "ringtone" in code. The system-wide default ringtone URI.
        optional SettingProto default_uri = 1;
        optional SettingProto cache = 2;
    }
    optional Ringtone ringtone = 19;

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

        // Control whether the accelerometer will be used to change screen
        // orientation.  If 0, it will not be used unless explicitly requested
        // by the application; if 1, it will be used by default unless
        // explicitly disabled by the application.
        optional SettingProto accelerometer_rotation = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // Default screen rotation when no other policy applies.
        // When accelerometer_rotation is zero and no on-screen Activity expresses a
        // preference, this rotation value will be used. Must be one of the
        // {@link android.view.Surface#ROTATION_0 Surface rotation constants}.
        optional SettingProto user_rotation = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // Control whether the rotation lock toggle in the System UI should be hidden.
        // Typically this is done for accessibility purposes to make it harder for
        // the user to accidentally toggle the rotation lock while the display rotation
        // has been locked for accessibility.
        // If 0, then rotation lock toggle is not hidden for accessibility (although it may be
        // unavailable for other reasons).  If 1, then the rotation lock toggle is hidden.
        optional SettingProto hide_rotation_lock_toggle_for_accessibility = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Rotation rotation = 20;

    // 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 = 21 [ (android.privacy).dest = DEST_AUTOMATIC ];

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

        optional SettingProto off_timeout = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto brightness = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto brightness_for_vr = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto brightness_mode = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto auto_brightness_adj = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Screen screen = 22;

    optional SettingProto setup_wizard_has_run = 23 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto show_battery_percent = 24 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto show_gtalk_service_status = 25 [ (android.privacy).dest = DEST_AUTOMATIC ];

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

        optional SettingProto receive_calls = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto call_options = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto always = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto address_only = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Sip sip = 26;

    optional SettingProto sound_effects_enabled = 27 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto system_locales = 28 [ (android.privacy).dest = DEST_AUTOMATIC ];

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

        optional SettingProto auto_replace = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto auto_caps = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto auto_punctuate = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto show_password = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Text text = 29;

    optional SettingProto time_12_24 = 30 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto tty_mode = 31 [ (android.privacy).dest = DEST_AUTOMATIC ];

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

        optional SettingProto on = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto input_devices = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // Whether silent mode should allow vibration feedback. This is used
        // internally in AudioService and the Sound settings activity to coordinate
        // decoupling of vibrate and silent modes. This setting will likely be
        // removed in a future release with support for audio/vibe feedback
        // profiles.
        // Not used anymore. On devices with vibrator, the user explicitly selects
        // silent or vibrate mode. Kept for use by legacy database upgrade code in
        // DatabaseHelper.
        optional SettingProto in_silent = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto when_ringing = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Vibrate vibrate = 32;

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

        optional SettingProto ring = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto system = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto voice = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto music = 4 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto alarm = 5 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto notification = 6 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto bluetooth_sco = 7 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto accessibility = 8 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto master = 9 [ (android.privacy).dest = DEST_AUTOMATIC ];
        optional SettingProto master_mono = 10 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // Determines which streams are affected by ringer mode changes. The stream
        // type's bit will be set to 1 if it should be muted when going into an
        // inaudible ringer mode.
        optional SettingProto mode_ringer_streams_affected = 11 [ (android.privacy).dest = DEST_AUTOMATIC ];
        // Which streams are affected by mute. The stream type's bit should be set
        // to 1 if it should be muted when a mute request is received.
        optional SettingProto mute_streams_affected = 12 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional Volume volume = 33;

    optional SettingProto when_to_make_wifi_calls = 34 [ (android.privacy).dest = DEST_AUTOMATIC ];

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

File changed.

Preview size limit exceeded, changes collapsed.