Remove pickup gesture settings if sensor is not found.
Update gesture settings to check for available pickup sensor before
showing pickup gesture settings.
Test: manual - launch gesture settings on different device and check for
pickup preference. Auto test pending.
Bug: 32072298
Change-Id: Iaab0290dcfeb2b0c9195df685f225d092a658347
diff --git a/res/values/config.xml b/res/values/config.xml
index 7513cef..6d56e18 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -52,6 +52,10 @@
<string name="gesture_double_twist_sensor_name" translatable="false"></string>
<string name="gesture_double_twist_sensor_vendor" translatable="false"></string>
+ <!-- Pickup sensor name and vendor used by gesture setting -->
+ <string name="gesture_pickup_sensor_name" translatable="false"></string>
+ <string name="gesture_pickup_sensor_vendor" translatable="false"></string>
+
<!-- When true enable gesture setting. -->
<bool name="config_gesture_settings_enabled">false</bool>
diff --git a/src/com/android/settings/gestures/GestureSettings.java b/src/com/android/settings/gestures/GestureSettings.java
index b18bc05..14df471 100644
--- a/src/com/android/settings/gestures/GestureSettings.java
+++ b/src/com/android/settings/gestures/GestureSettings.java
@@ -82,7 +82,7 @@
// Ambient Display
boolean dozeEnabled = isDozeAvailable(context);
- if (dozeEnabled) {
+ if (dozeEnabled && isPickupAvailable(context)) {
int pickup = Secure.getInt(getContentResolver(), Secure.DOZE_PULSE_ON_PICK_UP, 1);
addPreference(PREF_KEY_PICK_UP, pickup != 0, PREF_ID_PICK_UP);
} else {
@@ -204,9 +204,19 @@
}
private static boolean isDoubleTwistAvailable(Context context) {
+ return hasSensor(context, R.string.gesture_double_twist_sensor_name,
+ R.string.gesture_double_twist_sensor_vendor);
+ }
+
+ private static boolean isPickupAvailable(Context context) {
+ return hasSensor(context, R.string.gesture_pickup_sensor_name,
+ R.string.gesture_pickup_sensor_vendor);
+ }
+
+ private static boolean hasSensor(Context context, int nameResId, int vendorResId) {
Resources resources = context.getResources();
- String name = resources.getString(R.string.gesture_double_twist_sensor_name);
- String vendor = resources.getString(R.string.gesture_double_twist_sensor_vendor);
+ String name = resources.getString(nameResId);
+ String vendor = resources.getString(vendorResId);
if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(vendor)) {
SensorManager sensorManager =
(SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
@@ -253,10 +263,10 @@
if (!isCameraDoubleTapPowerGestureAvailable(context.getResources())) {
result.add(PREF_KEY_DOUBLE_TAP_POWER);
}
- if (!isDozeAvailable(context)) {
+ if (!isDozeAvailable(context) || !isPickupAvailable(context)) {
result.add(PREF_KEY_PICK_UP);
- result.add(PREF_KEY_DOUBLE_TAP_SCREEN);
- } else if (!isDoubleTapAvailable(context)) {
+ }
+ if (!isDozeAvailable(context) || !isDoubleTapAvailable(context)) {
result.add(PREF_KEY_DOUBLE_TAP_SCREEN);
}
if (!isSystemUINavigationAvailable(context)) {