Fix UDFPS enroll when help received on first step

Fixes an issue where the UDFPS enroll progress drawable would complete
if an error resulted in a help message being sent on the first
enrollment step. Instead, the progress bar will now remain empty in this
case.

Test: Manual

Bug: 201364678
Bug: 201602528
Change-Id: I7df617287e448be3c40443b2fe0f1359b6ab2b82
This commit is contained in:
Curtis Belmonte
2021-10-27 10:41:27 -07:00
parent fd48bc503c
commit 6e05ff4759

View File

@@ -40,7 +40,7 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable {
@Nullable private UdfpsEnrollHelper mEnrollHelper;
@NonNull private List<UdfpsEnrollProgressBarSegment> mSegments = new ArrayList<>();
private int mTotalSteps = 1;
private int mTotalSteps = 0;
private int mProgressSteps = 0;
private boolean mIsShowingHelp = false;
@@ -67,22 +67,19 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable {
void onEnrollmentProgress(int remaining, int totalSteps) {
mTotalSteps = totalSteps;
updateState(getProgressSteps(remaining, totalSteps), false /* isShowingHelp */);
// Show some progress for the initial touch.
updateState(Math.max(1, totalSteps - remaining), false /* isShowingHelp */);
}
void onEnrollmentHelp(int remaining, int totalSteps) {
updateState(getProgressSteps(remaining, totalSteps), true /* isShowingHelp */);
updateState(Math.max(0, totalSteps - remaining), true /* isShowingHelp */);
}
void onLastStepAcquired() {
updateState(mTotalSteps, false /* isShowingHelp */);
}
private static int getProgressSteps(int remaining, int totalSteps) {
// Show some progress for the initial touch.
return Math.max(1, totalSteps - remaining);
}
private void updateState(int progressSteps, boolean isShowingHelp) {
updateProgress(progressSteps);
updateFillColor(isShowingHelp);