Skip to content

Commit 195f17b

Browse files
Try approach 1 with regular flow
1 parent 031e8eb commit 195f17b

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

app/src/main/java/com/lukaslechner/coroutineusecasesonandroid/usecases/flow/usecase4/FlowUseCase4Activity.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ package com.lukaslechner.coroutineusecasesonandroid.usecases.flow.usecase4
22

33
import android.os.Bundle
44
import androidx.activity.viewModels
5+
import androidx.lifecycle.lifecycleScope
56
import com.lukaslechner.coroutineusecasesonandroid.base.BaseActivity
67
import com.lukaslechner.coroutineusecasesonandroid.base.flowUseCase4Description
78
import com.lukaslechner.coroutineusecasesonandroid.databinding.ActivityFlowUsecase1Binding
89
import com.lukaslechner.coroutineusecasesonandroid.utils.setGone
910
import com.lukaslechner.coroutineusecasesonandroid.utils.setVisible
1011
import com.lukaslechner.coroutineusecasesonandroid.utils.toast
12+
import kotlinx.coroutines.launch
1113
import org.joda.time.LocalDateTime
1214
import org.joda.time.format.DateTimeFormat
1315

@@ -25,8 +27,8 @@ class FlowUseCase4Activity : BaseActivity() {
2527
setContentView(binding.root)
2628
binding.recyclerView.adapter = adapter
2729

28-
viewModel.currentStockPriceAsLiveData.observe(this) { uiState ->
29-
if (uiState != null) {
30+
lifecycleScope.launch {
31+
viewModel.currentStockPriceAsFlow.collect { uiState ->
3032
render(uiState)
3133
}
3234
}

app/src/main/java/com/lukaslechner/coroutineusecasesonandroid/usecases/flow/usecase4/FlowUseCase4ViewModel.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package com.lukaslechner.coroutineusecasesonandroid.usecases.flow.usecase4
22

3-
import androidx.lifecycle.LiveData
4-
import androidx.lifecycle.asLiveData
53
import com.lukaslechner.coroutineusecasesonandroid.base.BaseViewModel
4+
import kotlinx.coroutines.flow.Flow
65
import kotlinx.coroutines.flow.map
76
import kotlinx.coroutines.flow.onCompletion
87
import kotlinx.coroutines.flow.onStart
@@ -12,7 +11,7 @@ class FlowUseCase4ViewModel(
1211
stockPriceDataSource: StockPriceDataSource
1312
) : BaseViewModel<UiState>() {
1413

15-
val currentStockPriceAsLiveData: LiveData<UiState> = stockPriceDataSource
14+
val currentStockPriceAsFlow: Flow<UiState> = stockPriceDataSource
1615
.latestStockList
1716
.map { stockList ->
1817
UiState.Success(stockList) as UiState
@@ -23,5 +22,4 @@ class FlowUseCase4ViewModel(
2322
.onCompletion {
2423
Timber.tag("Flow").d("Flow has completed.")
2524
}
26-
.asLiveData()
2725
}

0 commit comments

Comments
 (0)