Fix no vibration when enroll init stage after receive onEnrollmentHelp

Change the behavior of vibration when
1. Init stage, don't vibrate if onEnrollmentHelp invoke
2. Then next enroll progress update, should vibrate

Note: This onEnrollmentHelp is invoked by FINGERPRINT_ACQUIRED_PARTIAL

Test: Should vibration when the progress 1st indicating after lightly press
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER=FingerprintEnrollEnrollingTest
Bug: 290723009
Change-Id: Ie056aac8b3251fb3da6dccd95254fb30628fa65e
This commit is contained in:
lbill
2023-07-24 07:04:18 +00:00
parent 2fdc9c943b
commit a851e68272
2 changed files with 18 additions and 1 deletions

View File

@@ -202,6 +202,7 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable {
return;
}
mShowingHelp = showingHelp;
if (mShowingHelp) {
if (mVibrator != null && mIsAccessibilityEnabled) {
mVibrator.vibrate(Process.myUid(), mContext.getOpPackageName(),
@@ -228,7 +229,6 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable {
}
}
mShowingHelp = showingHelp;
mRemainingSteps = remainingSteps;
mTotalSteps = totalSteps;

View File

@@ -147,6 +147,23 @@ public class FingerprintEnrollEnrollingTest {
verify(mVibrator, never()).vibrate(anyInt(), anyString(), any(), anyString(), any());
}
@Test
public void fingerprintUdfpsEnrollInitStage_afterOnEnrollmentHelp_shouldVibrate() {
initializeActivityFor(TYPE_UDFPS_OPTICAL);
assertThat(getLayout().getDescriptionText()).isNotEqualTo("");
mActivity.configureEnrollmentStage(0 /* lottie */);
mActivity.onEnrollmentHelp(1/* FINGERPRINT_ACQUIRED_PARTIAL */, mContext.getString(
com.android.internal.R.string.fingerprint_acquired_partial));
verify(mVibrator, never()).vibrate(anyInt(), anyString(), any(), anyString(), any());
mActivity.onEnrollmentProgressChange(1, 1);
verify(mVibrator).vibrate(anyInt(), anyString(), any(), anyString(), any());
}
@Test
public void fingerprintUdfpsOverlayEnrollment_gainFocus_shouldNotCancel() {
initializeActivityFor(TYPE_UDFPS_OPTICAL);