Merge "Add pad animation for STAGE_CENTER & STAGE_GUIDED"
This commit is contained in:
1
res/raw/udfps_center_hint_lottie.json
Normal file
1
res/raw/udfps_center_hint_lottie.json
Normal file
File diff suppressed because one or more lines are too long
@@ -178,6 +178,8 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
|
||||
private boolean mHaveShownUdfpsTipLottie;
|
||||
private boolean mHaveShownUdfpsLeftEdgeLottie;
|
||||
private boolean mHaveShownUdfpsRightEdgeLottie;
|
||||
private boolean mHaveShownUdfpsCenterLottie;
|
||||
private boolean mHaveShownUdfpsGuideLottie;
|
||||
private boolean mHaveShownSfpsNoAnimationLottie;
|
||||
private boolean mHaveShownSfpsCenterLottie;
|
||||
private boolean mHaveShownSfpsTipLottie;
|
||||
@@ -508,18 +510,31 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
|
||||
switch (getCurrentStage()) {
|
||||
case STAGE_CENTER:
|
||||
setHeaderText(R.string.security_settings_fingerprint_enroll_repeat_title);
|
||||
setDescriptionText(R.string.security_settings_udfps_enroll_start_message);
|
||||
if (mIsAccessibilityEnabled || mIllustrationLottie == null) {
|
||||
setDescriptionText(R.string.security_settings_udfps_enroll_start_message);
|
||||
} else if (!mHaveShownUdfpsCenterLottie && mIllustrationLottie != null) {
|
||||
mHaveShownUdfpsCenterLottie = true;
|
||||
// Note: Update string reference when differentiate in between udfps & sfps
|
||||
mIllustrationLottie.setContentDescription(
|
||||
getString(R.string.security_settings_sfps_enroll_finger_center_title)
|
||||
);
|
||||
configureEnrollmentStage("", R.raw.udfps_center_hint_lottie);
|
||||
}
|
||||
break;
|
||||
|
||||
case STAGE_GUIDED:
|
||||
setHeaderText(R.string.security_settings_fingerprint_enroll_repeat_title);
|
||||
if (mIsAccessibilityEnabled) {
|
||||
if (mIsAccessibilityEnabled || mIllustrationLottie == null) {
|
||||
setDescriptionText(R.string.security_settings_udfps_enroll_repeat_a11y_message);
|
||||
} else {
|
||||
setDescriptionText(R.string.security_settings_udfps_enroll_repeat_message);
|
||||
} else if (!mHaveShownUdfpsGuideLottie && mIllustrationLottie != null) {
|
||||
mHaveShownUdfpsGuideLottie = true;
|
||||
mIllustrationLottie.setContentDescription(
|
||||
getString(R.string.security_settings_fingerprint_enroll_repeat_message)
|
||||
);
|
||||
// TODO(b/228100413) Could customize guided lottie animation
|
||||
configureEnrollmentStage("", R.raw.udfps_center_hint_lottie);
|
||||
}
|
||||
break;
|
||||
|
||||
case STAGE_FINGERTIP:
|
||||
setHeaderText(R.string.security_settings_udfps_enroll_fingertip_title);
|
||||
if (!mHaveShownUdfpsTipLottie && mIllustrationLottie != null) {
|
||||
@@ -530,7 +545,6 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
|
||||
configureEnrollmentStage("", R.raw.udfps_tip_hint_lottie);
|
||||
}
|
||||
break;
|
||||
|
||||
case STAGE_LEFT_EDGE:
|
||||
setHeaderText(R.string.security_settings_udfps_enroll_left_edge_title);
|
||||
if (!mHaveShownUdfpsLeftEdgeLottie && mIllustrationLottie != null) {
|
||||
|
@@ -31,13 +31,12 @@ import static org.mockito.Mockito.anyInt;
|
||||
import static org.mockito.Mockito.anyString;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.ColorStateList;
|
||||
@@ -187,6 +186,38 @@ public class FingerprintEnrollEnrollingTest {
|
||||
verify(mActivity, never()).onCancelEnrollment(anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fingerprintUdfpsOverlayEnrollment_PlaysAllAnimationsAssetsCorrectly() {
|
||||
initializeActivityFor(TYPE_UDFPS_OPTICAL);
|
||||
|
||||
int totalEnrollSteps = 25;
|
||||
int initStageSteps = -1, initStageRemaining = 0;
|
||||
|
||||
when(mSidecar.getEnrollmentSteps()).thenReturn(initStageSteps);
|
||||
when(mSidecar.getEnrollmentRemaining()).thenReturn(initStageRemaining);
|
||||
|
||||
mActivity.onEnrollmentProgressChange(initStageSteps, initStageRemaining);
|
||||
|
||||
when(mSidecar.getEnrollmentSteps()).thenReturn(totalEnrollSteps);
|
||||
|
||||
for (int remaining = totalEnrollSteps; remaining > 0; remaining--) {
|
||||
when(mSidecar.getEnrollmentRemaining()).thenReturn(remaining);
|
||||
mActivity.onEnrollmentProgressChange(totalEnrollSteps, remaining);
|
||||
}
|
||||
|
||||
List<Integer> expectedLottieAssetOrder = List.of(
|
||||
R.raw.udfps_center_hint_lottie,
|
||||
R.raw.udfps_tip_hint_lottie,
|
||||
R.raw.udfps_left_edge_hint_lottie,
|
||||
R.raw.udfps_right_edge_hint_lottie
|
||||
);
|
||||
|
||||
ArgumentCaptor<Integer> lottieAssetCaptor = ArgumentCaptor.forClass(Integer.class);
|
||||
verify(mIllustrationLottie, times(4)).setAnimation(lottieAssetCaptor.capture());
|
||||
List<Integer> observedLottieAssetOrder = lottieAssetCaptor.getAllValues();
|
||||
assertThat(observedLottieAssetOrder).isEqualTo(expectedLottieAssetOrder);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fingerprintSfpsEnroll_PlaysAllAnimationsAssetsCorrectly() {
|
||||
initializeActivityFor(TYPE_POWER_BUTTON);
|
||||
@@ -354,4 +385,4 @@ public class FingerprintEnrollEnrollingTest {
|
||||
return mContext;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user