diff --git a/core/datasource/src/main/java/com/tangem/datasource/local/accounts/AccountTokenMigrationStore.kt b/core/datasource/src/main/java/com/tangem/datasource/local/accounts/AccountTokenMigrationStore.kt index c527ef5dec..914144ea5a 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/local/accounts/AccountTokenMigrationStore.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/local/accounts/AccountTokenMigrationStore.kt @@ -1,13 +1,14 @@ package com.tangem.datasource.local.accounts +import com.tangem.domain.models.account.AccountName import com.tangem.domain.models.wallet.UserWalletId import kotlinx.coroutines.flow.Flow interface AccountTokenMigrationStore { - fun get(userWalletId: UserWalletId): Flow?> + fun get(userWalletId: UserWalletId): Flow?> - suspend fun store(userWalletId: UserWalletId, value: Pair) + suspend fun store(userWalletId: UserWalletId, value: Pair) suspend fun remove(userWalletId: UserWalletId) } \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/local/accounts/DefaultAccountTokenMigrationStore.kt b/core/datasource/src/main/java/com/tangem/datasource/local/accounts/DefaultAccountTokenMigrationStore.kt index 920b4ed166..6eba77722f 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/local/accounts/DefaultAccountTokenMigrationStore.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/local/accounts/DefaultAccountTokenMigrationStore.kt @@ -1,19 +1,20 @@ package com.tangem.datasource.local.accounts import com.tangem.datasource.local.datastore.RuntimeStateStore +import com.tangem.domain.models.account.AccountName import com.tangem.domain.models.wallet.UserWalletId import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map internal class DefaultAccountTokenMigrationStore( - private val runtimeStateStore: RuntimeStateStore>>, + private val runtimeStateStore: RuntimeStateStore>>, ) : AccountTokenMigrationStore { - override fun get(userWalletId: UserWalletId): Flow?> { + override fun get(userWalletId: UserWalletId): Flow?> { return runtimeStateStore.get().map { it[userWalletId] } } - override suspend fun store(userWalletId: UserWalletId, value: Pair) { + override suspend fun store(userWalletId: UserWalletId, value: Pair) { runtimeStateStore.update { it + (userWalletId to value) } } diff --git a/data/account/src/main/kotlin/com/tangem/data/account/tokens/DefaultMainAccountTokensMigration.kt b/data/account/src/main/kotlin/com/tangem/data/account/tokens/DefaultMainAccountTokensMigration.kt index 8e65c680ce..ce03285690 100644 --- a/data/account/src/main/kotlin/com/tangem/data/account/tokens/DefaultMainAccountTokensMigration.kt +++ b/data/account/src/main/kotlin/com/tangem/data/account/tokens/DefaultMainAccountTokensMigration.kt @@ -7,6 +7,7 @@ import arrow.core.raise.ensureNotNull import arrow.core.toNonEmptyListOrNull import com.tangem.blockchain.common.Blockchain import com.tangem.blockchainsdk.utils.fromNetworkId +import com.tangem.data.account.converter.AccountNameConverter import com.tangem.data.account.converter.toDerivationIndex import com.tangem.data.account.store.AccountsResponseStoreFactory import com.tangem.data.account.utils.assignTokens @@ -144,11 +145,9 @@ internal class DefaultMainAccountTokensMigration( store.updateData { updatedResponse } - val mainAccountName = mainAccount.name - val selectedAccountName = selectedAccount.name - if (mainAccountName != null && selectedAccountName != null) { - accountTokenMigrationStore.store(userWalletId, mainAccountName to selectedAccountName) - } + val mainAccountName = AccountNameConverter.convertBack(mainAccount.name) + val selectedAccountName = AccountNameConverter.convertBack(selectedAccount.name) + accountTokenMigrationStore.store(userWalletId, mainAccountName to selectedAccountName) val userTokensResponse = updatedResponse.toUserTokensResponse() userTokensSaver.pushWithRetryer( diff --git a/features/wallet-settings/impl/src/main/kotlin/com/tangem/feature/walletsettings/component/impl/DefaultWalletSettingsComponent.kt b/features/wallet-settings/impl/src/main/kotlin/com/tangem/feature/walletsettings/component/impl/DefaultWalletSettingsComponent.kt index eb842fbdc9..3b7692fe1f 100644 --- a/features/wallet-settings/impl/src/main/kotlin/com/tangem/feature/walletsettings/component/impl/DefaultWalletSettingsComponent.kt +++ b/features/wallet-settings/impl/src/main/kotlin/com/tangem/feature/walletsettings/component/impl/DefaultWalletSettingsComponent.kt @@ -10,6 +10,7 @@ import com.arkivanov.decompose.extensions.compose.subscribeAsState import com.arkivanov.decompose.router.slot.childSlot import com.arkivanov.decompose.router.slot.dismiss import com.arkivanov.essenty.lifecycle.subscribe +import com.tangem.common.ui.account.toUM import com.tangem.core.decompose.context.AppComponentContext import com.tangem.core.decompose.context.childByContext import com.tangem.core.decompose.model.getOrCreateModel @@ -146,7 +147,7 @@ internal class DefaultWalletSettingsComponent @AssistedInject constructor( title = resourceReference(R.string.accounts_migration_alert_title), message = resourceReference( R.string.accounts_migration_alert_message, - wrappedList(fromAccount, toAccount), + wrappedList(fromAccount.toUM().value, toAccount.toUM().value), ), firstActionBuilder = { EventMessageAction(