Updated on 2026-08-14
This commit is contained in:
parent
6ed1946ac3
commit
aac48015b3
88 changed files with 335 additions and 239 deletions
|
|
@ -27,7 +27,6 @@ import com.tangem.domain.account.supplier.SingleAccountListSupplier
|
|||
import com.tangem.domain.account.usecase.IsAccountsModeEnabledUseCase
|
||||
import com.tangem.domain.models.account.Account
|
||||
import com.tangem.domain.models.account.AccountStatus
|
||||
import com.tangem.domain.models.account.derivationIndex
|
||||
import com.tangem.domain.models.network.Network
|
||||
import com.tangem.domain.models.wallet.UserWallet
|
||||
import com.tangem.domain.models.wallet.UserWalletId
|
||||
|
|
@ -105,7 +104,7 @@ internal class WcPairModel @Inject constructor(
|
|||
private val selectedUserWalletFlow: MutableStateFlow<UserWallet> by lazy {
|
||||
MutableStateFlow(getWalletsUseCase.invokeSync().first { it.walletId == params.userWalletId })
|
||||
}
|
||||
private val selectedPortfolio = MutableSharedFlow<Pair<UserWallet, AccountStatus>>(
|
||||
private val selectedPortfolio = MutableSharedFlow<Pair<UserWallet, AccountStatus.CryptoPortfolio>>(
|
||||
replay = 1,
|
||||
onBufferOverflow = BufferOverflow.DROP_OLDEST,
|
||||
)
|
||||
|
|
@ -171,7 +170,7 @@ internal class WcPairModel @Inject constructor(
|
|||
private suspend fun handlePairState(
|
||||
pairState: WcPairState,
|
||||
portfolios: PortfolioFetcher.Data? = null,
|
||||
selected: Pair<UserWallet, AccountStatus>? = null,
|
||||
selected: Pair<UserWallet, AccountStatus.CryptoPortfolio>? = null,
|
||||
isAccountMode: Boolean? = null,
|
||||
) {
|
||||
when (pairState) {
|
||||
|
|
@ -206,7 +205,7 @@ internal class WcPairModel @Inject constructor(
|
|||
private suspend fun handleProposalState(
|
||||
pairState: WcPairState.Proposal,
|
||||
portfolios: PortfolioFetcher.Data? = null,
|
||||
selected: Pair<UserWallet, AccountStatus>? = null,
|
||||
selected: Pair<UserWallet, AccountStatus.CryptoPortfolio>? = null,
|
||||
) {
|
||||
val availableWallets = pairState.dAppSession.proposalNetwork.keys
|
||||
.filter { !it.isLocked && it.isMultiCurrency }
|
||||
|
|
@ -266,7 +265,7 @@ internal class WcPairModel @Inject constructor(
|
|||
}
|
||||
|
||||
private suspend fun tryToCreatePortfolioSelectRow(
|
||||
selectedPortfolio: Pair<UserWallet, AccountStatus>?,
|
||||
selectedPortfolio: Pair<UserWallet, AccountStatus.CryptoPortfolio>?,
|
||||
portfolios: PortfolioFetcher.Data?,
|
||||
): PortfolioSelectUM? {
|
||||
selectedPortfolio ?: return null
|
||||
|
|
@ -274,7 +273,6 @@ internal class WcPairModel @Inject constructor(
|
|||
val (wallet, portfolioAccount) = selectedPortfolio
|
||||
val account = when (val account = portfolioAccount.account) {
|
||||
is Account.CryptoPortfolio -> account
|
||||
is Account.Payment -> TODO("[REDACTED_JIRA]")
|
||||
}
|
||||
val isAccountMode = selectorController.isAccountMode.first()
|
||||
val icon: AccountIconUM.CryptoPortfolio?
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ internal class WcSessionsAccountModeTransformer(
|
|||
)
|
||||
items.add(walletHeader)
|
||||
|
||||
accountList.accounts.forEach accountsForEach@{ account ->
|
||||
accountList.accounts.filterIsInstance<Account.CryptoPortfolio>().forEach accountsForEach@{ account ->
|
||||
val accountSessions = sessions.filter { it.account?.accountId == account.accountId }
|
||||
if (accountSessions.isEmpty()) return@accountsForEach
|
||||
val connectedApps = accountSessions.map { dappSession ->
|
||||
|
|
@ -65,7 +65,6 @@ internal class WcSessionsAccountModeTransformer(
|
|||
}
|
||||
val accountIcon = when (account) {
|
||||
is Account.CryptoPortfolio -> account.icon
|
||||
is Account.Payment -> TODO("[REDACTED_JIRA]")
|
||||
}
|
||||
|
||||
val accountTitle = AccountTitleUM.Account(
|
||||
|
|
|
|||
|
|
@ -19,13 +19,12 @@ internal class WcPortfolioNameDelegate @AssistedInject constructor(
|
|||
isAccountsModeEnabledUseCase: IsAccountsModeEnabledUseCase,
|
||||
@Assisted private val scope: CoroutineScope,
|
||||
) {
|
||||
val isAccountMode = isAccountsModeEnabledUseCase.invoke()
|
||||
private val isAccountMode = isAccountsModeEnabledUseCase.invoke()
|
||||
.stateIn(scope = scope, started = SharingStarted.Eagerly, initialValue = false)
|
||||
|
||||
fun createAccountTitleUM(value: WcSession): AccountTitleUM? {
|
||||
val account = when (val account = value.account) {
|
||||
is Account.CryptoPortfolio -> account
|
||||
is Account.Payment -> TODO("[REDACTED_JIRA]")
|
||||
null -> null
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import com.tangem.core.decompose.model.ParamsContainer
|
|||
import com.tangem.core.decompose.navigation.Router
|
||||
import com.tangem.core.decompose.ui.UiMessageSender
|
||||
import com.tangem.core.ui.clipboard.ClipboardManager
|
||||
import com.tangem.domain.models.account.derivationIndex
|
||||
import com.tangem.domain.walletconnect.WcAnalyticEvents
|
||||
import com.tangem.domain.walletconnect.WcRequestUseCaseFactory
|
||||
import com.tangem.domain.walletconnect.usecase.method.WcAddNetworkUseCase
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ import com.tangem.core.ui.components.bottomsheets.message.MessageBottomSheetUMV2
|
|||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.core.ui.extensions.wrappedList
|
||||
import com.tangem.domain.core.lce.Lce
|
||||
import com.tangem.domain.models.account.derivationIndex
|
||||
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
||||
import com.tangem.domain.models.network.Network
|
||||
import com.tangem.domain.models.wallet.UserWallet
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ import com.tangem.core.decompose.model.ParamsContainer
|
|||
import com.tangem.core.decompose.navigation.Router
|
||||
import com.tangem.core.decompose.ui.UiMessageSender
|
||||
import com.tangem.core.ui.clipboard.ClipboardManager
|
||||
import com.tangem.domain.models.account.derivationIndex
|
||||
import com.tangem.domain.walletconnect.WcAnalyticEvents
|
||||
import com.tangem.domain.walletconnect.WcRequestUseCaseFactory
|
||||
import com.tangem.domain.walletconnect.model.WcEthMethod
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue