Skip to content

Commit c8b30d5

Browse files
committed
fix(biometric): ensure nextStep is called after biometric setup and allow disable without unlock
1 parent a167e22 commit c8b30d5

2 files changed

Lines changed: 13 additions & 21 deletions

File tree

app/src/main/java/jamgmilk/fuwagit/ui/screen/onboarding/OnboardingViewModel.kt

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -89,25 +89,23 @@ class OnboardingViewModel @Inject constructor(
8989
_uiState.update { it.copy(enableBiometric = enable) }
9090
}
9191

92-
fun enableBiometricIfNeeded(
92+
private suspend fun enableBiometricIfNeeded(
9393
activity: FragmentActivity,
9494
title: String,
9595
subtitle: String,
9696
negativeButtonText: String
9797
) {
9898
if (!_uiState.value.enableBiometric) return
9999

100-
viewModelScope.launch {
101-
credentialFacade.enableBiometric(
102-
activity = activity,
103-
title = title,
104-
subtitle = subtitle,
105-
negativeButtonText = negativeButtonText
106-
).onSuccess {
107-
_uiState.update { it.copy(isBiometricSetupComplete = true) }
108-
}.onError { e ->
109-
_uiState.update { it.copy(biometricSetupError = e.message) }
110-
}
100+
credentialFacade.enableBiometric(
101+
activity = activity,
102+
title = title,
103+
subtitle = subtitle,
104+
negativeButtonText = negativeButtonText
105+
).onSuccess {
106+
_uiState.update { it.copy(isBiometricSetupComplete = true) }
107+
}.onError { e ->
108+
_uiState.update { it.copy(biometricSetupError = e.message) }
111109
}
112110
}
113111

@@ -147,9 +145,8 @@ class OnboardingViewModel @Inject constructor(
147145
_uiState.update { it.copy(isSettingPassword = false) }
148146
if (state.enableBiometric) {
149147
enableBiometricIfNeeded(activity, biometricTitle, biometricSubtitle, biometricNegativeButtonText)
150-
} else {
151-
nextStep()
152148
}
149+
nextStep()
153150
}
154151
.onError { e ->
155152
_uiState.update { it.copy(isSettingPassword = false, passwordError = e.message) }

app/src/main/java/jamgmilk/fuwagit/ui/screen/settings/SettingsScreen.kt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -279,13 +279,8 @@ fun SettingsScreen(
279279
}
280280
}
281281
} else {
282-
if (!credentialsUiState.isDecryptionUnlocked && credentialsUiState.isBiometricEnabled) {
283-
if (BuildConfig.DEBUG) Log.d(TAG, "Already enabled but locked, showing unlock dialog to unlock vault")
284-
credentialsViewModel.showUnlockDialog()
285-
} else {
286-
if (BuildConfig.DEBUG) Log.d(TAG, "Disabling biometric")
287-
credentialsViewModel.disableBiometric()
288-
}
282+
if (BuildConfig.DEBUG) Log.d(TAG, "Disabling biometric")
283+
credentialsViewModel.disableBiometric()
289284
}
290285
},
291286
autoLockTimeout = settingsUiState.autoLockTimeout,

0 commit comments

Comments
 (0)