diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/AddWalletTransformer.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/AddWalletTransformer.kt index dd9b3ee7d1..3f2da0d9a7 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/AddWalletTransformer.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/AddWalletTransformer.kt @@ -1,6 +1,7 @@ package com.tangem.feature.wallet.presentation.wallet.state.transformers import com.tangem.domain.wallets.models.UserWallet +import com.tangem.feature.wallet.presentation.wallet.domain.WalletImageResolver import com.tangem.feature.wallet.presentation.wallet.state.model.WalletScreenState import com.tangem.feature.wallet.presentation.wallet.state.utils.WalletLoadingStateFactory import com.tangem.feature.wallet.presentation.wallet.viewmodels.intents.WalletClickIntents @@ -9,10 +10,14 @@ import kotlinx.collections.immutable.toImmutableList internal class AddWalletTransformer( private val userWallet: UserWallet, private val clickIntents: WalletClickIntents, + private val walletImageResolver: WalletImageResolver, ) : WalletScreenStateTransformer { private val walletLoadingStateFactory by lazy { - WalletLoadingStateFactory(clickIntents = clickIntents) + WalletLoadingStateFactory( + clickIntents = clickIntents, + walletImageResolver = walletImageResolver, + ) } override fun transform(prevState: WalletScreenState): WalletScreenState { diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/InitializeWalletsTransformer.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/InitializeWalletsTransformer.kt index 24b9bb0afd..96d978a00f 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/InitializeWalletsTransformer.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/InitializeWalletsTransformer.kt @@ -15,9 +15,12 @@ internal class InitializeWalletsTransformer( private val selectedWalletIndex: Int, private val wallets: List, private val clickIntents: WalletClickIntents, + private val walletImageResolver: WalletImageResolver, ) : WalletScreenStateTransformer { - private val walletLoadingStateFactory by lazy { WalletLoadingStateFactory(clickIntents = clickIntents) } + private val walletLoadingStateFactory by lazy { + WalletLoadingStateFactory(clickIntents = clickIntents, walletImageResolver = walletImageResolver) + } override fun transform(prevState: WalletScreenState): WalletScreenState { return prevState.copy( @@ -78,7 +81,7 @@ internal class InitializeWalletsTransformer( id = walletId, title = name, additionalInfo = WalletAdditionalInfoFactory.resolve(wallet = this), - imageResId = WalletImageResolver.resolve(userWallet = this), + imageResId = walletImageResolver.resolve(userWallet = this), onRenameClick = clickIntents::onRenameBeforeConfirmationClick, onDeleteClick = clickIntents::onDeleteBeforeConfirmationClick, ) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/ReinitializeWalletTransformer.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/ReinitializeWalletTransformer.kt index 8b18dcf457..f083b489f0 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/ReinitializeWalletTransformer.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/ReinitializeWalletTransformer.kt @@ -2,6 +2,7 @@ package com.tangem.feature.wallet.presentation.wallet.state.transformers import com.tangem.domain.wallets.models.UserWallet import com.tangem.domain.wallets.models.UserWalletId +import com.tangem.feature.wallet.presentation.wallet.domain.WalletImageResolver import com.tangem.feature.wallet.presentation.wallet.state.model.WalletScreenState import com.tangem.feature.wallet.presentation.wallet.state.utils.WalletLoadingStateFactory import com.tangem.feature.wallet.presentation.wallet.viewmodels.intents.WalletClickIntents @@ -20,9 +21,12 @@ internal class ReinitializeWalletTransformer( private val prevWalletId: UserWalletId, private val newUserWallet: UserWallet, private val clickIntents: WalletClickIntents, + private val walletImageResolver: WalletImageResolver, ) : WalletScreenStateTransformer { - private val walletLoadingStateFactory by lazy { WalletLoadingStateFactory(clickIntents = clickIntents) } + private val walletLoadingStateFactory by lazy { + WalletLoadingStateFactory(clickIntents = clickIntents, walletImageResolver = walletImageResolver) + } override fun transform(prevState: WalletScreenState): WalletScreenState { return prevState.copy( diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/UnlockWalletTransformer.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/UnlockWalletTransformer.kt index be16388c83..7da90fd1ec 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/UnlockWalletTransformer.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/UnlockWalletTransformer.kt @@ -2,6 +2,7 @@ package com.tangem.feature.wallet.presentation.wallet.state.transformers import com.tangem.domain.wallets.models.UserWallet import com.tangem.domain.wallets.models.UserWalletId +import com.tangem.feature.wallet.presentation.wallet.domain.WalletImageResolver import com.tangem.feature.wallet.presentation.wallet.state.model.WalletScreenState import com.tangem.feature.wallet.presentation.wallet.state.model.WalletState import com.tangem.feature.wallet.presentation.wallet.state.utils.WalletLoadingStateFactory @@ -12,9 +13,12 @@ import timber.log.Timber internal class UnlockWalletTransformer( private val unlockedWallets: List, private val clickIntents: WalletClickIntents, + private val walletImageResolver: WalletImageResolver, ) : WalletScreenStateTransformer { - private val walletLoadingStateFactory by lazy { WalletLoadingStateFactory(clickIntents = clickIntents) } + private val walletLoadingStateFactory by lazy { + WalletLoadingStateFactory(clickIntents = clickIntents, walletImageResolver = walletImageResolver) + } override fun transform(prevState: WalletScreenState): WalletScreenState { return prevState.copy( diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/UpdateWalletCardsCountTransformer.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/UpdateWalletCardsCountTransformer.kt index 59531e1ece..f350399697 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/UpdateWalletCardsCountTransformer.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/UpdateWalletCardsCountTransformer.kt @@ -10,6 +10,7 @@ import timber.log.Timber internal class UpdateWalletCardsCountTransformer( private val userWallet: UserWallet, + private val walletImageResolver: WalletImageResolver, ) : WalletStateTransformer(userWallet.walletId) { override fun transform(prevState: WalletState): WalletState { @@ -37,7 +38,7 @@ internal class UpdateWalletCardsCountTransformer( return when (this) { is WalletCardState.Content -> copy( additionalInfo = WalletAdditionalInfoFactory.resolve(wallet = userWallet), - imageResId = WalletImageResolver.resolve(userWallet = userWallet), + imageResId = walletImageResolver.resolve(userWallet = userWallet), cardCount = userWallet.getCardsCount(), ) else -> this diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/utils/WalletLoadingStateFactory.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/utils/WalletLoadingStateFactory.kt index 924cd9e0c8..f0112ab75d 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/utils/WalletLoadingStateFactory.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/utils/WalletLoadingStateFactory.kt @@ -18,7 +18,10 @@ import kotlinx.coroutines.flow.MutableStateFlow * * @property clickIntents click intents */ -internal class WalletLoadingStateFactory(private val clickIntents: WalletClickIntents) { +internal class WalletLoadingStateFactory( + private val clickIntents: WalletClickIntents, + private val walletImageResolver: WalletImageResolver, +) { fun create(userWallet: UserWallet): WalletState { return userWallet.createStateByWalletType( @@ -81,7 +84,7 @@ internal class WalletLoadingStateFactory(private val clickIntents: WalletClickIn id = walletId, title = name, additionalInfo = if (isMultiCurrency) WalletAdditionalInfoFactory.resolve(wallet = this) else null, - imageResId = WalletImageResolver.resolve(userWallet = this), + imageResId = walletImageResolver.resolve(userWallet = this), onRenameClick = clickIntents::onRenameBeforeConfirmationClick, onDeleteClick = clickIntents::onDeleteBeforeConfirmationClick, ) 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 9e6aa0e4ce..e8631f9e39 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 @@ -16,6 +16,7 @@ import com.tangem.feature.wallet.presentation.deeplink.WalletDeepLinksHandler import com.tangem.feature.wallet.presentation.router.InnerWalletRouter import com.tangem.feature.wallet.presentation.wallet.analytics.WalletScreenAnalyticsEvent import com.tangem.feature.wallet.presentation.wallet.analytics.utils.SelectedWalletAnalyticsSender +import com.tangem.feature.wallet.presentation.wallet.domain.WalletImageResolver import com.tangem.feature.wallet.presentation.wallet.domain.WalletNameMigrationUseCase import com.tangem.feature.wallet.presentation.wallet.loaders.WalletScreenContentLoader import com.tangem.feature.wallet.presentation.wallet.state.WalletStateController @@ -69,6 +70,7 @@ internal class WalletViewModel @Inject constructor( private val shouldAskPermissionUseCase: ShouldAskPermissionUseCase, private val pushNotificationsFeatureToggles: PushNotificationsFeatureToggles, private val marketsFeatureToggles: MarketsFeatureToggles, + private val walletImageResolver: WalletImageResolver, analyticsEventsHandler: AnalyticsEventHandler, ) : ViewModel() { @@ -270,7 +272,12 @@ internal class WalletViewModel @Inject constructor( coroutineScope = viewModelScope, ) - stateHolder.update(transformer = UpdateWalletCardsCountTransformer(action.selectedWallet)) + stateHolder.update( + transformer = UpdateWalletCardsCountTransformer( + userWallet = action.selectedWallet, + walletImageResolver = walletImageResolver, + ), + ) } is WalletsUpdateActionResolver.Action.UpdateWalletName -> { stateHolder.update(transformer = RenameWalletTransformer(action.selectedWalletId, action.name)) @@ -293,6 +300,7 @@ internal class WalletViewModel @Inject constructor( selectedWalletIndex = action.selectedWalletIndex, wallets = action.wallets, clickIntents = clickIntents, + walletImageResolver = walletImageResolver, ), ) @@ -325,6 +333,7 @@ internal class WalletViewModel @Inject constructor( prevWalletId = action.prevWalletId, newUserWallet = action.selectedWallet, clickIntents = clickIntents, + walletImageResolver = walletImageResolver, ), ) } @@ -340,6 +349,7 @@ internal class WalletViewModel @Inject constructor( AddWalletTransformer( userWallet = action.selectedWallet, clickIntents = clickIntents, + walletImageResolver = walletImageResolver, ), ) @@ -389,6 +399,7 @@ internal class WalletViewModel @Inject constructor( transformer = UnlockWalletTransformer( unlockedWallets = action.unlockedWallets, clickIntents = clickIntents, + walletImageResolver = walletImageResolver, ), )