From 6474b177263767e93cc4da23b71a9618d16d4c29 Mon Sep 17 00:00:00 2001 From: Patrick Honkonen Date: Tue, 11 Feb 2025 17:26:19 -0500 Subject: [PATCH] Check for GetCreds request when dismissing FIDO2 dialog --- .../fido2/model/Fido2GetCredentialsResult.kt | 5 ++++- .../feature/itemlisting/VaultItemListingViewModel.kt | 12 +++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/x8bit/bitwarden/data/autofill/fido2/model/Fido2GetCredentialsResult.kt b/app/src/main/java/com/x8bit/bitwarden/data/autofill/fido2/model/Fido2GetCredentialsResult.kt index 0751f83be4a..32d525f90bc 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/autofill/fido2/model/Fido2GetCredentialsResult.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/autofill/fido2/model/Fido2GetCredentialsResult.kt @@ -2,6 +2,7 @@ package com.x8bit.bitwarden.data.autofill.fido2.model import androidx.credentials.provider.BeginGetPublicKeyCredentialOption import com.bitwarden.fido.Fido2CredentialAutofillView +import com.x8bit.bitwarden.ui.platform.base.util.Text /** * Represents the result of a FIDO 2 Get Credentials request. @@ -24,5 +25,7 @@ sealed class Fido2GetCredentialsResult { /** * Indicates an error was encountered when querying for matching credentials. */ - data object Error : Fido2GetCredentialsResult() + data class Error( + val message: Text, + ) : Fido2GetCredentialsResult() } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingViewModel.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingViewModel.kt index eeb993be651..3e5f4004967 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingViewModel.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingViewModel.kt @@ -886,6 +886,16 @@ class VaultItemListingViewModel @Inject constructor( ) } + state.fido2GetCredentialsRequest != null -> { + sendEvent( + VaultItemListingEvent.CompleteFido2GetCredentialsRequest( + result = Fido2GetCredentialsResult.Error( + message = action.message, + ), + ), + ) + } + else -> { Timber .tag("PASSKEY") @@ -894,7 +904,7 @@ class VaultItemListingViewModel @Inject constructor( it.copy( dialogState = VaultItemListingState.DialogState.Error( title = R.string.an_error_has_occurred.asText(), - message = R.string.generic_error_message.asText(), + message = action.message, ), ) }