diff options
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/exchanges')
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt index 5a4c6c2..4a57068 100644 --- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt +++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt @@ -17,6 +17,7 @@ package net.taler.wallet.exchanges import android.util.Log +import androidx.annotation.WorkerThread import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import kotlinx.coroutines.CoroutineScope @@ -81,13 +82,20 @@ class ExchangeManager( } fun findExchangeForCurrency(currency: String): Flow<ExchangeItem?> = flow { - val response = api.request("listExchanges", ExchangeListResponse.serializer()) + emit(findExchange(currency)) + } + + @WorkerThread + suspend fun findExchange(currency: String): ExchangeItem? { var exchange: ExchangeItem? = null - response.onSuccess { exchangeListResponse -> + api.request( + operation = "listExchanges", + serializer = ExchangeListResponse.serializer() + ).onSuccess { exchangeListResponse -> // just pick the first for now exchange = exchangeListResponse.exchanges.find { it.currency == currency } } - emit(exchange) + return exchange } } |