Updated on 2026-08-14

This commit is contained in:
Tangem 2025-01-31 13:31:12 +04:00
parent 7d160ba11e
commit 8cf3d20187
7 changed files with 18 additions and 45 deletions

View file

@ -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 {

View file

@ -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

View file

@ -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,

View file

@ -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)

View file

@ -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)
}
}

View file

@ -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)

View file

@ -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()
}