Updated on 2026-08-14

This commit is contained in:
Tangem 2023-10-15 11:19:36 +08:00
parent 4942718cc9
commit c8006eddda
4 changed files with 45 additions and 0 deletions

View file

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

View file

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

View file

@ -0,0 +1,8 @@
package com.tangem.domain.analytics
import com.tangem.domain.models.scan.ScanResponse
interface ChangeCardAnalyticsContextUseCase {
operator fun invoke(scanResponse: ScanResponse)
}

View file

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