1 /* 2 * Copyright (C) 2019 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.provider.settings.validators; 18 19 import static android.provider.settings.validators.SettingsValidators.ANY_INTEGER_VALIDATOR; 20 import static android.provider.settings.validators.SettingsValidators.ANY_STRING_VALIDATOR; 21 import static android.provider.settings.validators.SettingsValidators.BOOLEAN_VALIDATOR; 22 import static android.provider.settings.validators.SettingsValidators.COMPONENT_NAME_VALIDATOR; 23 import static android.provider.settings.validators.SettingsValidators.FONT_SCALE_VALIDATOR; 24 import static android.provider.settings.validators.SettingsValidators.LENIENT_IP_ADDRESS_VALIDATOR; 25 import static android.provider.settings.validators.SettingsValidators.NON_NEGATIVE_FLOAT_VALIDATOR; 26 import static android.provider.settings.validators.SettingsValidators.NON_NEGATIVE_INTEGER_VALIDATOR; 27 import static android.provider.settings.validators.SettingsValidators.URI_VALIDATOR; 28 import static android.provider.settings.validators.SettingsValidators.VIBRATION_INTENSITY_VALIDATOR; 29 import static android.view.PointerIcon.DEFAULT_POINTER_SCALE; 30 import static android.view.PointerIcon.LARGE_POINTER_SCALE; 31 import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_FILL_BEGIN; 32 import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_FILL_END; 33 import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_STROKE_BEGIN; 34 import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_STROKE_END; 35 36 import android.annotation.Nullable; 37 import android.compat.annotation.UnsupportedAppUsage; 38 import android.content.ComponentName; 39 import android.hardware.display.ColorDisplayManager; 40 import android.os.BatteryManager; 41 import android.provider.Settings.System; 42 import android.util.ArrayMap; 43 44 import java.util.Map; 45 46 /** 47 * Validators for System settings 48 */ 49 public class SystemSettingsValidators { 50 @UnsupportedAppUsage 51 public static final Map<String, Validator> VALIDATORS = new ArrayMap<>(); 52 53 static { VALIDATORS.put( System.STAY_ON_WHILE_PLUGGED_IN, value -> { try { int val = Integer.parseInt(value); return (val == 0) || (val == BatteryManager.BATTERY_PLUGGED_AC) || (val == BatteryManager.BATTERY_PLUGGED_USB) || (val == BatteryManager.BATTERY_PLUGGED_WIRELESS) || (val == BatteryManager.BATTERY_PLUGGED_DOCK) || (val == (BatteryManager.BATTERY_PLUGGED_AC | BatteryManager.BATTERY_PLUGGED_USB)) || (val == (BatteryManager.BATTERY_PLUGGED_AC | BatteryManager.BATTERY_PLUGGED_WIRELESS)) || (val == (BatteryManager.BATTERY_PLUGGED_USB | BatteryManager.BATTERY_PLUGGED_WIRELESS)) || (val == (BatteryManager.BATTERY_PLUGGED_AC | BatteryManager.BATTERY_PLUGGED_USB | BatteryManager.BATTERY_PLUGGED_WIRELESS)) || (val == (BatteryManager.BATTERY_PLUGGED_AC | BatteryManager.BATTERY_PLUGGED_DOCK)) || (val == (BatteryManager.BATTERY_PLUGGED_USB | BatteryManager.BATTERY_PLUGGED_DOCK)); } catch (NumberFormatException e) { return false; } })54 VALIDATORS.put( 55 System.STAY_ON_WHILE_PLUGGED_IN, 56 value -> { 57 try { 58 int val = Integer.parseInt(value); 59 return (val == 0) 60 || (val == BatteryManager.BATTERY_PLUGGED_AC) 61 || (val == BatteryManager.BATTERY_PLUGGED_USB) 62 || (val == BatteryManager.BATTERY_PLUGGED_WIRELESS) 63 || (val == BatteryManager.BATTERY_PLUGGED_DOCK) 64 || (val 65 == (BatteryManager.BATTERY_PLUGGED_AC 66 | BatteryManager.BATTERY_PLUGGED_USB)) 67 || (val 68 == (BatteryManager.BATTERY_PLUGGED_AC 69 | BatteryManager.BATTERY_PLUGGED_WIRELESS)) 70 || (val 71 == (BatteryManager.BATTERY_PLUGGED_USB 72 | BatteryManager.BATTERY_PLUGGED_WIRELESS)) 73 || (val 74 == (BatteryManager.BATTERY_PLUGGED_AC 75 | BatteryManager.BATTERY_PLUGGED_USB 76 | BatteryManager.BATTERY_PLUGGED_WIRELESS)) 77 || (val 78 == (BatteryManager.BATTERY_PLUGGED_AC 79 | BatteryManager.BATTERY_PLUGGED_DOCK)) 80 || (val 81 == (BatteryManager.BATTERY_PLUGGED_USB 82 | BatteryManager.BATTERY_PLUGGED_DOCK)); 83 } catch (NumberFormatException e) { 84 return false; 85 } 86 }); VALIDATORS.put(System.END_BUTTON_BEHAVIOR, new InclusiveIntegerRangeValidator(0, 3))87 VALIDATORS.put(System.END_BUTTON_BEHAVIOR, new InclusiveIntegerRangeValidator(0, 3)); VALIDATORS.put(System.WIFI_USE_STATIC_IP, BOOLEAN_VALIDATOR)88 VALIDATORS.put(System.WIFI_USE_STATIC_IP, BOOLEAN_VALIDATOR); VALIDATORS.put(System.BLUETOOTH_DISCOVERABILITY, new InclusiveIntegerRangeValidator(0, 2))89 VALIDATORS.put(System.BLUETOOTH_DISCOVERABILITY, new InclusiveIntegerRangeValidator(0, 2)); VALIDATORS.put(System.BLUETOOTH_DISCOVERABILITY_TIMEOUT, NON_NEGATIVE_INTEGER_VALIDATOR)90 VALIDATORS.put(System.BLUETOOTH_DISCOVERABILITY_TIMEOUT, NON_NEGATIVE_INTEGER_VALIDATOR); VALIDATORS.put( System.NEXT_ALARM_FORMATTED, new Validator() { private static final int MAX_LENGTH = 1000; @Override public boolean validate(String value) { return value == null || value.length() < MAX_LENGTH; } })91 VALIDATORS.put( 92 System.NEXT_ALARM_FORMATTED, 93 new Validator() { 94 private static final int MAX_LENGTH = 1000; 95 96 @Override 97 public boolean validate(String value) { 98 // TODO: No idea what the correct format is. 99 return value == null || value.length() < MAX_LENGTH; 100 } 101 }); VALIDATORS.put(System.DEFAULT_DEVICE_FONT_SCALE, FONT_SCALE_VALIDATOR)102 VALIDATORS.put(System.DEFAULT_DEVICE_FONT_SCALE, FONT_SCALE_VALIDATOR); VALIDATORS.put(System.FONT_SCALE, FONT_SCALE_VALIDATOR)103 VALIDATORS.put(System.FONT_SCALE, FONT_SCALE_VALIDATOR); VALIDATORS.put(System.DIM_SCREEN, BOOLEAN_VALIDATOR)104 VALIDATORS.put(System.DIM_SCREEN, BOOLEAN_VALIDATOR); VALIDATORS.put( System.DISPLAY_COLOR_MODE, new Validator() { @Override public boolean validate(@Nullable String value) { try { final int setting = Integer.parseInt(value); final boolean isInFrameworkRange = setting >= ColorDisplayManager.COLOR_MODE_NATURAL && setting <= ColorDisplayManager.COLOR_MODE_AUTOMATIC; final boolean isInVendorRange = setting >= ColorDisplayManager.VENDOR_COLOR_MODE_RANGE_MIN && setting <= ColorDisplayManager .VENDOR_COLOR_MODE_RANGE_MAX; return isInFrameworkRange || isInVendorRange; } catch (NumberFormatException | NullPointerException e) { return false; } } })105 VALIDATORS.put( 106 System.DISPLAY_COLOR_MODE, 107 new Validator() { 108 @Override 109 public boolean validate(@Nullable String value) { 110 // Assume the actual validation that this device can properly handle this 111 // kind of 112 // color mode further down in ColorDisplayManager / ColorDisplayService. 113 try { 114 final int setting = Integer.parseInt(value); 115 final boolean isInFrameworkRange = 116 setting >= ColorDisplayManager.COLOR_MODE_NATURAL 117 && setting <= ColorDisplayManager.COLOR_MODE_AUTOMATIC; 118 final boolean isInVendorRange = 119 setting >= ColorDisplayManager.VENDOR_COLOR_MODE_RANGE_MIN 120 && setting 121 <= ColorDisplayManager 122 .VENDOR_COLOR_MODE_RANGE_MAX; 123 return isInFrameworkRange || isInVendorRange; 124 } catch (NumberFormatException | NullPointerException e) { 125 return false; 126 } 127 } 128 }); VALIDATORS.put(System.DISPLAY_COLOR_MODE_VENDOR_HINT, ANY_STRING_VALIDATOR)129 VALIDATORS.put(System.DISPLAY_COLOR_MODE_VENDOR_HINT, ANY_STRING_VALIDATOR); VALIDATORS.put(System.SCREEN_OFF_TIMEOUT, NON_NEGATIVE_INTEGER_VALIDATOR)130 VALIDATORS.put(System.SCREEN_OFF_TIMEOUT, NON_NEGATIVE_INTEGER_VALIDATOR); VALIDATORS.put(System.SCREEN_BRIGHTNESS_MODE, BOOLEAN_VALIDATOR)131 VALIDATORS.put(System.SCREEN_BRIGHTNESS_MODE, BOOLEAN_VALIDATOR); VALIDATORS.put( System.SCREEN_BRIGHTNESS_FOR_ALS, new InclusiveIntegerRangeValidator( System.SCREEN_BRIGHTNESS_AUTOMATIC_BRIGHT, System.SCREEN_BRIGHTNESS_AUTOMATIC_DIM))132 VALIDATORS.put( 133 System.SCREEN_BRIGHTNESS_FOR_ALS, 134 new InclusiveIntegerRangeValidator( 135 System.SCREEN_BRIGHTNESS_AUTOMATIC_BRIGHT, 136 System.SCREEN_BRIGHTNESS_AUTOMATIC_DIM)); VALIDATORS.put(System.ADAPTIVE_SLEEP, BOOLEAN_VALIDATOR)137 VALIDATORS.put(System.ADAPTIVE_SLEEP, BOOLEAN_VALIDATOR); VALIDATORS.put(System.MODE_RINGER_STREAMS_AFFECTED, NON_NEGATIVE_INTEGER_VALIDATOR)138 VALIDATORS.put(System.MODE_RINGER_STREAMS_AFFECTED, NON_NEGATIVE_INTEGER_VALIDATOR); VALIDATORS.put(System.MUTE_STREAMS_AFFECTED, NON_NEGATIVE_INTEGER_VALIDATOR)139 VALIDATORS.put(System.MUTE_STREAMS_AFFECTED, NON_NEGATIVE_INTEGER_VALIDATOR); VALIDATORS.put(System.VIBRATE_ON, BOOLEAN_VALIDATOR)140 VALIDATORS.put(System.VIBRATE_ON, BOOLEAN_VALIDATOR); VALIDATORS.put(System.APPLY_RAMPING_RINGER, BOOLEAN_VALIDATOR)141 VALIDATORS.put(System.APPLY_RAMPING_RINGER, BOOLEAN_VALIDATOR); VALIDATORS.put(System.ALARM_VIBRATION_INTENSITY, VIBRATION_INTENSITY_VALIDATOR)142 VALIDATORS.put(System.ALARM_VIBRATION_INTENSITY, VIBRATION_INTENSITY_VALIDATOR); VALIDATORS.put(System.MEDIA_VIBRATION_INTENSITY, VIBRATION_INTENSITY_VALIDATOR)143 VALIDATORS.put(System.MEDIA_VIBRATION_INTENSITY, VIBRATION_INTENSITY_VALIDATOR); VALIDATORS.put(System.NOTIFICATION_VIBRATION_INTENSITY, VIBRATION_INTENSITY_VALIDATOR)144 VALIDATORS.put(System.NOTIFICATION_VIBRATION_INTENSITY, VIBRATION_INTENSITY_VALIDATOR); VALIDATORS.put(System.RING_VIBRATION_INTENSITY, VIBRATION_INTENSITY_VALIDATOR)145 VALIDATORS.put(System.RING_VIBRATION_INTENSITY, VIBRATION_INTENSITY_VALIDATOR); VALIDATORS.put(System.HAPTIC_FEEDBACK_INTENSITY, VIBRATION_INTENSITY_VALIDATOR)146 VALIDATORS.put(System.HAPTIC_FEEDBACK_INTENSITY, VIBRATION_INTENSITY_VALIDATOR); VALIDATORS.put(System.HARDWARE_HAPTIC_FEEDBACK_INTENSITY, VIBRATION_INTENSITY_VALIDATOR)147 VALIDATORS.put(System.HARDWARE_HAPTIC_FEEDBACK_INTENSITY, VIBRATION_INTENSITY_VALIDATOR); VALIDATORS.put(System.KEYBOARD_VIBRATION_ENABLED, BOOLEAN_VALIDATOR)148 VALIDATORS.put(System.KEYBOARD_VIBRATION_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(System.HAPTIC_FEEDBACK_ENABLED, BOOLEAN_VALIDATOR)149 VALIDATORS.put(System.HAPTIC_FEEDBACK_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(System.RINGTONE, URI_VALIDATOR)150 VALIDATORS.put(System.RINGTONE, URI_VALIDATOR); VALIDATORS.put(System.NOTIFICATION_SOUND, URI_VALIDATOR)151 VALIDATORS.put(System.NOTIFICATION_SOUND, URI_VALIDATOR); VALIDATORS.put(System.FOLD_LOCK_BEHAVIOR, ANY_STRING_VALIDATOR)152 VALIDATORS.put(System.FOLD_LOCK_BEHAVIOR, ANY_STRING_VALIDATOR); VALIDATORS.put(System.ALARM_ALERT, URI_VALIDATOR)153 VALIDATORS.put(System.ALARM_ALERT, URI_VALIDATOR); VALIDATORS.put(System.TEXT_AUTO_REPLACE, BOOLEAN_VALIDATOR)154 VALIDATORS.put(System.TEXT_AUTO_REPLACE, BOOLEAN_VALIDATOR); VALIDATORS.put(System.TEXT_AUTO_CAPS, BOOLEAN_VALIDATOR)155 VALIDATORS.put(System.TEXT_AUTO_CAPS, BOOLEAN_VALIDATOR); VALIDATORS.put(System.TEXT_AUTO_PUNCTUATE, BOOLEAN_VALIDATOR)156 VALIDATORS.put(System.TEXT_AUTO_PUNCTUATE, BOOLEAN_VALIDATOR); VALIDATORS.put(System.TEXT_SHOW_PASSWORD, BOOLEAN_VALIDATOR)157 VALIDATORS.put(System.TEXT_SHOW_PASSWORD, BOOLEAN_VALIDATOR); VALIDATORS.put(System.AUTO_TIME, BOOLEAN_VALIDATOR)158 VALIDATORS.put(System.AUTO_TIME, BOOLEAN_VALIDATOR); VALIDATORS.put(System.AUTO_TIME_ZONE, BOOLEAN_VALIDATOR)159 VALIDATORS.put(System.AUTO_TIME_ZONE, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SHOW_GTALK_SERVICE_STATUS, BOOLEAN_VALIDATOR)160 VALIDATORS.put(System.SHOW_GTALK_SERVICE_STATUS, BOOLEAN_VALIDATOR); VALIDATORS.put( System.WALLPAPER_ACTIVITY, new Validator() { private static final int MAX_LENGTH = 1000; @Override public boolean validate(String value) { if (value != null && value.length() > MAX_LENGTH) { return false; } return ComponentName.unflattenFromString(value) != null; } })161 VALIDATORS.put( 162 System.WALLPAPER_ACTIVITY, 163 new Validator() { 164 private static final int MAX_LENGTH = 1000; 165 166 @Override 167 public boolean validate(String value) { 168 if (value != null && value.length() > MAX_LENGTH) { 169 return false; 170 } 171 return ComponentName.unflattenFromString(value) != null; 172 } 173 }); VALIDATORS.put( System.TIME_12_24, new DiscreteValueValidator(new String[] {"12", "24", null}))174 VALIDATORS.put( 175 System.TIME_12_24, new DiscreteValueValidator(new String[] {"12", "24", null})); VALIDATORS.put(System.SETUP_WIZARD_HAS_RUN, BOOLEAN_VALIDATOR)176 VALIDATORS.put(System.SETUP_WIZARD_HAS_RUN, BOOLEAN_VALIDATOR); VALIDATORS.put(System.ACCELEROMETER_ROTATION, BOOLEAN_VALIDATOR)177 VALIDATORS.put(System.ACCELEROMETER_ROTATION, BOOLEAN_VALIDATOR); VALIDATORS.put(System.USER_ROTATION, new InclusiveIntegerRangeValidator(0, 3))178 VALIDATORS.put(System.USER_ROTATION, new InclusiveIntegerRangeValidator(0, 3)); VALIDATORS.put(System.DTMF_TONE_WHEN_DIALING, BOOLEAN_VALIDATOR)179 VALIDATORS.put(System.DTMF_TONE_WHEN_DIALING, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SOUND_EFFECTS_ENABLED, BOOLEAN_VALIDATOR)180 VALIDATORS.put(System.SOUND_EFFECTS_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(System.HAPTIC_FEEDBACK_ENABLED, BOOLEAN_VALIDATOR)181 VALIDATORS.put(System.HAPTIC_FEEDBACK_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(System.POWER_SOUNDS_ENABLED, BOOLEAN_VALIDATOR)182 VALIDATORS.put(System.POWER_SOUNDS_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(System.DOCK_SOUNDS_ENABLED, BOOLEAN_VALIDATOR)183 VALIDATORS.put(System.DOCK_SOUNDS_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SHOW_WEB_SUGGESTIONS, BOOLEAN_VALIDATOR)184 VALIDATORS.put(System.SHOW_WEB_SUGGESTIONS, BOOLEAN_VALIDATOR); VALIDATORS.put(System.WIFI_USE_STATIC_IP, BOOLEAN_VALIDATOR)185 VALIDATORS.put(System.WIFI_USE_STATIC_IP, BOOLEAN_VALIDATOR); VALIDATORS.put(System.ADVANCED_SETTINGS, BOOLEAN_VALIDATOR)186 VALIDATORS.put(System.ADVANCED_SETTINGS, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SCREEN_AUTO_BRIGHTNESS_ADJ, new InclusiveFloatRangeValidator(-1, 1))187 VALIDATORS.put(System.SCREEN_AUTO_BRIGHTNESS_ADJ, new InclusiveFloatRangeValidator(-1, 1)); VALIDATORS.put(System.VIBRATE_INPUT_DEVICES, BOOLEAN_VALIDATOR)188 VALIDATORS.put(System.VIBRATE_INPUT_DEVICES, BOOLEAN_VALIDATOR); VALIDATORS.put(System.MASTER_MONO, BOOLEAN_VALIDATOR)189 VALIDATORS.put(System.MASTER_MONO, BOOLEAN_VALIDATOR); VALIDATORS.put(System.MASTER_BALANCE, new InclusiveFloatRangeValidator(-1.f, 1.f))190 VALIDATORS.put(System.MASTER_BALANCE, new InclusiveFloatRangeValidator(-1.f, 1.f)); VALIDATORS.put(System.NOTIFICATIONS_USE_RING_VOLUME, BOOLEAN_VALIDATOR)191 VALIDATORS.put(System.NOTIFICATIONS_USE_RING_VOLUME, BOOLEAN_VALIDATOR); VALIDATORS.put(System.VIBRATE_IN_SILENT, BOOLEAN_VALIDATOR)192 VALIDATORS.put(System.VIBRATE_IN_SILENT, BOOLEAN_VALIDATOR); VALIDATORS.put(System.MEDIA_BUTTON_RECEIVER, COMPONENT_NAME_VALIDATOR)193 VALIDATORS.put(System.MEDIA_BUTTON_RECEIVER, COMPONENT_NAME_VALIDATOR); VALIDATORS.put(System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, BOOLEAN_VALIDATOR)194 VALIDATORS.put(System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, BOOLEAN_VALIDATOR); VALIDATORS.put(System.VIBRATE_WHEN_RINGING, BOOLEAN_VALIDATOR)195 VALIDATORS.put(System.VIBRATE_WHEN_RINGING, BOOLEAN_VALIDATOR); VALIDATORS.put(System.DTMF_TONE_TYPE_WHEN_DIALING, BOOLEAN_VALIDATOR)196 VALIDATORS.put(System.DTMF_TONE_TYPE_WHEN_DIALING, BOOLEAN_VALIDATOR); VALIDATORS.put(System.HEARING_AID, BOOLEAN_VALIDATOR)197 VALIDATORS.put(System.HEARING_AID, BOOLEAN_VALIDATOR); VALIDATORS.put(System.TTY_MODE, new InclusiveIntegerRangeValidator(0, 3))198 VALIDATORS.put(System.TTY_MODE, new InclusiveIntegerRangeValidator(0, 3)); VALIDATORS.put(System.NOTIFICATION_LIGHT_PULSE, BOOLEAN_VALIDATOR)199 VALIDATORS.put(System.NOTIFICATION_LIGHT_PULSE, BOOLEAN_VALIDATOR); VALIDATORS.put(System.POINTER_LOCATION, BOOLEAN_VALIDATOR)200 VALIDATORS.put(System.POINTER_LOCATION, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SHOW_TOUCHES, BOOLEAN_VALIDATOR)201 VALIDATORS.put(System.SHOW_TOUCHES, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SHOW_KEY_PRESSES, BOOLEAN_VALIDATOR)202 VALIDATORS.put(System.SHOW_KEY_PRESSES, BOOLEAN_VALIDATOR); VALIDATORS.put(System.TOUCHPAD_VISUALIZER, BOOLEAN_VALIDATOR)203 VALIDATORS.put(System.TOUCHPAD_VISUALIZER, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SHOW_ROTARY_INPUT, BOOLEAN_VALIDATOR)204 VALIDATORS.put(System.SHOW_ROTARY_INPUT, BOOLEAN_VALIDATOR); VALIDATORS.put(System.WINDOW_ORIENTATION_LISTENER_LOG, BOOLEAN_VALIDATOR)205 VALIDATORS.put(System.WINDOW_ORIENTATION_LISTENER_LOG, BOOLEAN_VALIDATOR); VALIDATORS.put(System.LOCKSCREEN_SOUNDS_ENABLED, BOOLEAN_VALIDATOR)206 VALIDATORS.put(System.LOCKSCREEN_SOUNDS_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(System.LOCKSCREEN_DISABLED, BOOLEAN_VALIDATOR)207 VALIDATORS.put(System.LOCKSCREEN_DISABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SIP_RECEIVE_CALLS, BOOLEAN_VALIDATOR)208 VALIDATORS.put(System.SIP_RECEIVE_CALLS, BOOLEAN_VALIDATOR); VALIDATORS.put( System.SIP_CALL_OPTIONS, new DiscreteValueValidator(new String[] {"SIP_ALWAYS", "SIP_ADDRESS_ONLY"}))209 VALIDATORS.put( 210 System.SIP_CALL_OPTIONS, 211 new DiscreteValueValidator(new String[] {"SIP_ALWAYS", "SIP_ADDRESS_ONLY"})); VALIDATORS.put(System.SIP_ALWAYS, BOOLEAN_VALIDATOR)212 VALIDATORS.put(System.SIP_ALWAYS, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SIP_ADDRESS_ONLY, BOOLEAN_VALIDATOR)213 VALIDATORS.put(System.SIP_ADDRESS_ONLY, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SIP_ASK_ME_EACH_TIME, BOOLEAN_VALIDATOR)214 VALIDATORS.put(System.SIP_ASK_ME_EACH_TIME, BOOLEAN_VALIDATOR); VALIDATORS.put(System.POINTER_SPEED, new InclusiveFloatRangeValidator(-7, 7))215 VALIDATORS.put(System.POINTER_SPEED, new InclusiveFloatRangeValidator(-7, 7)); VALIDATORS.put(System.TOUCHPAD_THREE_FINGER_TAP_CUSTOMIZATION, NON_NEGATIVE_INTEGER_VALIDATOR)216 VALIDATORS.put(System.TOUCHPAD_THREE_FINGER_TAP_CUSTOMIZATION, 217 NON_NEGATIVE_INTEGER_VALIDATOR); VALIDATORS.put(System.POINTER_FILL_STYLE, new InclusiveIntegerRangeValidator(POINTER_ICON_VECTOR_STYLE_FILL_BEGIN, POINTER_ICON_VECTOR_STYLE_FILL_END))218 VALIDATORS.put(System.POINTER_FILL_STYLE, 219 new InclusiveIntegerRangeValidator(POINTER_ICON_VECTOR_STYLE_FILL_BEGIN, 220 POINTER_ICON_VECTOR_STYLE_FILL_END)); VALIDATORS.put(System.POINTER_STROKE_STYLE, new InclusiveIntegerRangeValidator(POINTER_ICON_VECTOR_STYLE_STROKE_BEGIN, POINTER_ICON_VECTOR_STYLE_STROKE_END))221 VALIDATORS.put(System.POINTER_STROKE_STYLE, 222 new InclusiveIntegerRangeValidator(POINTER_ICON_VECTOR_STYLE_STROKE_BEGIN, 223 POINTER_ICON_VECTOR_STYLE_STROKE_END)); VALIDATORS.put(System.POINTER_SCALE, new InclusiveFloatRangeValidator(DEFAULT_POINTER_SCALE, LARGE_POINTER_SCALE))224 VALIDATORS.put(System.POINTER_SCALE, 225 new InclusiveFloatRangeValidator(DEFAULT_POINTER_SCALE, LARGE_POINTER_SCALE)); VALIDATORS.put(System.MOUSE_REVERSE_VERTICAL_SCROLLING, BOOLEAN_VALIDATOR)226 VALIDATORS.put(System.MOUSE_REVERSE_VERTICAL_SCROLLING, BOOLEAN_VALIDATOR); VALIDATORS.put(System.MOUSE_SWAP_PRIMARY_BUTTON, BOOLEAN_VALIDATOR)227 VALIDATORS.put(System.MOUSE_SWAP_PRIMARY_BUTTON, BOOLEAN_VALIDATOR); VALIDATORS.put(System.MOUSE_SCROLLING_ACCELERATION, BOOLEAN_VALIDATOR)228 VALIDATORS.put(System.MOUSE_SCROLLING_ACCELERATION, BOOLEAN_VALIDATOR); VALIDATORS.put(System.MOUSE_POINTER_ACCELERATION_ENABLED, BOOLEAN_VALIDATOR)229 VALIDATORS.put(System.MOUSE_POINTER_ACCELERATION_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(System.MOUSE_SCROLLING_SPEED, new InclusiveIntegerRangeValidator(-7, 7))230 VALIDATORS.put(System.MOUSE_SCROLLING_SPEED, new InclusiveIntegerRangeValidator(-7, 7)); VALIDATORS.put(System.TOUCHPAD_POINTER_SPEED, new InclusiveIntegerRangeValidator(-7, 7))231 VALIDATORS.put(System.TOUCHPAD_POINTER_SPEED, new InclusiveIntegerRangeValidator(-7, 7)); VALIDATORS.put(System.TOUCHPAD_NATURAL_SCROLLING, BOOLEAN_VALIDATOR)232 VALIDATORS.put(System.TOUCHPAD_NATURAL_SCROLLING, BOOLEAN_VALIDATOR); VALIDATORS.put(System.TOUCHPAD_TAP_TO_CLICK, BOOLEAN_VALIDATOR)233 VALIDATORS.put(System.TOUCHPAD_TAP_TO_CLICK, BOOLEAN_VALIDATOR); VALIDATORS.put(System.TOUCHPAD_TAP_DRAGGING, BOOLEAN_VALIDATOR)234 VALIDATORS.put(System.TOUCHPAD_TAP_DRAGGING, BOOLEAN_VALIDATOR); VALIDATORS.put(System.TOUCHPAD_RIGHT_CLICK_ZONE, BOOLEAN_VALIDATOR)235 VALIDATORS.put(System.TOUCHPAD_RIGHT_CLICK_ZONE, BOOLEAN_VALIDATOR); VALIDATORS.put(System.TOUCHPAD_SYSTEM_GESTURES, BOOLEAN_VALIDATOR)236 VALIDATORS.put(System.TOUCHPAD_SYSTEM_GESTURES, BOOLEAN_VALIDATOR); VALIDATORS.put(System.TOUCHPAD_ACCELERATION_ENABLED, BOOLEAN_VALIDATOR)237 VALIDATORS.put(System.TOUCHPAD_ACCELERATION_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(System.LOCK_TO_APP_ENABLED, BOOLEAN_VALIDATOR)238 VALIDATORS.put(System.LOCK_TO_APP_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put( System.EGG_MODE, new Validator() { @Override public boolean validate(@Nullable String value) { try { return Long.parseLong(value) >= 0; } catch (NumberFormatException e) { return false; } } })239 VALIDATORS.put( 240 System.EGG_MODE, 241 new Validator() { 242 @Override 243 public boolean validate(@Nullable String value) { 244 try { 245 return Long.parseLong(value) >= 0; 246 } catch (NumberFormatException e) { 247 return false; 248 } 249 } 250 }); VALIDATORS.put(System.WIFI_STATIC_IP, LENIENT_IP_ADDRESS_VALIDATOR)251 VALIDATORS.put(System.WIFI_STATIC_IP, LENIENT_IP_ADDRESS_VALIDATOR); VALIDATORS.put(System.WIFI_STATIC_GATEWAY, LENIENT_IP_ADDRESS_VALIDATOR)252 VALIDATORS.put(System.WIFI_STATIC_GATEWAY, LENIENT_IP_ADDRESS_VALIDATOR); VALIDATORS.put(System.WIFI_STATIC_NETMASK, LENIENT_IP_ADDRESS_VALIDATOR)253 VALIDATORS.put(System.WIFI_STATIC_NETMASK, LENIENT_IP_ADDRESS_VALIDATOR); VALIDATORS.put(System.WIFI_STATIC_DNS1, LENIENT_IP_ADDRESS_VALIDATOR)254 VALIDATORS.put(System.WIFI_STATIC_DNS1, LENIENT_IP_ADDRESS_VALIDATOR); VALIDATORS.put(System.WIFI_STATIC_DNS2, LENIENT_IP_ADDRESS_VALIDATOR)255 VALIDATORS.put(System.WIFI_STATIC_DNS2, LENIENT_IP_ADDRESS_VALIDATOR); VALIDATORS.put(System.SHOW_BATTERY_PERCENT, BOOLEAN_VALIDATOR)256 VALIDATORS.put(System.SHOW_BATTERY_PERCENT, BOOLEAN_VALIDATOR); VALIDATORS.put(System.NOTIFICATION_LIGHT_PULSE, BOOLEAN_VALIDATOR)257 VALIDATORS.put(System.NOTIFICATION_LIGHT_PULSE, BOOLEAN_VALIDATOR); VALIDATORS.put(System.WEAR_ACCESSIBILITY_GESTURE_ENABLED, BOOLEAN_VALIDATOR)258 VALIDATORS.put(System.WEAR_ACCESSIBILITY_GESTURE_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(System.WEAR_ACCESSIBILITY_GESTURE_ENABLED_DURING_OOBE, BOOLEAN_VALIDATOR)259 VALIDATORS.put(System.WEAR_ACCESSIBILITY_GESTURE_ENABLED_DURING_OOBE, BOOLEAN_VALIDATOR); VALIDATORS.put(System.WEAR_TTS_PREWARM_ENABLED, BOOLEAN_VALIDATOR)260 VALIDATORS.put(System.WEAR_TTS_PREWARM_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(System.CLOCKWORK_BLUETOOTH_SETTINGS_PREF, BOOLEAN_VALIDATOR)261 VALIDATORS.put(System.CLOCKWORK_BLUETOOTH_SETTINGS_PREF, BOOLEAN_VALIDATOR); VALIDATORS.put(System.UNREAD_NOTIFICATION_DOT_INDICATOR, BOOLEAN_VALIDATOR)262 VALIDATORS.put(System.UNREAD_NOTIFICATION_DOT_INDICATOR, BOOLEAN_VALIDATOR); VALIDATORS.put(System.AUTO_LAUNCH_MEDIA_CONTROLS, BOOLEAN_VALIDATOR)263 VALIDATORS.put(System.AUTO_LAUNCH_MEDIA_CONTROLS, BOOLEAN_VALIDATOR); VALIDATORS.put(System.LOCALE_PREFERENCES, ANY_STRING_VALIDATOR)264 VALIDATORS.put(System.LOCALE_PREFERENCES, ANY_STRING_VALIDATOR); VALIDATORS.put(System.CAMERA_FLASH_NOTIFICATION, BOOLEAN_VALIDATOR)265 VALIDATORS.put(System.CAMERA_FLASH_NOTIFICATION, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SCREEN_FLASH_NOTIFICATION, BOOLEAN_VALIDATOR)266 VALIDATORS.put(System.SCREEN_FLASH_NOTIFICATION, BOOLEAN_VALIDATOR); VALIDATORS.put(System.SCREEN_FLASH_NOTIFICATION_COLOR, ANY_INTEGER_VALIDATOR)267 VALIDATORS.put(System.SCREEN_FLASH_NOTIFICATION_COLOR, ANY_INTEGER_VALIDATOR); VALIDATORS.put(System.PEAK_REFRESH_RATE, NON_NEGATIVE_FLOAT_VALIDATOR)268 VALIDATORS.put(System.PEAK_REFRESH_RATE, NON_NEGATIVE_FLOAT_VALIDATOR); VALIDATORS.put(System.MIN_REFRESH_RATE, NON_NEGATIVE_FLOAT_VALIDATOR)269 VALIDATORS.put(System.MIN_REFRESH_RATE, NON_NEGATIVE_FLOAT_VALIDATOR); VALIDATORS.put(System.NOTIFICATION_COOLDOWN_ENABLED, BOOLEAN_VALIDATOR)270 VALIDATORS.put(System.NOTIFICATION_COOLDOWN_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(System.NOTIFICATION_COOLDOWN_ALL, BOOLEAN_VALIDATOR)271 VALIDATORS.put(System.NOTIFICATION_COOLDOWN_ALL, BOOLEAN_VALIDATOR); VALIDATORS.put(System.NOTIFICATION_COOLDOWN_VIBRATE_UNLOCKED, BOOLEAN_VALIDATOR)272 VALIDATORS.put(System.NOTIFICATION_COOLDOWN_VIBRATE_UNLOCKED, BOOLEAN_VALIDATOR); VALIDATORS.put(System.PREFERRED_REGION, ANY_STRING_VALIDATOR)273 VALIDATORS.put(System.PREFERRED_REGION, ANY_STRING_VALIDATOR); VALIDATORS.put(System.CV_ENABLED, new InclusiveIntegerRangeValidator(0, 1))274 VALIDATORS.put(System.CV_ENABLED, 275 new InclusiveIntegerRangeValidator(0, 1)); 276 } 277 } 278