[BiometricsV2] fix enrolling rotate failed

Clean help message during progress changed, and reload help message from
ViewModel in onStart of enrolling page.

Bug: 275513362
Test: atest FingerprintEnrollProgressViewModelTest
Test: enable biometrics v2, and manully rotate screen when help msg
      is shown, and check help msg is kept after screen rotation.
Change-Id: I44220050806038ee62750f8945b8ba8f8bb9c282
This commit is contained in:
Milton Wu
2023-04-12 14:41:35 +08:00
parent a42119c6a8
commit 562bbc8193
4 changed files with 58 additions and 8 deletions

View File

@@ -224,6 +224,44 @@ public class FingerprintEnrollProgressViewModelTest {
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
public void testProgressUpdateWithMessageDisplayController() {
// Enable MessageDisplayController and mock handler for it