-
Notifications
You must be signed in to change notification settings - Fork 409
/
StockPriceDataSource.kt
24 lines (20 loc) 路 819 Bytes
/
StockPriceDataSource.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.lukaslechner.coroutineusecasesonandroid.usecases.flow.usecase4
import com.lukaslechner.coroutineusecasesonandroid.usecases.flow.mock.FlowMockApi
import com.lukaslechner.coroutineusecasesonandroid.usecases.flow.mock.Stock
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
import timber.log.Timber
interface StockPriceDataSource {
val latestStockList: Flow<List<Stock>>
}
class NetworkStockPriceDataSource(mockApi: FlowMockApi) : StockPriceDataSource {
override val latestStockList: Flow<List<Stock>> = flow {
while (true) {
Timber.tag("Flow").d("Fetching current stock prices")
val currentStockList = mockApi.getCurrentStockPrices()
emit(currentStockList)
delay(5_000)
}
}
}