diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index 67e4a63..de778bd 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -112,12 +112,6 @@
     private static final VibrationAttributes FINGERPRINT_ENROLLING_SONFICATION_ATTRIBUTES =
             VibrationAttributes.createForUsage(VibrationAttributes.USAGE_ACCESSIBILITY);
 
-    private static final VibrationAttributes HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES =
-            VibrationAttributes.createForUsage(VibrationAttributes.USAGE_HARDWARE_FEEDBACK);
-
-    private static final VibrationEffect SUCCESS_VIBRATION_EFFECT =
-            VibrationEffect.get(VibrationEffect.EFFECT_CLICK);
-
     private FingerprintManager mFingerprintManager;
     private boolean mCanAssumeUdfps;
     @Nullable private ProgressBar mProgressBar;
@@ -515,14 +509,6 @@
             mErrorText.removeCallbacks(mTouchAgainRunnable);
             mErrorText.postDelayed(mTouchAgainRunnable, HINT_TIMEOUT_DURATION);
         } else {
-            if (mVibrator != null) {
-                mVibrator.vibrate(Process.myUid(),
-                        getApplicationContext().getOpPackageName(),
-                        SUCCESS_VIBRATION_EFFECT,
-                        getClass().getSimpleName() + "::OnEnrollmentProgressChanged",
-                        HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES);
-            }
-
             if (mIsAccessibilityEnabled) {
                 final int percent = (int) (((float)(steps - remaining) / (float) steps) * 100);
                 CharSequence cs = getString(
@@ -594,7 +580,8 @@
                 mErrorText.setTranslationY(0f);
             }
         }
-        if (isResumed() && (mIsAccessibilityEnabled || !mCanAssumeUdfps)) {
+
+        if (isResumed() && mIsAccessibilityEnabled && !mCanAssumeUdfps) {
             mVibrator.vibrate(Process.myUid(), getApplicationContext().getOpPackageName(),
                     VIBRATE_EFFECT_ERROR, getClass().getSimpleName() + "::showError",
                     FINGERPRINT_ENROLLING_SONFICATION_ATTRIBUTES);
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
index 9b39a03..a7b7e85 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
@@ -101,4 +101,4 @@
 
         return callbackCaptor.getValue();
     }
-}
+}
\ No newline at end of file
