Merge cherrypicks of ['googleplex-android-review.googlesource.com/26459632'] into 24Q2-release.

Change-Id: I439d6888ed42174a6dfdf69a9f6d4f6ca8542fe3
diff --git a/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java b/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
index 869443c..58aa0cc 100644
--- a/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
+++ b/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
@@ -47,7 +47,7 @@
 
 
 /**
- *  A preference controller to turn on/off keyboard vibration state with a single toggle.
+ * A preference controller to turn on/off keyboard vibration state with a single toggle.
  */
 public class KeyboardVibrationTogglePreferenceController extends TogglePreferenceController
         implements DefaultLifecycleObserver {
@@ -110,7 +110,9 @@
     @Override
     public int getAvailabilityStatus() {
         if (Flags.keyboardCategoryEnabled()
-                && mContext.getResources().getBoolean(R.bool.config_keyboard_vibration_supported)) {
+                && mContext.getResources().getBoolean(R.bool.config_keyboard_vibration_supported)
+                && mContext.getResources().getFloat(
+                com.android.internal.R.dimen.config_keyboardHapticFeedbackFixedAmplitude) > 0) {
             return AVAILABLE;
         }
         return UNSUPPORTED_ON_DEVICE;
diff --git a/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
index cf12e34..2d5905e 100644
--- a/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
@@ -84,6 +84,9 @@
     public void getAvailabilityStatus_featureSupported_available() {
         mSetFlagsRule.enableFlags(Flags.FLAG_KEYBOARD_CATEGORY_ENABLED);
         when(mResources.getBoolean(R.bool.config_keyboard_vibration_supported)).thenReturn(true);
+        when(mResources.getFloat(
+                com.android.internal.R.dimen.config_keyboardHapticFeedbackFixedAmplitude))
+                .thenReturn(0.8f);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }