Merge "[BiometricsV2] fix enrolling rotate failed" into udc-dev

This commit is contained in:
Treehugger Robot
2023-04-18 04:56:12 +00:00
committed by Android (Google) Code Review
4 changed files with 58 additions and 8 deletions

View File

@@ -219,8 +219,14 @@ public class FingerprintEnrollEnrollingSfpsFragment extends Fragment {
super.onStart(); super.onStart();
startEnrollment(); startEnrollment();
updateProgress(false /* animate */, mProgressViewModel.getProgressLiveData().getValue()); updateProgress(false /* animate */, mProgressViewModel.getProgressLiveData().getValue());
final EnrollmentStatusMessage msg = mProgressViewModel.getHelpMessageLiveData().getValue();
if (msg != null) {
onEnrollmentHelp(msg);
} else {
clearError();
updateTitleAndDescription(); updateTitleAndDescription();
} }
}
@Override @Override
public void onStop() { public void onStop() {
@@ -373,7 +379,7 @@ public class FingerprintEnrollEnrollingSfpsFragment extends Fragment {
mView.setHeaderText(error); mView.setHeaderText(error);
mView.getHeaderTextView().setContentDescription(error); mView.getHeaderTextView().setContentDescription(error);
new GlifLayoutHelper(getActivity(), mView).setDescriptionText(""); new GlifLayoutHelper(getActivity(), mView).setDescriptionText("");
if (!mHelpAnimation.isRunning()) { if (isResumed() && !mHelpAnimation.isRunning()) {
mHelpAnimation.start(); mHelpAnimation.start();
} }
applySfpsErrorDynamicColors(true); applySfpsErrorDynamicColors(true);

View File

@@ -105,7 +105,7 @@ public class FingerprintEnrollEnrollingUdfpsFragment extends Fragment {
}; };
private final Observer<EnrollmentStatusMessage> mHelpMessageObserver = helpMessage -> { private final Observer<EnrollmentStatusMessage> mHelpMessageObserver = helpMessage -> {
if (helpMessage != null) { if (helpMessage != null) {
onEnrollmentHelp(helpMessage.getStr()); onEnrollmentHelp(helpMessage);
} }
}; };
private final Observer<EnrollmentStatusMessage> mErrorMessageObserver = errorMessage -> { private final Observer<EnrollmentStatusMessage> mErrorMessageObserver = errorMessage -> {
@@ -198,8 +198,13 @@ public class FingerprintEnrollEnrollingUdfpsFragment extends Fragment {
super.onStart(); super.onStart();
startEnrollment(); startEnrollment();
updateProgress(false /* animate */, mProgressViewModel.getProgressLiveData().getValue()); updateProgress(false /* animate */, mProgressViewModel.getProgressLiveData().getValue());
final EnrollmentStatusMessage msg = mProgressViewModel.getHelpMessageLiveData().getValue();
if (msg != null) {
onEnrollmentHelp(msg);
} else {
updateTitleAndDescription(); updateTitleAndDescription();
} }
}
@Override @Override
public void onResume() { public void onResume() {
@@ -484,13 +489,13 @@ public class FingerprintEnrollEnrollingUdfpsFragment extends Fragment {
} }
private void onEnrollmentHelp(CharSequence helpString) { private void onEnrollmentHelp(@NonNull EnrollmentStatusMessage helpMessage) {
if (!TextUtils.isEmpty(helpString)) { final CharSequence helpStr = helpMessage.getStr();
showError(helpString); if (!TextUtils.isEmpty(helpStr)) {
showError(helpStr);
mUdfpsEnrollView.onEnrollmentHelp(); mUdfpsEnrollView.onEnrollmentHelp();
} }
} }
private void onEnrollmentError(@NonNull EnrollmentStatusMessage errorMessage) { private void onEnrollmentError(@NonNull EnrollmentStatusMessage errorMessage) {
removeEnrollmentObservers(); removeEnrollmentObservers();

View File

@@ -77,6 +77,7 @@ public class FingerprintEnrollProgressViewModel extends AndroidViewModel {
Log.d(TAG, "onEnrollmentProgress(" + remaining + "), steps: " + currentSteps Log.d(TAG, "onEnrollmentProgress(" + remaining + "), steps: " + currentSteps
+ ", post progress as " + progress); + ", post progress as " + progress);
} }
mHelpMessageLiveData.setValue(null);
mProgressLiveData.postValue(progress); mProgressLiveData.postValue(progress);
} }

View File

@@ -224,6 +224,44 @@ public class FingerprintEnrollProgressViewModelTest {
assertThat(progress.getRemaining()).isEqualTo(0); assertThat(progress.getRemaining()).isEqualTo(0);
} }
@Test
public void testProgressUpdateClearHelpMessage() {
// Start enrollment
mViewModel.setToken(new byte[] { 1, 2, 3 });
final boolean ret = mViewModel.startEnrollment(ENROLL_ENROLL);
assertThat(ret).isTrue();
assertThat(mCallbackWrapper.mValue).isNotNull();
final LiveData<EnrollmentProgress> progressLiveData = mViewModel.getProgressLiveData();
final LiveData<EnrollmentStatusMessage> helpMsgLiveData =
mViewModel.getHelpMessageLiveData();
// Update first progress
mCallbackWrapper.mValue.onEnrollmentProgress(25);
EnrollmentProgress progress = progressLiveData.getValue();
assertThat(progress).isNotNull();
assertThat(progress.getSteps()).isEqualTo(25);
assertThat(progress.getRemaining()).isEqualTo(25);
// Update help message
final int testHelpMsgId = 3;
final String testHelpString = "Test Help String";
mCallbackWrapper.mValue.onEnrollmentHelp(testHelpMsgId, testHelpString);
final EnrollmentStatusMessage helpMsg = helpMsgLiveData.getValue();
assertThat(helpMsg).isNotNull();
assertThat(helpMsg.getMsgId()).isEqualTo(testHelpMsgId);
assertThat(helpMsg.getStr().toString()).isEqualTo(testHelpString);
// Update second progress
mCallbackWrapper.mValue.onEnrollmentProgress(20);
progress = progressLiveData.getValue();
assertThat(progress).isNotNull();
assertThat(progress.getSteps()).isEqualTo(25);
assertThat(progress.getRemaining()).isEqualTo(20);
// Help message shall be set to null
assertThat(helpMsgLiveData.getValue()).isNull();
}
@Test @Test
public void testProgressUpdateWithMessageDisplayController() { public void testProgressUpdateWithMessageDisplayController() {
// Enable MessageDisplayController and mock handler for it // Enable MessageDisplayController and mock handler for it