diff --git a/res/values/evolution_strings.xml b/res/values/evolution_strings.xml
index 935074456c4..b00fb018a3d 100644
--- a/res/values/evolution_strings.xml
+++ b/res/values/evolution_strings.xml
@@ -384,4 +384,8 @@
Day of each week:\n1 = Monday
Usage cycle reset hour
Hour of each day:
+
+
+ Haptic feedback
+ Vibrate when this gesture is invoked
diff --git a/res/xml/double_tap_screen_settings.xml b/res/xml/double_tap_screen_settings.xml
index 80e9bc4bf96..758b54f6f2a 100644
--- a/res/xml/double_tap_screen_settings.xml
+++ b/res/xml/double_tap_screen_settings.xml
@@ -31,4 +31,10 @@
app:keywords="@string/keywords_gesture"
app:controller="com.android.settings.gestures.DoubleTapScreenPreferenceController" />
+
+
diff --git a/res/xml/pick_up_gesture_settings.xml b/res/xml/pick_up_gesture_settings.xml
index 70a22466c90..807649d9355 100644
--- a/res/xml/pick_up_gesture_settings.xml
+++ b/res/xml/pick_up_gesture_settings.xml
@@ -41,4 +41,10 @@
android:summary="@string/doze_gesture_ambient_summary"
android:defaultValue="false" />
+
+
diff --git a/res/xml/tap_screen_gesture_settings.xml b/res/xml/tap_screen_gesture_settings.xml
index 3db20447911..4191bac470c 100644
--- a/res/xml/tap_screen_gesture_settings.xml
+++ b/res/xml/tap_screen_gesture_settings.xml
@@ -41,4 +41,10 @@
android:summary="@string/doze_gesture_ambient_summary"
android:defaultValue="true" />
+
+
diff --git a/src/com/android/settings/gestures/PickupGestureInsidePreferenceController.java b/src/com/android/settings/gestures/PickupGestureInsidePreferenceController.java
index dfd2ef42a7f..47ee56d95e7 100644
--- a/src/com/android/settings/gestures/PickupGestureInsidePreferenceController.java
+++ b/src/com/android/settings/gestures/PickupGestureInsidePreferenceController.java
@@ -17,6 +17,7 @@
package com.android.settings.gestures;
import android.content.Context;
+import android.os.Vibrator;
import android.provider.Settings;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
@@ -36,11 +37,15 @@ public class PickupGestureInsidePreferenceController extends AbstractPreferenceC
private static final String KEY = "gesture_pick_up";
private static final String AMBIENT_KEY = "doze_pick_up_gesture_ambient";
+ private static final String VIB_KEY = "doze_pick_up_gesture_vibrate";
private final boolean mDefault;
private final Context mContext;
private MainSwitchPreference mSwitch;
private SecureSettingSwitchPreference mAmbientPref;
+ private SecureSettingSwitchPreference mVibPref;
+
+ private boolean mIsVibAvailable;
public PickupGestureInsidePreferenceController(Context context) {
super(context);
@@ -70,6 +75,11 @@ public class PickupGestureInsidePreferenceController extends AbstractPreferenceC
});
mSwitch.addOnSwitchChangeListener(this);
updateState(mSwitch);
+
+ mVibPref = screen.findPreference(VIB_KEY);
+ final Vibrator vibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
+ mIsVibAvailable = vibrator != null && vibrator.hasVibrator();
+ if (!mIsVibAvailable) mVibPref.setVisible(false);
}
public void setChecked(boolean isChecked) {
@@ -101,5 +111,6 @@ public class PickupGestureInsidePreferenceController extends AbstractPreferenceC
private void updateAmbientEnablement(boolean enabled) {
if (mAmbientPref == null) return;
mAmbientPref.setEnabled(enabled);
+ if (mVibPref != null && mIsVibAvailable) mVibPref.setEnabled(enabled);
}
}
diff --git a/src/com/android/settings/gestures/TapPreferenceController.java b/src/com/android/settings/gestures/TapPreferenceController.java
index 572f2ce7c45..68f06f4a272 100644
--- a/src/com/android/settings/gestures/TapPreferenceController.java
+++ b/src/com/android/settings/gestures/TapPreferenceController.java
@@ -18,6 +18,7 @@ package com.android.settings.gestures;
import android.content.Context;
import android.os.SystemProperties;
+import android.os.Vibrator;
import android.provider.Settings;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
@@ -37,10 +38,14 @@ public class TapPreferenceController extends AbstractPreferenceController
private static final String KEY = "gesture_tap";
private static final String AMBIENT_KEY = "doze_tap_gesture_ambient";
+ private static final String VIB_KEY = "doze_tap_gesture_vibrate";
private final Context mContext;
private MainSwitchPreference mSwitch;
private SecureSettingSwitchPreference mAmbientPref;
+ private SecureSettingSwitchPreference mVibPref;
+
+ private boolean mIsVibAvailable;
public TapPreferenceController(Context context) {
super(context);
@@ -68,6 +73,11 @@ public class TapPreferenceController extends AbstractPreferenceController
});
mSwitch.addOnSwitchChangeListener(this);
updateState(mSwitch);
+
+ mVibPref = screen.findPreference(VIB_KEY);
+ final Vibrator vibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
+ mIsVibAvailable = vibrator != null && vibrator.hasVibrator();
+ if (!mIsVibAvailable) mVibPref.setVisible(false);
}
public void setChecked(boolean isChecked) {
@@ -100,5 +110,6 @@ public class TapPreferenceController extends AbstractPreferenceController
private void updateAmbientEnablement(boolean enabled) {
if (mAmbientPref == null) return;
mAmbientPref.setEnabled(enabled);
+ if (mVibPref != null && mIsVibAvailable) mVibPref.setEnabled(enabled);
}
}