diff options
author | Matthew Fritze <mfritze@google.com> | 2017-07-24 14:58:36 -0700 |
---|---|---|
committer | Matthew Fritze <mfritze@google.com> | 2017-07-25 10:44:15 -0700 |
commit | 458bb887e130926f36d8926ea8462ecfbfd1e0ef (patch) | |
tree | badceab470f37d8f195b2502c1af89a086842e9a /src | |
parent | 96a14ff07e7997d560235ed271076ee4b7087c33 (diff) | |
download | packages_apps_Settings-458bb887e130926f36d8926ea8462ecfbfd1e0ef.tar.gz packages_apps_Settings-458bb887e130926f36d8926ea8462ecfbfd1e0ef.tar.bz2 packages_apps_Settings-458bb887e130926f36d8926ea8462ecfbfd1e0ef.zip |
Add default value to inline payloads
If we try to set an inline result when it has not yet been
accessed in settings, nothing is read from Settings.
Thus, include a default value for a fallback.
Manual merge for: ag/2588219/
Change-Id: I3b8eea4f82764852cea642db4455ba57f10a7d37
Fixes: 63955012
Test: robotests
Diffstat (limited to 'src')
11 files changed, 70 insertions, 52 deletions
diff --git a/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceController.java b/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceController.java index 161e63e518..53898e876b 100644 --- a/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceController.java +++ b/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceController.java @@ -87,6 +87,7 @@ public class AmbientDisplayAlwaysOnPreferenceController extends mContext.getString(R.string.ambient_display_screen_title)); return new InlineSwitchPayload(Settings.Secure.DOZE_ALWAYS_ON, - ResultPayload.SettingsSource.SECURE, ON, intent, isAvailable()); + ResultPayload.SettingsSource.SECURE, ON /* onValue */, intent, isAvailable(), + ON /* defaultValue */); } } diff --git a/src/com/android/settings/display/AutoBrightnessPreferenceController.java b/src/com/android/settings/display/AutoBrightnessPreferenceController.java index d1d347c06f..e74a1a0378 100644 --- a/src/com/android/settings/display/AutoBrightnessPreferenceController.java +++ b/src/com/android/settings/display/AutoBrightnessPreferenceController.java @@ -37,6 +37,9 @@ public class AutoBrightnessPreferenceController extends AbstractPreferenceContro private final String mAutoBrightnessKey; + private final String SYSTEM_KEY = SCREEN_BRIGHTNESS_MODE; + private final int DEFAULT_VALUE = SCREEN_BRIGHTNESS_MODE_MANUAL; + public AutoBrightnessPreferenceController(Context context, String key) { super(context); mAutoBrightnessKey = key; @@ -56,15 +59,15 @@ public class AutoBrightnessPreferenceController extends AbstractPreferenceContro @Override public void updateState(Preference preference) { int brightnessMode = Settings.System.getInt(mContext.getContentResolver(), - SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL); - ((SwitchPreference) preference).setChecked(brightnessMode != SCREEN_BRIGHTNESS_MODE_MANUAL); + SYSTEM_KEY, DEFAULT_VALUE); + ((SwitchPreference) preference).setChecked(brightnessMode != DEFAULT_VALUE); } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { boolean auto = (Boolean) newValue; - Settings.System.putInt(mContext.getContentResolver(), SCREEN_BRIGHTNESS_MODE, - auto ? SCREEN_BRIGHTNESS_MODE_AUTOMATIC : SCREEN_BRIGHTNESS_MODE_MANUAL); + Settings.System.putInt(mContext.getContentResolver(), SYSTEM_KEY, + auto ? SCREEN_BRIGHTNESS_MODE_AUTOMATIC : DEFAULT_VALUE); return true; } @@ -74,8 +77,8 @@ public class AutoBrightnessPreferenceController extends AbstractPreferenceContro DisplaySettings.class.getName(), mAutoBrightnessKey, mContext.getString(R.string.display_settings)); - return new InlineSwitchPayload(SCREEN_BRIGHTNESS_MODE, + return new InlineSwitchPayload(SYSTEM_KEY, ResultPayload.SettingsSource.SYSTEM, SCREEN_BRIGHTNESS_MODE_AUTOMATIC, intent, - isAvailable()); + isAvailable(), DEFAULT_VALUE); } -} +}
\ No newline at end of file diff --git a/src/com/android/settings/gestures/AssistGesturePreferenceController.java b/src/com/android/settings/gestures/AssistGesturePreferenceController.java index da25ce1bff..b91f230fac 100644 --- a/src/com/android/settings/gestures/AssistGesturePreferenceController.java +++ b/src/com/android/settings/gestures/AssistGesturePreferenceController.java @@ -32,6 +32,8 @@ import com.android.settings.search.ResultPayload; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.events.OnResume; +import static android.provider.Settings.Secure.ASSIST_GESTURE_ENABLED; + public class AssistGesturePreferenceController extends GesturePreferenceController implements OnResume { @@ -41,6 +43,8 @@ public class AssistGesturePreferenceController extends GesturePreferenceControll private static final String PREF_KEY_VIDEO = "gesture_assist_video"; private final String mAssistGesturePrefKey; + private final String SECURE_KEY = ASSIST_GESTURE_ENABLED; + private final AssistGestureFeatureProvider mFeatureProvider; private boolean mWasAvailable; @@ -142,8 +146,7 @@ public class AssistGesturePreferenceController extends GesturePreferenceControll @Override public boolean onPreferenceChange(Preference preference, Object newValue) { final boolean enabled = (boolean) newValue; - Settings.Secure.putInt(mContext.getContentResolver(), - Settings.Secure.ASSIST_GESTURE_ENABLED, enabled ? ON : OFF); + Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY, enabled ? ON : OFF); updateState(preference); return true; } @@ -161,7 +164,7 @@ public class AssistGesturePreferenceController extends GesturePreferenceControll @Override protected boolean isSwitchPrefEnabled() { final int assistGestureEnabled = Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.ASSIST_GESTURE_ENABLED, 1); + SECURE_KEY, ON); return assistGestureEnabled != 0; } @@ -171,7 +174,7 @@ public class AssistGesturePreferenceController extends GesturePreferenceControll AssistGestureSettings.class.getName(), mAssistGesturePrefKey, mContext.getString(R.string.display_settings)); - return new InlineSwitchPayload(Settings.Secure.ASSIST_GESTURE_ENABLED, - ResultPayload.SettingsSource.SECURE, ON, intent, isAvailable()); + return new InlineSwitchPayload(SECURE_KEY, ResultPayload.SettingsSource.SECURE, + ON /* onValue */, intent, isAvailable(), ON /* defaultValue */); } } diff --git a/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java b/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java index 8d4116a3f7..970b6a70e8 100644 --- a/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java +++ b/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java @@ -22,14 +22,14 @@ import android.content.SharedPreferences; import android.provider.Settings; import android.support.v7.preference.Preference; -import com.android.settings.DisplaySettings; import com.android.settings.R; -import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.DatabaseIndexingUtils; import com.android.settings.search.InlineSwitchPayload; import com.android.settings.search.ResultPayload; import com.android.settingslib.core.lifecycle.Lifecycle; +import static android.provider.Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED; + public class DoubleTapPowerPreferenceController extends GesturePreferenceController { private final int ON = 0; @@ -38,6 +38,8 @@ public class DoubleTapPowerPreferenceController extends GesturePreferenceControl private static final String PREF_KEY_VIDEO = "gesture_double_tap_power_video"; private final String mDoubleTapPowerKey; + private final String SECURE_KEY = CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED; + public DoubleTapPowerPreferenceController(Context context, Lifecycle lifecycle, String key) { super(context, lifecycle); mDoubleTapPowerKey = key; @@ -71,15 +73,14 @@ public class DoubleTapPowerPreferenceController extends GesturePreferenceControl @Override public boolean onPreferenceChange(Preference preference, Object newValue) { boolean enabled = (boolean) newValue; - Settings.Secure.putInt(mContext.getContentResolver(), - Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, enabled ? ON : OFF); + Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY, enabled ? ON : OFF); return true; } @Override protected boolean isSwitchPrefEnabled() { final int cameraDisabled = Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0); + SECURE_KEY, ON); return cameraDisabled == 0; } @@ -89,7 +90,7 @@ public class DoubleTapPowerPreferenceController extends GesturePreferenceControl DoubleTapPowerSettings.class.getName(), mDoubleTapPowerKey, mContext.getString(R.string.display_settings)); - return new InlineSwitchPayload(Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, - ResultPayload.SettingsSource.SECURE, ON, intent, isAvailable()); + return new InlineSwitchPayload(SECURE_KEY, ResultPayload.SettingsSource.SECURE, + ON /* onValue */, intent, isAvailable(), ON /* defaultValue */); } } diff --git a/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java b/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java index 4de6e14b29..9ec06aeca2 100644 --- a/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java +++ b/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java @@ -25,12 +25,13 @@ import android.support.v7.preference.Preference; import com.android.internal.hardware.AmbientDisplayConfiguration; import com.android.settings.R; -import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.DatabaseIndexingUtils; import com.android.settings.search.InlineSwitchPayload; import com.android.settings.search.ResultPayload; import com.android.settingslib.core.lifecycle.Lifecycle; +import static android.provider.Settings.Secure.DOZE_PULSE_ON_DOUBLE_TAP; + public class DoubleTapScreenPreferenceController extends GesturePreferenceController { private final int ON = 1; @@ -39,6 +40,8 @@ public class DoubleTapScreenPreferenceController extends GesturePreferenceContro private static final String PREF_KEY_VIDEO = "gesture_double_tap_screen_video"; private final String mDoubleTapScreenPrefKey; + private final String SECURE_KEY = DOZE_PULSE_ON_DOUBLE_TAP; + private final AmbientDisplayConfiguration mAmbientConfig; @UserIdInt private final int mUserId; @@ -70,8 +73,7 @@ public class DoubleTapScreenPreferenceController extends GesturePreferenceContro @Override public boolean onPreferenceChange(Preference preference, Object newValue) { final boolean enabled = (boolean) newValue; - Settings.Secure.putInt(mContext.getContentResolver(), - Settings.Secure.DOZE_PULSE_ON_DOUBLE_TAP, enabled ? ON : OFF); + Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY, enabled ? ON : OFF); return true; } @@ -91,7 +93,7 @@ public class DoubleTapScreenPreferenceController extends GesturePreferenceContro DoubleTapScreenSettings.class.getName(), mDoubleTapScreenPrefKey, mContext.getString(R.string.display_settings)); - return new InlineSwitchPayload(Settings.Secure.DOZE_PULSE_ON_DOUBLE_TAP, - ResultPayload.SettingsSource.SECURE, ON, intent, isAvailable()); + return new InlineSwitchPayload(SECURE_KEY, ResultPayload.SettingsSource.SECURE, + ON /* onValue */, intent, isAvailable(), ON /* defaultValue */); } -} +}
\ No newline at end of file diff --git a/src/com/android/settings/gestures/PickupGesturePreferenceController.java b/src/com/android/settings/gestures/PickupGesturePreferenceController.java index 9a4c84611c..e64c0cf43f 100644 --- a/src/com/android/settings/gestures/PickupGesturePreferenceController.java +++ b/src/com/android/settings/gestures/PickupGesturePreferenceController.java @@ -30,6 +30,8 @@ import com.android.settings.search.InlineSwitchPayload; import com.android.settings.search.ResultPayload; import com.android.settingslib.core.lifecycle.Lifecycle; +import static android.provider.Settings.Secure.DOZE_PULSE_ON_PICK_UP; + public class PickupGesturePreferenceController extends GesturePreferenceController { private final int ON = 1; @@ -38,6 +40,8 @@ public class PickupGesturePreferenceController extends GesturePreferenceControll private static final String PREF_KEY_VIDEO = "gesture_pick_up_video"; private final String mPickUpPrefKey; + private final String SECURE_KEY = DOZE_PULSE_ON_PICK_UP; + private final AmbientDisplayConfiguration mAmbientConfig; @UserIdInt private final int mUserId; @@ -80,7 +84,7 @@ public class PickupGesturePreferenceController extends GesturePreferenceControll public boolean onPreferenceChange(Preference preference, Object newValue) { final boolean enabled = (boolean) newValue; Settings.Secure.putInt(mContext.getContentResolver(), - Settings.Secure.DOZE_PULSE_ON_PICK_UP, enabled ? ON : OFF); + SECURE_KEY, enabled ? ON : OFF); return true; } @@ -95,7 +99,7 @@ public class PickupGesturePreferenceController extends GesturePreferenceControll PickupGestureSettings.class.getName(), mPickUpPrefKey, mContext.getString(R.string.display_settings)); - return new InlineSwitchPayload(Settings.Secure.DOZE_PULSE_ON_PICK_UP, - ResultPayload.SettingsSource.SECURE, ON, intent, isAvailable()); + return new InlineSwitchPayload(SECURE_KEY, ResultPayload.SettingsSource.SECURE, + ON /* onValue */, intent, isAvailable(), ON /* defaultValue */); } } diff --git a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java index 05c6461767..bc6950ec2b 100644 --- a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java +++ b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java @@ -29,6 +29,8 @@ import com.android.settings.search.InlineSwitchPayload; import com.android.settings.search.ResultPayload; import com.android.settingslib.core.lifecycle.Lifecycle; +import static android.provider.Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED; + public class SwipeToNotificationPreferenceController extends GesturePreferenceController { private final int ON = 1; @@ -37,6 +39,8 @@ public class SwipeToNotificationPreferenceController extends GesturePreferenceCo private static final String PREF_KEY_VIDEO = "gesture_swipe_down_fingerprint_video"; private final String mSwipeDownFingerPrefKey; + private final String SECURE_KEY = SYSTEM_NAVIGATION_KEYS_ENABLED; + public SwipeToNotificationPreferenceController(Context context, Lifecycle lifecycle, String key) { super(context, lifecycle); @@ -71,16 +75,14 @@ public class SwipeToNotificationPreferenceController extends GesturePreferenceCo @Override public boolean onPreferenceChange(Preference preference, Object newValue) { - Settings.Secure.putInt(mContext.getContentResolver(), - Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, (boolean) newValue ? ON : OFF); + Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY, + (boolean) newValue ? ON : OFF); return true; } @Override protected boolean isSwitchPrefEnabled() { - return Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, 0) - == 1; + return Settings.Secure.getInt(mContext.getContentResolver(), SECURE_KEY, OFF) == ON; } @Override @@ -89,7 +91,7 @@ public class SwipeToNotificationPreferenceController extends GesturePreferenceCo SwipeToNotificationSettings.class.getName(), mSwipeDownFingerPrefKey, mContext.getString(R.string.display_settings)); - return new InlineSwitchPayload(Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, - ResultPayload.SettingsSource.SECURE, ON, intent, isAvailable()); + return new InlineSwitchPayload(SECURE_KEY, ResultPayload.SettingsSource.SECURE, + ON /* onValue */, intent, isAvailable(), ON /* defaultValue */); } } diff --git a/src/com/android/settings/location/LocationPreferenceController.java b/src/com/android/settings/location/LocationPreferenceController.java index 718c3f5a05..225100f7ea 100644 --- a/src/com/android/settings/location/LocationPreferenceController.java +++ b/src/com/android/settings/location/LocationPreferenceController.java @@ -133,7 +133,6 @@ public class LocationPreferenceController extends AbstractPreferenceController return new InlineListPayload(Secure.LOCATION_MODE, ResultPayload.SettingsSource.SECURE, intent, isAvailable(), - Secure.LOCATION_MODE_HIGH_ACCURACY + 1); + Secure.LOCATION_MODE_HIGH_ACCURACY + 1, Secure.LOCATION_MODE_OFF); } - } diff --git a/src/com/android/settings/search/InlineListPayload.java b/src/com/android/settings/search/InlineListPayload.java index 60113b983b..c11c4a388f 100644 --- a/src/com/android/settings/search/InlineListPayload.java +++ b/src/com/android/settings/search/InlineListPayload.java @@ -16,8 +16,8 @@ public class InlineListPayload extends InlinePayload { private int mNumOptions; public InlineListPayload(String key, @PayloadType int payloadType, Intent intent, - boolean isDeviceSupported, int numOptions) { - super(key, payloadType, intent, isDeviceSupported); + boolean isDeviceSupported, int numOptions, int defaultValue) { + super(key, payloadType, intent, isDeviceSupported, defaultValue); mNumOptions = numOptions; } diff --git a/src/com/android/settings/search/InlinePayload.java b/src/com/android/settings/search/InlinePayload.java index 0807f62178..03b882839d 100644 --- a/src/com/android/settings/search/InlinePayload.java +++ b/src/com/android/settings/search/InlinePayload.java @@ -49,24 +49,31 @@ public abstract class InlinePayload extends ResultPayload { final boolean mIsDeviceSupported; /** + * The default value for the setting. + */ + final int mDefaultvalue; + + /** * @param key uniquely identifies the stored setting. * @param source of the setting. Used to determine where to get and set the setting. * @param intent to the setting page. * @param isDeviceSupported is true when the setting is valid for the given device. */ public InlinePayload(String key, @SettingsSource int source, Intent intent, - boolean isDeviceSupported) { + boolean isDeviceSupported, int defaultValue) { super(intent); mSettingKey = key; mSettingSource = source; mIsDeviceSupported = isDeviceSupported; + mDefaultvalue = defaultValue; } InlinePayload(Parcel parcel) { - super((Intent) parcel.readParcelable(Intent.class.getClassLoader())); + super(parcel.readParcelable(Intent.class.getClassLoader())); mSettingKey = parcel.readString(); mSettingSource = parcel.readInt(); mIsDeviceSupported = parcel.readInt() == TRUE; + mDefaultvalue = parcel.readInt(); } @Override @@ -75,6 +82,7 @@ public abstract class InlinePayload extends ResultPayload { dest.writeString(mSettingKey); dest.writeInt(mSettingSource); dest.writeInt(mIsDeviceSupported ? TRUE : FALSE); + dest.writeInt(mDefaultvalue); } @Override @@ -108,24 +116,19 @@ public abstract class InlinePayload extends ResultPayload { switch(mSettingSource) { case SettingsSource.SECURE: settingsValue = Settings.Secure.getInt(context.getContentResolver(), - mSettingKey, -1); + mSettingKey, mDefaultvalue); break; case SettingsSource.SYSTEM: settingsValue = Settings.System.getInt(context.getContentResolver(), - mSettingKey, -1); + mSettingKey, mDefaultvalue); break; case SettingsSource.GLOBAL: settingsValue = Settings.Global.getInt(context.getContentResolver(), - mSettingKey, -1); + mSettingKey, mDefaultvalue); break; } - if (settingsValue == -1) { - throw new IllegalStateException("Unable to find setting from uri: " - + mSettingKey.toString()); - } - return standardizeInput(settingsValue); } diff --git a/src/com/android/settings/search/InlineSwitchPayload.java b/src/com/android/settings/search/InlineSwitchPayload.java index 8916dde3a5..bac0313171 100644 --- a/src/com/android/settings/search/InlineSwitchPayload.java +++ b/src/com/android/settings/search/InlineSwitchPayload.java @@ -45,8 +45,8 @@ public class InlineSwitchPayload extends InlinePayload { * @param isDeviceSupported is true when the setting is valid for the given device. */ public InlineSwitchPayload(String key, @SettingsSource int source, - int onValue, Intent intent, boolean isDeviceSupported) { - super(key, source, intent, isDeviceSupported); + int onValue, Intent intent, boolean isDeviceSupported, int defaultValue) { + super(key, source, intent, isDeviceSupported, defaultValue); // If on is stored as TRUE then the switch is standard. mIsStandard = onValue == TRUE; } |