From c5a5cc19241d1081f2fc2e1cc3aa2b5101400683 Mon Sep 17 00:00:00 2001 From: Ido Ben-Hur Date: Tue, 1 Aug 2023 15:21:33 +0300 Subject: [PATCH] Settings: Allow configuring haptics for wake gestures [2/2] Change-Id: Iaa771adfb1ebe588ebda65cd9e0ce0fcb359eb30 Signed-off-by: Ghosuto --- res/values/evolution_strings.xml | 4 ++++ res/xml/double_tap_screen_settings.xml | 6 ++++++ res/xml/pick_up_gesture_settings.xml | 6 ++++++ res/xml/tap_screen_gesture_settings.xml | 6 ++++++ .../PickupGestureInsidePreferenceController.java | 11 +++++++++++ .../settings/gestures/TapPreferenceController.java | 11 +++++++++++ 6 files changed, 44 insertions(+) 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); } }