Add Secure Setting for Controls

Also:
* added to backed up settings.
* fixed imports

Test: build
Test: change setting through adb.
Bug: 152212779
Change-Id: Ia6cc7e9fb7f93842cfbf248f3e88c1d964656409
This commit is contained in:
Fabian Kozynski
2020-03-23 15:09:37 -04:00
parent 5cb264d9df
commit bcaf0efea3
6 changed files with 30 additions and 3 deletions

View File

@@ -8580,6 +8580,16 @@ public final class Settings {
*/
public static final String QS_TILES = "sysui_qs_tiles";
/**
* Whether this user has enabled Quick controls.
*
* 0 indicates disabled and 1 indicates enabled. A non existent value should be treated as
* enabled.
*
* @hide
*/
public static final String CONTROLS_ENABLED = "controls_enabled";
/**
* Specifies whether the web action API is enabled.
*

View File

@@ -180,6 +180,14 @@ message SecureSettingsProto {
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 ];
message Controls {
option (android.msg_privacy).dest = DEST_EXPLICIT;
optional SettingProto enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
}
optional Controls controls = 79;
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 ];
@@ -580,5 +588,5 @@ message SecureSettingsProto {
// Please insert fields in alphabetical order and group them into messages
// if possible (to avoid reaching the method limit).
// Next tag = 79;
// Next tag = 80;
}

View File

@@ -97,6 +97,7 @@ public class SecureSettings {
Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED,
Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED,
Settings.Secure.QS_TILES,
Settings.Secure.CONTROLS_ENABLED,
Settings.Secure.DOZE_ENABLED,
Settings.Secure.DOZE_ALWAYS_ON,
Settings.Secure.DOZE_PICK_UP_GESTURE,

View File

@@ -25,10 +25,10 @@ import static android.provider.settings.validators.SettingsValidators.COMMA_SEPA
import static android.provider.settings.validators.SettingsValidators.COMPONENT_NAME_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.JSON_OBJECT_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.LOCALE_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.NONE_NEGATIVE_LONG_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.NON_NEGATIVE_INTEGER_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.NULLABLE_COMPONENT_NAME_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.PACKAGE_NAME_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.NONE_NEGATIVE_LONG_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.TILE_LIST_VALIDATOR;
import static android.provider.settings.validators.SettingsValidators.TTS_LIST_VALIDATOR;
@@ -144,6 +144,7 @@ public class SecureSettingsValidators {
VALIDATORS.put(Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, BOOLEAN_VALIDATOR);
VALIDATORS.put(Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, BOOLEAN_VALIDATOR);
VALIDATORS.put(Secure.QS_TILES, TILE_LIST_VALIDATOR);
VALIDATORS.put(Secure.CONTROLS_ENABLED, BOOLEAN_VALIDATOR);
VALIDATORS.put(Secure.DOZE_ENABLED, BOOLEAN_VALIDATOR);
VALIDATORS.put(Secure.DOZE_ALWAYS_ON, BOOLEAN_VALIDATOR);
VALIDATORS.put(Secure.DOZE_PICK_UP_GESTURE, BOOLEAN_VALIDATOR);

View File

@@ -1975,6 +1975,13 @@ class SettingsProtoDumpUtil {
dumpSetting(s, p,
Settings.Secure.CONNECTIVITY_RELEASE_PENDING_INTENT_DELAY_MS,
SecureSettingsProto.CONNECTIVITY_RELEASE_PENDING_INTENT_DELAY_MS);
final long controlsToken = p.start(SecureSettingsProto.CONTROLS);
dumpSetting(s, p,
Settings.Secure.CONTROLS_ENABLED,
SecureSettingsProto.Controls.ENABLED);
p.end(controlsToken);
dumpSetting(s, p,
Settings.Secure.DEVICE_PAIRED,
SecureSettingsProto.DEVICE_PAIRED);

View File

@@ -65,7 +65,7 @@ class ControlsControllerImpl @Inject constructor (
companion object {
private const val TAG = "ControlsControllerImpl"
internal const val CONTROLS_AVAILABLE = "systemui.controls_available"
internal const val CONTROLS_AVAILABLE = Settings.Secure.CONTROLS_ENABLED
internal val URI = Settings.Secure.getUriFor(CONTROLS_AVAILABLE)
private const val USER_CHANGE_RETRY_DELAY = 500L // ms
private const val DEFAULT_ENABLED = 1