# LoginViewModel

Element | Missed Instructions | Cov. | Missed Branches | Cov. | Missed | Cxty | Missed | Lines | Missed | Methods
Total | 1.044 of 1.044 | 0 % | 61 of 61 | 0 % | 78 | 78 | 189 | 189 | 46 | 46
LoginViewModel(Application, PinCodeMode, KeyboardViewModel) |  | 0 % |  | n/a | 1 | 1 | 30 | 30 | 1 | 1
static {...} |  | 0 % |  | n/a | 1 | 1 | 8 | 8 | 1 | 1
tryHandleInitialBiometric() |  | 0 % |  | 0 % | 10 | 10 | 16 | 16 | 1 | 1
getKeyStoreCipher() |  | 0 % |  | 0 % | 4 | 4 | 13 | 13 | 1 | 1
onBiometricSuccess(BiometricPrompt.CryptoObject) |  | 0 % |  | 0 % | 7 | 7 | 12 | 12 | 1 | 1
storeLongSecretViaBiometric(BiometricPrompt.CryptoObject, KeyModel) |  | 0 % |  | 0 % | 4 | 4 | 14 | 14 | 1 | 1
tryTriggerBiometricPrompt() |  | 0 % |  | 0 % | 4 | 4 | 7 | 7 | 1 | 1
pinObserver$lambda-0(LoginViewModel, String) |  | 0 % |  | 0 % | 6 | 6 | 8 | 8 | 1 | 1
biometricKeystoreIsValid() |  | 0 % |  | n/a | 1 | 1 | 7 | 7 | 1 | 1
forceBiometricFlow() |  | 0 % |  | 0 % | 3 | 3 | 6 | 6 | 1 | 1
noInternetConnection() |  | 0 % |  | n/a | 1 | 1 | 9 | 9 | 1 | 1
loginExpired() |  | 0 % |  | n/a | 1 | 1 | 10 | 10 | 1 | 1
keyLocked() |  | 0 % |  | n/a | 1 | 1 | 10 | 10 | 1 | 1
onBiometricsError(BiometricError) |  | 0 % |  | 0 % | 2 | 2 | 4 | 4 | 1 | 1
verifyPin(String) |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
handleLoginSuccess(KeyModel) |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
tryLoginWithNewPin(String) |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
handleCreateLoginSuccess(KeyModel) |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
authenticateWithBiometric(BiometricPrompt.CryptoObject) |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
handleLoginError(Throwable) |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
handleLoginFailure(Throwable) |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
resetUi() |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
continueLogin() |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
triggerSuccessfulAuthNavigation() |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
clearAuthAndForceNewRegistration() |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
getPrefsHelper() |  | 0 % |  | n/a | 1 | 1 | 1 | 1 | 1 | 1
getAuthRepo() |  | 0 % |  | n/a | 1 | 1 | 1 | 1 | 1 | 1
getTriggerBiometricPrompt() |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
getPinCodeMode() |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
getForceNavigateToRegistration() |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
getDialogError() |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
getLoginErrorEvent() |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
getLoginSuccessEvent() |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
getDoingLogin() |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
onCleared() |  | 0 % |  | n/a | 1 | 1 | 3 | 3 | 1 | 1
setPinMode(PinCodeMode) |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
forceRelogin() |  | 0 % |  | n/a | 1 | 1 | 3 | 3 | 1 | 1
loginExpired$lambda-3(LoginViewModel, DialogInterface, int) |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
keyLocked$lambda-4(LoginViewModel, DialogInterface, int) |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
defaultOnErrorDismissListener$lambda-5(LoginViewModel, DialogInterface) |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
getBasicInfoToast() |  | 0 % |  | n/a | 1 | 1 | 1 | 1 | 1 | 1
goToRegistration() |  | 0 % |  | n/a | 1 | 1 | 2 | 2 | 1 | 1
handleNormalPinLoginError(Throwable) |  | 0 % |  | n/a | 1 | 1 | 1 | 1 | 1 | 1
getTitleTextModel() |  | 0 % |  | n/a | 1 | 1 | 1 | 1 | 1 | 1
getDescriptionTextModel() |  | 0 % |  | n/a | 1 | 1 | 1 | 1 | 1 | 1
getBiometricPromptCallback() |  | 0 % |  | n/a | 1 | 1 | 1 | 1 | 1 | 1