From c8006edddaa739025bea130a0f90c4922cd29774 Mon Sep 17 00:00:00 2001 From: Tangem Date: Sun, 15 Oct 2023 11:19:36 +0800 Subject: [PATCH] Updated on 2026-08-14 --- ...efaultChangeCardAnalyticsContextUseCase.kt | 13 ++++++++++++ .../tap/di/analytics/AnalyticsModule.kt | 20 +++++++++++++++++++ .../ChangeCardAnalyticsContextUseCase.kt | 8 ++++++++ .../wallet/viewmodels/WalletViewModel.kt | 4 ++++ 4 files changed, 45 insertions(+) create mode 100644 app/src/main/java/com/tangem/tap/common/analytics/DefaultChangeCardAnalyticsContextUseCase.kt create mode 100644 app/src/main/java/com/tangem/tap/di/analytics/AnalyticsModule.kt create mode 100644 domain/legacy/src/main/java/com/tangem/domain/analytics/ChangeCardAnalyticsContextUseCase.kt diff --git a/app/src/main/java/com/tangem/tap/common/analytics/DefaultChangeCardAnalyticsContextUseCase.kt b/app/src/main/java/com/tangem/tap/common/analytics/DefaultChangeCardAnalyticsContextUseCase.kt new file mode 100644 index 0000000000..27f55538da --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/DefaultChangeCardAnalyticsContextUseCase.kt @@ -0,0 +1,13 @@ +package com.tangem.tap.common.analytics + +import com.tangem.core.analytics.Analytics +import com.tangem.domain.analytics.ChangeCardAnalyticsContextUseCase +import com.tangem.domain.models.scan.ScanResponse +import com.tangem.tap.common.extensions.setContext + +internal class DefaultChangeCardAnalyticsContextUseCase : ChangeCardAnalyticsContextUseCase { + + override fun invoke(scanResponse: ScanResponse) { + Analytics.setContext(scanResponse) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/di/analytics/AnalyticsModule.kt b/app/src/main/java/com/tangem/tap/di/analytics/AnalyticsModule.kt new file mode 100644 index 0000000000..34dbbd2e11 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/di/analytics/AnalyticsModule.kt @@ -0,0 +1,20 @@ +package com.tangem.tap.di.analytics + +import com.tangem.domain.analytics.ChangeCardAnalyticsContextUseCase +import com.tangem.tap.common.analytics.DefaultChangeCardAnalyticsContextUseCase +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +internal object AnalyticsModule { + + @Provides + @Singleton + fun provideChangeCardAnalyticsContextUseCase(): ChangeCardAnalyticsContextUseCase { + return DefaultChangeCardAnalyticsContextUseCase() + } +} \ No newline at end of file diff --git a/domain/legacy/src/main/java/com/tangem/domain/analytics/ChangeCardAnalyticsContextUseCase.kt b/domain/legacy/src/main/java/com/tangem/domain/analytics/ChangeCardAnalyticsContextUseCase.kt new file mode 100644 index 0000000000..3aa5e994c9 --- /dev/null +++ b/domain/legacy/src/main/java/com/tangem/domain/analytics/ChangeCardAnalyticsContextUseCase.kt @@ -0,0 +1,8 @@ +package com.tangem.domain.analytics + +import com.tangem.domain.models.scan.ScanResponse + +interface ChangeCardAnalyticsContextUseCase { + + operator fun invoke(scanResponse: ScanResponse) +} \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletViewModel.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletViewModel.kt index 34ffd5f578..25caf39344 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletViewModel.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletViewModel.kt @@ -24,6 +24,7 @@ import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.WrappedList import com.tangem.core.ui.extensions.resourceReference import com.tangem.crypto.hdWallet.DerivationPath +import com.tangem.domain.analytics.ChangeCardAnalyticsContextUseCase import com.tangem.domain.appcurrency.GetSelectedAppCurrencyUseCase import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.balancehiding.IsBalanceHiddenUseCase @@ -121,6 +122,7 @@ internal class WalletViewModel @Inject constructor( private val reduxStateHolder: ReduxStateHolder, private val dispatchers: CoroutineDispatcherProvider, private val analyticsEventsHandler: AnalyticsEventHandler, + private val changeCardAnalyticsContextUseCase: ChangeCardAnalyticsContextUseCase, private val setCardWasScannedUseCase: SetCardWasScannedUseCase, private val remindToRateAppLaterUseCase: RemindToRateAppLaterUseCase, private val neverToSuggestRateAppUseCase: NeverToSuggestRateAppUseCase, @@ -467,6 +469,8 @@ internal class WalletViewModel @Inject constructor( val state = uiState as? WalletState.ContentState ?: return if (state.walletsListConfig.selectedWalletIndex == index) return + changeCardAnalyticsContextUseCase(scanResponse = getWallet(index).scanResponse) + // Reset the job to avoid a redundant state updating onWalletChangeJobHolder.update(null)