diff --git a/app/src/main/java/com/tangem/tap/di/domain/CardDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/CardDomainModule.kt index 55fb95de26..789f56e454 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/CardDomainModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/CardDomainModule.kt @@ -2,7 +2,6 @@ package com.tangem.tap.di.domain import com.tangem.domain.card.* import com.tangem.domain.card.repository.CardRepository -import com.tangem.domain.card.repository.CardSdkConfigRepository import com.tangem.domain.card.repository.DerivationsRepository import com.tangem.domain.demo.DemoConfig import com.tangem.domain.demo.IsDemoCardUseCase @@ -22,14 +21,6 @@ import javax.inject.Singleton @InstallIn(SingletonComponent::class) internal object CardDomainModule { - @Provides - @Singleton - fun provideSetAccessCodeRequestPolicyUseCase( - cardSdkConfigRepository: CardSdkConfigRepository, - ): SetAccessCodeRequestPolicyUseCase { - return SetAccessCodeRequestPolicyUseCase(cardSdkConfigRepository = cardSdkConfigRepository) - } - @Provides @Singleton fun provideSetCardWasScannedUseCase(cardRepository: CardRepository): SetCardWasScannedUseCase { diff --git a/app/src/main/java/com/tangem/tap/di/domain/SettingsDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/SettingsDomainModule.kt index 6871b3101c..7dc5634128 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/SettingsDomainModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/SettingsDomainModule.kt @@ -182,12 +182,6 @@ internal object SettingsDomainModule { ): NeverRequestPermissionUseCase { return NeverRequestPermissionUseCase(repository = permissionRepository) } - - @Provides - @Singleton - fun provideShouldSaveAccessCodesUseCase(settingsRepository: SettingsRepository): ShouldSaveAccessCodesUseCase { - return ShouldSaveAccessCodesUseCase(settingsRepository = settingsRepository) - } // endregion @Provides diff --git a/app/src/main/java/com/tangem/tap/features/home/HomeViewModel.kt b/app/src/main/java/com/tangem/tap/features/home/HomeViewModel.kt index 0df4db4753..9827fc5dbe 100644 --- a/app/src/main/java/com/tangem/tap/features/home/HomeViewModel.kt +++ b/app/src/main/java/com/tangem/tap/features/home/HomeViewModel.kt @@ -12,10 +12,10 @@ import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.analytics.models.Basic import com.tangem.core.navigation.url.UrlOpener import com.tangem.domain.card.ScanCardProcessor -import com.tangem.domain.card.SetAccessCodeRequestPolicyUseCase +import com.tangem.domain.card.repository.CardSdkConfigRepository import com.tangem.domain.common.util.cardTypesResolver import com.tangem.domain.models.scan.ScanResponse -import com.tangem.domain.settings.ShouldSaveAccessCodesUseCase +import com.tangem.domain.settings.repositories.SettingsRepository import com.tangem.domain.tokens.TokensAction import com.tangem.domain.wallets.builder.UserWalletBuilder import com.tangem.domain.wallets.usecase.GenerateWalletNameUseCase @@ -39,11 +39,11 @@ import javax.inject.Inject @Suppress("LongParameterList") @HiltViewModel internal class HomeViewModel @Inject constructor( - private val shouldSaveAccessCodesUseCase: ShouldSaveAccessCodesUseCase, - private val setAccessCodeRequestPolicyUseCase: SetAccessCodeRequestPolicyUseCase, private val scanCardProcessor: ScanCardProcessor, private val generateWalletNameUseCase: GenerateWalletNameUseCase, private val saveWalletUseCase: SaveWalletUseCase, + private val cardSdkConfigRepository: CardSdkConfigRepository, + private val settingsRepository: SettingsRepository, private val urlOpener: UrlOpener, private val analyticsEventHandler: AnalyticsEventHandler, ) : ViewModel() { @@ -73,7 +73,7 @@ internal class HomeViewModel @Inject constructor( private fun scanCard() { viewModelScope.launch { - setAccessCodeRequestPolicyUseCase(isBiometricsRequestPolicy = shouldSaveAccessCodesUseCase()) + cardSdkConfigRepository.isBiometricsRequestPolicy = settingsRepository.shouldSaveAccessCodes() scanCardProcessor.scan( analyticsSource = AnalyticsParam.ScreensSources.Intro, diff --git a/data/card/src/main/java/com/tangem/data/card/DefaultCardSdkConfigRepository.kt b/data/card/src/main/java/com/tangem/data/card/DefaultCardSdkConfigRepository.kt index cb9495d708..e4006b694a 100644 --- a/data/card/src/main/java/com/tangem/data/card/DefaultCardSdkConfigRepository.kt +++ b/data/card/src/main/java/com/tangem/data/card/DefaultCardSdkConfigRepository.kt @@ -26,6 +26,16 @@ internal class DefaultCardSdkConfigRepository( override val sdk: TangemSdk get() = cardSdkProvider.sdk + override var isBiometricsRequestPolicy: Boolean + get() = sdk.config.userCodeRequestPolicy is UserCodeRequestPolicy.AlwaysWithBiometrics + set(value) { + sdk.config.userCodeRequestPolicy = if (value) { + UserCodeRequestPolicy.AlwaysWithBiometrics(codeType = UserCodeType.AccessCode) + } else { + UserCodeRequestPolicy.Default + } + } + override fun setAccessCodeRequestPolicy(isBiometricsRequestPolicy: Boolean) { sdk.config.userCodeRequestPolicy = if (isBiometricsRequestPolicy) { UserCodeRequestPolicy.AlwaysWithBiometrics(codeType = UserCodeType.AccessCode) diff --git a/domain/card/src/main/kotlin/com/tangem/domain/card/SetAccessCodeRequestPolicyUseCase.kt b/domain/card/src/main/kotlin/com/tangem/domain/card/SetAccessCodeRequestPolicyUseCase.kt deleted file mode 100644 index e10f624726..0000000000 --- a/domain/card/src/main/kotlin/com/tangem/domain/card/SetAccessCodeRequestPolicyUseCase.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.tangem.domain.card - -import com.tangem.domain.card.repository.CardSdkConfigRepository - -/** - * Set access code request policy by 'isBiometricsRequestPolicy' - * - * @property cardSdkConfigRepository repository for managing of CardSDK config - * -[REDACTED_AUTHOR] - */ -class SetAccessCodeRequestPolicyUseCase(private val cardSdkConfigRepository: CardSdkConfigRepository) { - - operator fun invoke(isBiometricsRequestPolicy: Boolean) { - cardSdkConfigRepository.setAccessCodeRequestPolicy(isBiometricsRequestPolicy) - } -} \ No newline at end of file diff --git a/domain/card/src/main/kotlin/com/tangem/domain/card/repository/CardSdkConfigRepository.kt b/domain/card/src/main/kotlin/com/tangem/domain/card/repository/CardSdkConfigRepository.kt index ef277955c2..fd2f4e3b54 100644 --- a/domain/card/src/main/kotlin/com/tangem/domain/card/repository/CardSdkConfigRepository.kt +++ b/domain/card/src/main/kotlin/com/tangem/domain/card/repository/CardSdkConfigRepository.kt @@ -15,6 +15,9 @@ interface CardSdkConfigRepository { @Deprecated("Use CardSdkConfigRepository's methods instead of this property") val sdk: TangemSdk + /** Allow requesting access codes from biometrically protected storage */ + var isBiometricsRequestPolicy: Boolean + /** Set access code request policy by [isBiometricsRequestPolicy] */ fun setAccessCodeRequestPolicy(isBiometricsRequestPolicy: Boolean) diff --git a/domain/settings/src/main/java/com/tangem/domain/settings/ShouldSaveAccessCodesUseCase.kt b/domain/settings/src/main/java/com/tangem/domain/settings/ShouldSaveAccessCodesUseCase.kt deleted file mode 100644 index b68ede4106..0000000000 --- a/domain/settings/src/main/java/com/tangem/domain/settings/ShouldSaveAccessCodesUseCase.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.tangem.domain.settings - -import com.tangem.domain.settings.repositories.SettingsRepository - -class ShouldSaveAccessCodesUseCase(private val settingsRepository: SettingsRepository) { - - suspend operator fun invoke(): Boolean = settingsRepository.shouldSaveAccessCodes() -} \ No newline at end of file