Skip to content

Commit

Permalink
Search including in custom tokens when filtering
Browse files Browse the repository at this point in the history
  • Loading branch information
abdrasulov committed Sep 15, 2023
1 parent bff03d1 commit a9b502c
Showing 1 changed file with 21 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import io.horizontalsystems.ethereumkit.core.AddressValidator
import io.horizontalsystems.marketkit.models.BlockchainType
import io.horizontalsystems.marketkit.models.FullCoin
import io.horizontalsystems.marketkit.models.Token
import io.horizontalsystems.marketkit.models.TokenType

class FullCoinsProvider(
private val marketKit: MarketKitWrapper,
Expand Down Expand Up @@ -46,14 +47,29 @@ class FullCoinsProvider(
fun getItems(): List<FullCoin> {
val tmpQuery = query

val (customTokens, regularTokens) = predefinedTokens.partition { it.isCustom }

val fullCoins = if (tmpQuery.isNullOrBlank()) {
val (custom, regular) = predefinedTokens.partition { it.isCustom }
val coinUids = regular.map { it.coin.uid }
custom.map { it.fullCoin } + marketKit.fullCoins(coinUids)
val coinUids = regularTokens.map { it.coin.uid }
customTokens.map { it.fullCoin } + marketKit.fullCoins(coinUids)
} else if (isContractAddress(tmpQuery)) {
marketKit.tokens(tmpQuery).map { it.fullCoin }
val customFullCoins = customTokens
.filter {
val type = it.type
type is TokenType.Eip20 && type.address.contains(tmpQuery, true)
}
.map { it.fullCoin }

customFullCoins + marketKit.tokens(tmpQuery).map { it.fullCoin }
} else {
marketKit.fullCoins(tmpQuery)
val customFullCoins = customTokens
.filter {
val coin = it.coin
coin.name.contains(tmpQuery, true) || coin.code.contains(tmpQuery, true)
}
.map { it.fullCoin }

customFullCoins + marketKit.fullCoins(tmpQuery)
}

return fullCoins
Expand Down

0 comments on commit a9b502c

Please sign in to comment.