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. Change-Id: I8a593d9ff3308b2d0cd5bc65658d160abf55b07e Fixes: 63955012 Test: robotests
This commit is contained in:
@@ -85,6 +85,7 @@ public class AmbientDisplayAlwaysOnPreferenceController extends PreferenceContro
|
||||
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 */);
|
||||
}
|
||||
}
|
||||
|
@@ -36,6 +36,9 @@ public class AutoBrightnessPreferenceController extends PreferenceController imp
|
||||
|
||||
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;
|
||||
@@ -55,15 +58,15 @@ public class AutoBrightnessPreferenceController extends PreferenceController imp
|
||||
@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;
|
||||
}
|
||||
|
||||
@@ -73,8 +76,8 @@ public class AutoBrightnessPreferenceController extends PreferenceController imp
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
@@ -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 */);
|
||||
}
|
||||
}
|
||||
|
@@ -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 */);
|
||||
}
|
||||
}
|
||||
|
@@ -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 */);
|
||||
}
|
||||
}
|
||||
}
|
@@ -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 */);
|
||||
}
|
||||
}
|
||||
|
@@ -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 */);
|
||||
}
|
||||
}
|
||||
|
@@ -132,7 +132,6 @@ public class LocationPreferenceController extends PreferenceController implement
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -48,6 +48,11 @@ 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.
|
||||
@@ -55,18 +60,20 @@ public abstract class InlinePayload extends ResultPayload {
|
||||
* @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);
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user