From e5c732e19dbb57a596f0ec479d274f7f3d8db3ec Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 24 Apr 2024 19:39:32 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../impl/data/TangemApiTokensPagingSource.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/tokens/impl/data/TangemApiTokensPagingSource.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/data/TangemApiTokensPagingSource.kt index acf336dac3..f036004238 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/data/TangemApiTokensPagingSource.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/data/TangemApiTokensPagingSource.kt @@ -5,6 +5,7 @@ import androidx.paging.PagingState import com.tangem.blockchain.common.Blockchain import com.tangem.datasource.api.common.response.getOrThrow import com.tangem.datasource.api.tangemTech.TangemTechApi +import com.tangem.domain.common.extensions.isSupportedInApp import com.tangem.domain.common.extensions.supportedBlockchains import com.tangem.domain.common.extensions.toNetworkId import com.tangem.domain.common.util.cardTypesResolver @@ -21,16 +22,25 @@ import com.tangem.utils.coroutines.runCatching * @property dispatchers coroutine dispatchers provider * @property getSelectedWalletSyncUseCase use case that returns selected wallet * @property searchText search text + * @property needFilterExcluded filter networks that are not supported in the app */ internal class TangemApiTokensPagingSource( private val api: TangemTechApi, private val dispatchers: CoroutineDispatcherProvider, private val getSelectedWalletSyncUseCase: GetSelectedWalletSyncUseCase, private val searchText: String?, - needFilterExcluded: Boolean = false, + private val needFilterExcluded: Boolean = false, ) : PagingSource() { private val coinsResponseConverter = CoinsResponseConverter(needFilterExcluded) + + private val allAvailableBlockchains by lazy { + Blockchain.entries + .filter { + it.isTestnet().not() && (needFilterExcluded.not() || it.isSupportedInApp()) + } + } + override fun getRefreshKey(state: PagingState): Int? { return state.anchorPosition?.let { anchorPosition -> state.closestPageToPosition(anchorPosition)?.prevKey?.plus(other = 1) @@ -43,7 +53,7 @@ internal class TangemApiTokensPagingSource( return runCatching(dispatchers.io) { val supportedBlockchains = getSelectedWalletSyncUseCase().fold( - ifLeft = { Blockchain.entries }, + ifLeft = { allAvailableBlockchains }, ifRight = { it.scanResponse.card.supportedBlockchains(it.scanResponse.cardTypesResolver) }, )