Split Ambient Display settings.
1. Reverting the changes for Display->Ambient Display; this setting will control incoming notification pulse. 2. Added 2 separate entries in gestures settings to control pick up and double tap gestures-triggered pulsing for Ambient Display. 3. Added automated tests to verify the preference initializes to the correct default value, and also verify that toggling the preference updates the corresponding settings correctly. Test: make SettingsTests Bug: 30595437 Change-Id: I125bf75fc4ccfea126a00ffae4207fcb789f487a
This commit is contained in:
@@ -41,7 +41,6 @@ import android.support.v7.preference.DropDownPreference;
|
||||
import android.support.v7.preference.ListPreference;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
@@ -97,10 +96,10 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
||||
private ListPreference mNightModePreference;
|
||||
private Preference mScreenSaverPreference;
|
||||
private SwitchPreference mLiftToWakePreference;
|
||||
private SwitchPreference mDozePreference;
|
||||
private SwitchPreference mTapToWakePreference;
|
||||
private SwitchPreference mAutoBrightnessPreference;
|
||||
private SwitchPreference mCameraGesturePreference;
|
||||
private PreferenceScreen mDozePreference;
|
||||
|
||||
@Override
|
||||
protected int getMetricsCategory() {
|
||||
@@ -144,10 +143,11 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
||||
removePreference(KEY_LIFT_TO_WAKE);
|
||||
}
|
||||
|
||||
if (!isDozeAvailable(activity)) {
|
||||
removePreference(KEY_DOZE);
|
||||
if (isDozeAvailable(activity)) {
|
||||
mDozePreference = (SwitchPreference) findPreference(KEY_DOZE);
|
||||
mDozePreference.setOnPreferenceChangeListener(this);
|
||||
} else {
|
||||
mDozePreference = (PreferenceScreen) findPreference(KEY_DOZE);
|
||||
removePreference(KEY_DOZE);
|
||||
}
|
||||
|
||||
if (isTapToWakeAvailable(getResources())) {
|
||||
@@ -360,6 +360,12 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
||||
mTapToWakePreference.setChecked(value != 0);
|
||||
}
|
||||
|
||||
// Update doze if it is available.
|
||||
if (mDozePreference != null) {
|
||||
int value = Settings.Secure.getInt(getContentResolver(), DOZE_ENABLED, 1);
|
||||
mDozePreference.setChecked(value != 0);
|
||||
}
|
||||
|
||||
// Update camera gesture #1 if it is available.
|
||||
if (mCameraGesturePreference != null) {
|
||||
int value = Settings.Secure.getInt(getContentResolver(), CAMERA_GESTURE_DISABLED, 0);
|
||||
@@ -407,6 +413,10 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
||||
boolean value = (Boolean) objValue;
|
||||
Settings.Secure.putInt(getContentResolver(), WAKE_GESTURE_ENABLED, value ? 1 : 0);
|
||||
}
|
||||
if (preference == mDozePreference) {
|
||||
boolean value = (Boolean) objValue;
|
||||
Settings.Secure.putInt(getContentResolver(), DOZE_ENABLED, value ? 1 : 0);
|
||||
}
|
||||
if (preference == mTapToWakePreference) {
|
||||
boolean value = (Boolean) objValue;
|
||||
Settings.Secure.putInt(getContentResolver(), DOUBLE_TAP_TO_WAKE, value ? 1 : 0);
|
||||
|
@@ -52,16 +52,16 @@ public class GestureSettings extends SettingsPreferenceFragment implements
|
||||
private static final String TAG = "GestureSettings";
|
||||
private static final String PREF_KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power";
|
||||
private static final String PREF_KEY_DOUBLE_TWIST = "gesture_double_twist";
|
||||
private static final String PREF_KEY_PICK_UP_AND_NUDGE = "gesture_pick_up_and_nudge";
|
||||
private static final String PREF_KEY_PICK_UP = "gesture_pick_up";
|
||||
private static final String PREF_KEY_SWIPE_DOWN_FINGERPRINT = "gesture_swipe_down_fingerprint";
|
||||
private static final String PREF_KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen";
|
||||
private static final String DEBUG_DOZE_COMPONENT = "debug.doze.component";
|
||||
private static final String ARG_SCROLL_TO_PREFERENCE = "gesture_scroll_to_preference";
|
||||
private static final int PREF_ID_DOUBLE_TAP_POWER = 0;
|
||||
private static final int PREF_ID_DOUBLE_TWIST = 1;
|
||||
private static final int PREF_ID_PICK_UP_AND_NUDG = 2;
|
||||
private static final int PREF_ID_PICK_UP = 2;
|
||||
private static final int PREF_ID_SWIPE_DOWN_FINGERPRINT = 3;
|
||||
private static final int PREF_ID_DOUBLE_TAP_SCREEN = 4;
|
||||
|
||||
private int mScrollPosition = -1;
|
||||
private List<GesturePreference> mPreferences;
|
||||
|
||||
@Override
|
||||
@@ -82,16 +82,19 @@ public class GestureSettings extends SettingsPreferenceFragment implements
|
||||
|
||||
// Ambient Display
|
||||
if (isDozeAvailable(context)) {
|
||||
int dozeEnabled = Secure.getInt(getContentResolver(), Secure.DOZE_ENABLED, 1);
|
||||
addPreference(PREF_KEY_PICK_UP_AND_NUDGE, dozeEnabled != 0, PREF_ID_DOUBLE_TWIST);
|
||||
int pickup = Secure.getInt(getContentResolver(), Secure.DOZE_PULSE_ON_PICK_UP, 1);
|
||||
addPreference(PREF_KEY_PICK_UP, pickup != 0, PREF_ID_PICK_UP);
|
||||
int doubleTap = Secure.getInt(getContentResolver(), Secure.DOZE_PULSE_ON_DOUBLE_TAP, 1);
|
||||
addPreference(PREF_KEY_DOUBLE_TAP_SCREEN, doubleTap != 0, PREF_ID_DOUBLE_TAP_SCREEN);
|
||||
} else {
|
||||
removePreference(PREF_KEY_PICK_UP_AND_NUDGE);
|
||||
removePreference(PREF_KEY_PICK_UP);
|
||||
removePreference(PREF_KEY_DOUBLE_TAP_SCREEN);
|
||||
}
|
||||
|
||||
// Fingerprint slide for notifications
|
||||
if (isSystemUINavigationAvailable(context)) {
|
||||
addPreference(PREF_KEY_SWIPE_DOWN_FINGERPRINT, isSystemUINavigationEnabled(context),
|
||||
PREF_ID_PICK_UP_AND_NUDG);
|
||||
PREF_ID_SWIPE_DOWN_FINGERPRINT);
|
||||
} else {
|
||||
removePreference(PREF_KEY_SWIPE_DOWN_FINGERPRINT);
|
||||
}
|
||||
@@ -100,23 +103,11 @@ public class GestureSettings extends SettingsPreferenceFragment implements
|
||||
if (isDoubleTwistAvailable(context)) {
|
||||
int doubleTwistEnabled = Secure.getInt(
|
||||
getContentResolver(), Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 1);
|
||||
addPreference(PREF_KEY_DOUBLE_TWIST, doubleTwistEnabled != 0,
|
||||
PREF_ID_SWIPE_DOWN_FINGERPRINT);
|
||||
addPreference(PREF_KEY_DOUBLE_TWIST, doubleTwistEnabled != 0, PREF_ID_DOUBLE_TWIST);
|
||||
} else {
|
||||
removePreference(PREF_KEY_DOUBLE_TWIST);
|
||||
}
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
final Bundle args = getArguments();
|
||||
if (args != null && args.containsKey(ARG_SCROLL_TO_PREFERENCE)) {
|
||||
String prefKey = args.getString(ARG_SCROLL_TO_PREFERENCE);
|
||||
GesturePreference pref = (GesturePreference) findPreference(prefKey);
|
||||
if (pref != null) {
|
||||
mScrollPosition = pref.getOrder();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -124,9 +115,6 @@ public class GestureSettings extends SettingsPreferenceFragment implements
|
||||
Bundle savedInstanceState) {
|
||||
View view = super.onCreateView(inflater, container, savedInstanceState);
|
||||
RecyclerView listview = getListView();
|
||||
if (mScrollPosition >= 0) {
|
||||
listview.scrollToPosition(mScrollPosition);
|
||||
}
|
||||
listview.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
||||
@@ -163,8 +151,10 @@ public class GestureSettings extends SettingsPreferenceFragment implements
|
||||
if (PREF_KEY_DOUBLE_TAP_POWER.equals(key)) {
|
||||
Secure.putInt(getContentResolver(),
|
||||
Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, enabled ? 0 : 1);
|
||||
} else if (PREF_KEY_PICK_UP_AND_NUDGE.equals(key)) {
|
||||
Secure.putInt(getContentResolver(), Secure.DOZE_ENABLED, enabled ? 1 : 0);
|
||||
} else if (PREF_KEY_PICK_UP.equals(key)) {
|
||||
Secure.putInt(getContentResolver(), Secure.DOZE_PULSE_ON_PICK_UP, enabled ? 1 : 0);
|
||||
} else if (PREF_KEY_DOUBLE_TAP_SCREEN.equals(key)) {
|
||||
Secure.putInt(getContentResolver(), Secure.DOZE_PULSE_ON_DOUBLE_TAP, enabled ? 1 : 0);
|
||||
} else if (PREF_KEY_SWIPE_DOWN_FINGERPRINT.equals(key)) {
|
||||
Secure.putInt(getContentResolver(),
|
||||
Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, enabled ? 1 : 0);
|
||||
@@ -255,7 +245,8 @@ public class GestureSettings extends SettingsPreferenceFragment implements
|
||||
result.add(PREF_KEY_DOUBLE_TAP_POWER);
|
||||
}
|
||||
if (!isDozeAvailable(context)) {
|
||||
result.add(PREF_KEY_PICK_UP_AND_NUDGE);
|
||||
result.add(PREF_KEY_PICK_UP);
|
||||
result.add(PREF_KEY_DOUBLE_TAP_SCREEN);
|
||||
}
|
||||
if (!isSystemUINavigationAvailable(context)) {
|
||||
result.add(PREF_KEY_SWIPE_DOWN_FINGERPRINT);
|
||||
@@ -267,4 +258,4 @@ public class GestureSettings extends SettingsPreferenceFragment implements
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user