Updated on 2026-08-14

This commit is contained in:
Tangem 2026-04-24 14:00:32 +04:00
parent 4fa5989289
commit 2d0bc9d9e6
12 changed files with 141 additions and 74 deletions

View file

@ -1,12 +1,18 @@
package com.tangem.tap.di.data
import android.content.Context
import com.tangem.data.card.sdk.CardSdkOwner
import com.tangem.data.card.sdk.CardSdkProvider
import com.tangem.domain.card.repository.CardSdkConfigRepository
import com.tangem.operations.attestation.CardArtworksProvider
import com.tangem.tap.data.DefaultCardSdkProvider
import dagger.Binds
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import java.io.File
import javax.inject.Singleton
@Module
@ -20,4 +26,22 @@ internal interface CardSdkModule {
@Binds
@Singleton
fun providerCardSdkLifecycleObserver(defaultCardSdkProvider: DefaultCardSdkProvider): CardSdkOwner
companion object {
@Provides
@Singleton
fun provideCardArtworksProvider(
sdkRepository: CardSdkConfigRepository,
@ApplicationContext context: Context,
): CardArtworksProvider {
return CardArtworksProvider(
tangemApiBaseUrlProvider = { sdkRepository.sdk.config.tangemApiBaseUrl },
artworksDirectory = File(
context.getExternalFilesDir(null) ?: context.filesDir,
"card_artworks",
).apply { mkdirs() },
)
}
}
}

View file

@ -11,7 +11,6 @@ import com.tangem.domain.walletmanager.WalletManagersFacade
import com.tangem.domain.wallets.derivations.DerivationsRepository
import com.tangem.domain.wallets.usecase.*
import com.tangem.sdk.api.TangemSdkManager
import com.tangem.tap.domain.card.DefaultDeleteSavedAccessCodesUseCase
import com.tangem.tap.domain.card.DefaultResetCardUseCase
import dagger.Module
import dagger.Provides
@ -56,7 +55,7 @@ internal object CardDomainModule {
@Provides
@Singleton
fun provideDeleteSavedAccessCodesUseCase(tangemSdkManager: TangemSdkManager): DeleteSavedAccessCodesUseCase {
return DefaultDeleteSavedAccessCodesUseCase(tangemSdkManager)
return DeleteSavedAccessCodesUseCase(tangemSdkManager)
}
@Provides

View file

@ -1,22 +0,0 @@
package com.tangem.tap.domain.card
import arrow.core.Either
import arrow.core.left
import arrow.core.right
import com.tangem.common.doOnFailure
import com.tangem.common.doOnSuccess
import com.tangem.domain.card.DeleteSavedAccessCodesUseCase
import com.tangem.sdk.api.TangemSdkManager
internal class DefaultDeleteSavedAccessCodesUseCase(
private val tangemSdkManager: TangemSdkManager,
) : DeleteSavedAccessCodesUseCase {
override suspend fun invoke(cardId: String): Either<Throwable, Unit> {
tangemSdkManager.deleteSavedUserCodes(setOf(cardId))
.doOnFailure { return it.left() }
.doOnSuccess { return Unit.right() }
return Unit.right()
}
}

View file

@ -36,9 +36,9 @@ import com.tangem.tap.domain.userWalletList.utils.*
import com.tangem.utils.Provider
import com.tangem.utils.ProviderSuspend
import com.tangem.utils.coroutines.runSuspendCatching
import dagger.Lazy
import com.tangem.utils.extensions.addOrReplace
import com.tangem.utils.extensions.indexOfFirstOrNull
import dagger.Lazy
import kotlinx.coroutines.NonCancellable
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.update
@ -96,8 +96,8 @@ internal class DefaultUserWalletsListRepository(
?: loadedWallets.firstOrNull()?.also {
selectedUserWalletRepository.set(it.walletId)
}
userWallets.value = loadedWallets
setSelectedUserWallet(initialSelection)
userWallets.value = loadedWallets
}
}
}
@ -235,7 +235,6 @@ internal class DefaultUserWalletsListRepository(
)
}
userWallets.value = updatedWallets
if (currentSelected != null) {
if (newSelected == null) {
onAllWalletsDeleted()
@ -243,6 +242,7 @@ internal class DefaultUserWalletsListRepository(
selectedUserWalletRepository.set(newSelected?.walletId)
setSelectedUserWallet(newSelected)
}
userWallets.value = updatedWallets
}
@Suppress("CyclomaticComplexMethod", "LongMethod")

View file

@ -197,6 +197,9 @@ internal class ResetCardModel @Inject constructor(
checkRemainingBackupCards()
}
.onLeft {
TangemLogger.e("Failed to reset card: $it")
}
}
}