From e80c3561847cfd273a9db98d956a22fc6c7c38b6 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 2 Jun 2025 19:48:42 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/di/domain/OnrampDomainModule.kt | 18 ------------- .../data/onramp/DefaultOnrampRepository.kt | 11 -------- .../GetOnrampSelectedPaymentMethodUseCase.kt | 26 ------------------- .../onramp/OnrampSaveSelectedPaymentMethod.kt | 18 ------------- .../onramp/repositories/OnrampRepository.kt | 2 -- .../providers/model/SelectProviderModel.kt | 23 ++++------------ 6 files changed, 5 insertions(+), 93 deletions(-) delete mode 100644 domain/onramp/src/main/java/com/tangem/domain/onramp/GetOnrampSelectedPaymentMethodUseCase.kt delete mode 100644 domain/onramp/src/main/java/com/tangem/domain/onramp/OnrampSaveSelectedPaymentMethod.kt diff --git a/app/src/main/java/com/tangem/tap/di/domain/OnrampDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/OnrampDomainModule.kt index 77bd0c1526..335ce4196c 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/OnrampDomainModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/OnrampDomainModule.kt @@ -168,15 +168,6 @@ internal object OnrampDomainModule { ) } - @Provides - @Singleton - fun provideGetOnrampSelectedPaymentMethodUseCase( - onrampRepository: OnrampRepository, - onrampErrorResolver: OnrampErrorResolver, - ): GetOnrampSelectedPaymentMethodUseCase { - return GetOnrampSelectedPaymentMethodUseCase(onrampRepository, onrampErrorResolver) - } - @Provides @Singleton fun provideGetOnrampProviderWithQuoteUseCase( @@ -186,15 +177,6 @@ internal object OnrampDomainModule { return GetOnrampProviderWithQuoteUseCase(onrampRepository, onrampErrorResolver) } - @Provides - @Singleton - fun provideOnrampSaveSelectedPaymentMethod( - onrampRepository: OnrampRepository, - onrampErrorResolver: OnrampErrorResolver, - ): OnrampSaveSelectedPaymentMethod { - return OnrampSaveSelectedPaymentMethod(onrampRepository, onrampErrorResolver) - } - @Provides @Singleton fun provideOnrampFetchPairsUseCase( diff --git a/data/onramp/src/main/java/com/tangem/data/onramp/DefaultOnrampRepository.kt b/data/onramp/src/main/java/com/tangem/data/onramp/DefaultOnrampRepository.kt index 0260a3f859..b3bbb6af68 100644 --- a/data/onramp/src/main/java/com/tangem/data/onramp/DefaultOnrampRepository.kt +++ b/data/onramp/src/main/java/com/tangem/data/onramp/DefaultOnrampRepository.kt @@ -409,17 +409,6 @@ internal class DefaultOnrampRepository( return quotes.mapTo(hashSetOf(), OnrampQuote::paymentMethod) } - override suspend fun saveSelectedPaymentMethod(paymentMethod: OnrampPaymentMethod) { - val dto = paymentMethodsConverter.convertBack(paymentMethod) - paymentMethodsStore.store(SELECTED_PAYMENT_METHOD_KEY, listOf(dto)) - } - - override fun getSelectedPaymentMethod(): Flow { - return paymentMethodsStore - .get(SELECTED_PAYMENT_METHOD_KEY) - .mapNotNull { paymentMethods -> paymentMethods.firstOrNull()?.let(paymentMethodsConverter::convert) } - } - override suspend fun clearCache() = withContext(NonCancellable) { paymentMethodsStore.clear() pairsStore.clear() diff --git a/domain/onramp/src/main/java/com/tangem/domain/onramp/GetOnrampSelectedPaymentMethodUseCase.kt b/domain/onramp/src/main/java/com/tangem/domain/onramp/GetOnrampSelectedPaymentMethodUseCase.kt deleted file mode 100644 index 0548228e5e..0000000000 --- a/domain/onramp/src/main/java/com/tangem/domain/onramp/GetOnrampSelectedPaymentMethodUseCase.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.tangem.domain.onramp - -import arrow.core.Either -import arrow.core.left -import arrow.core.right -import com.tangem.domain.core.utils.EitherFlow -import com.tangem.domain.onramp.model.OnrampPaymentMethod -import com.tangem.domain.onramp.model.error.OnrampError -import com.tangem.domain.onramp.repositories.OnrampErrorResolver -import com.tangem.domain.onramp.repositories.OnrampRepository -import kotlinx.coroutines.flow.catch -import kotlinx.coroutines.flow.map - -class GetOnrampSelectedPaymentMethodUseCase( - private val repository: OnrampRepository, - private val errorResolver: OnrampErrorResolver, -) { - - operator fun invoke(): EitherFlow { - return repository.getSelectedPaymentMethod() - .map> { it.right() } - .catch { - emit(errorResolver.resolve(it).left()) - } - } -} \ No newline at end of file diff --git a/domain/onramp/src/main/java/com/tangem/domain/onramp/OnrampSaveSelectedPaymentMethod.kt b/domain/onramp/src/main/java/com/tangem/domain/onramp/OnrampSaveSelectedPaymentMethod.kt deleted file mode 100644 index d7200a0b7d..0000000000 --- a/domain/onramp/src/main/java/com/tangem/domain/onramp/OnrampSaveSelectedPaymentMethod.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.tangem.domain.onramp - -import arrow.core.Either -import com.tangem.domain.onramp.model.OnrampPaymentMethod -import com.tangem.domain.onramp.model.error.OnrampError -import com.tangem.domain.onramp.repositories.OnrampErrorResolver -import com.tangem.domain.onramp.repositories.OnrampRepository - -class OnrampSaveSelectedPaymentMethod( - private val repository: OnrampRepository, - private val errorResolver: OnrampErrorResolver, -) { - - suspend operator fun invoke(paymentMethod: OnrampPaymentMethod): Either { - return Either.catch { repository.saveSelectedPaymentMethod(paymentMethod) } - .mapLeft(errorResolver::resolve) - } -} \ No newline at end of file diff --git a/domain/onramp/src/main/java/com/tangem/domain/onramp/repositories/OnrampRepository.kt b/domain/onramp/src/main/java/com/tangem/domain/onramp/repositories/OnrampRepository.kt index 4e1dc066ae..7679043f1c 100644 --- a/domain/onramp/src/main/java/com/tangem/domain/onramp/repositories/OnrampRepository.kt +++ b/domain/onramp/src/main/java/com/tangem/domain/onramp/repositories/OnrampRepository.kt @@ -41,8 +41,6 @@ interface OnrampRepository { suspend fun getDefaultCountrySync(): OnrampCountry? fun getDefaultCountry(): Flow suspend fun getAvailablePaymentMethods(): Set - suspend fun saveSelectedPaymentMethod(paymentMethod: OnrampPaymentMethod) - fun getSelectedPaymentMethod(): Flow fun getQuotes(): Flow> suspend fun getQuotesSync(): List? suspend fun clearCache() diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/providers/model/SelectProviderModel.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/providers/model/SelectProviderModel.kt index 0cc48e4657..126eedcb3a 100644 --- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/providers/model/SelectProviderModel.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/providers/model/SelectProviderModel.kt @@ -15,8 +15,6 @@ import com.tangem.core.ui.format.bigdecimal.format import com.tangem.core.ui.format.bigdecimal.percent import com.tangem.domain.onramp.GetOnrampPaymentMethodsUseCase import com.tangem.domain.onramp.GetOnrampProviderWithQuoteUseCase -import com.tangem.domain.onramp.GetOnrampSelectedPaymentMethodUseCase -import com.tangem.domain.onramp.OnrampSaveSelectedPaymentMethod import com.tangem.domain.onramp.analytics.OnrampAnalyticsEvent import com.tangem.domain.onramp.model.OnrampPaymentMethod import com.tangem.domain.onramp.model.OnrampProviderWithQuote @@ -36,7 +34,10 @@ import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toPersistentList -import kotlinx.coroutines.flow.* +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import timber.log.Timber import java.math.BigDecimal @@ -49,9 +50,7 @@ internal class SelectProviderModel @Inject constructor( override val dispatchers: CoroutineDispatcherProvider, private val analyticsEventHandler: AnalyticsEventHandler, private val getOnrampPaymentMethodsUseCase: GetOnrampPaymentMethodsUseCase, - private val getOnrampSelectedPaymentMethodUseCase: GetOnrampSelectedPaymentMethodUseCase, private val getOnrampProviderWithQuoteUseCase: GetOnrampProviderWithQuoteUseCase, - private val saveSelectedPaymentMethod: OnrampSaveSelectedPaymentMethod, getUserCountryUseCase: GetUserCountryUseCase, paramsContainer: ParamsContainer, ) : Model() { @@ -70,7 +69,6 @@ internal class SelectProviderModel @Inject constructor( analyticsEventHandler.send(OnrampAnalyticsEvent.ProvidersScreenOpened) getPaymentMethods() getProviders(params.selectedPaymentMethod) - subscribeToPaymentMethodUpdates() } private fun getPaymentMethods() { @@ -104,17 +102,6 @@ internal class SelectProviderModel @Inject constructor( } } - private fun subscribeToPaymentMethodUpdates() { - getOnrampSelectedPaymentMethodUseCase.invoke() - .onEach { maybePaymentMethod -> - maybePaymentMethod.fold( - ifLeft = ::sendOnrampErrorEvent, - ifRight = ::getProviders, - ) - } - .launchIn(modelScope) - } - private fun getProviders(paymentMethod: OnrampPaymentMethod) { modelScope.launch { getOnrampProviderWithQuoteUseCase.invoke(paymentMethod) @@ -176,7 +163,6 @@ internal class SelectProviderModel @Inject constructor( val firstProvider = methodContainer.providers.firstOrNull() analyticsEventHandler.send(OnrampAnalyticsEvent.OnPaymentMethodChosen(paymentMethod = paymentMethod.name)) modelScope.launch { - saveSelectedPaymentMethod.invoke(paymentMethod) _state.update { state -> state.copy( selectedPaymentMethod = state.selectedPaymentMethod.copy( @@ -184,6 +170,7 @@ internal class SelectProviderModel @Inject constructor( ), ) } + getProviders(paymentMethod) if (firstProvider is ProviderListItemUM.Available) { onProviderSelected(firstProvider.providerResult, firstProvider.isBestRate) }