diff --git a/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/BiometricFailReasonConverter.kt b/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/BiometricFailReasonConverter.kt index 9e5eaa4bcb..89013b048e 100644 --- a/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/BiometricFailReasonConverter.kt +++ b/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/BiometricFailReasonConverter.kt @@ -1,6 +1,7 @@ package com.tangem.tap.domain.userWalletList.repository.implementation import com.tangem.common.core.TangemError +import com.tangem.common.core.TangemSdkError import com.tangem.core.analytics.models.Basic import com.tangem.domain.wallets.legacy.UserWalletsListError import com.tangem.utils.converter.Converter @@ -8,9 +9,19 @@ import com.tangem.utils.converter.Converter object BiometricFailReasonConverter : Converter { override fun convert(value: TangemError): Basic.BiometryFailed.BiometricFailReason { + // 1. Try handle TangemSdkError cases first if error has not been mapped + when (value) { + is TangemSdkError.AuthenticationCanceled -> + return Basic.BiometryFailed.BiometricFailReason.AuthenticationCancelled + is TangemSdkError.AuthenticationAlreadyInProgress -> + return Basic.BiometryFailed.BiometricFailReason.AuthenticationAlreadyInProgress + } + + // 2. For other errors, check if they are of type UserWalletsListError if (value !is UserWalletsListError) { return Basic.BiometryFailed.BiometricFailReason.Other(value.customMessage) } + // 3. Map UserWalletsListError to BiometricFailReason return when (value) { UserWalletsListError.AllKeysInvalidated -> Basic.BiometryFailed.BiometricFailReason.AllKeysInvalidated diff --git a/core/analytics/models/src/main/java/com/tangem/core/analytics/models/Basic.kt b/core/analytics/models/src/main/java/com/tangem/core/analytics/models/Basic.kt index d919ecafc1..110391778a 100644 --- a/core/analytics/models/src/main/java/com/tangem/core/analytics/models/Basic.kt +++ b/core/analytics/models/src/main/java/com/tangem/core/analytics/models/Basic.kt @@ -94,6 +94,8 @@ sealed class Basic( data object AuthenticationLockoutPermanent : BiometricFailReason("BiometricsAuthenticationLockoutPermanent") data object BiometricsAuthenticationDisabled : BiometricFailReason("BiometricsAuthenticationDisabled") data object AllKeysInvalidated : BiometricFailReason("AllKeysInvalidated") + data object AuthenticationCancelled : BiometricFailReason("AuthenticationCancelled") + data object AuthenticationAlreadyInProgress : BiometricFailReason("AuthenticationAlreadyInProgress") data class Other(val reason: String) : BiometricFailReason(reason) } }