Skip to content

Commit ff51e74

Browse files
committed
safe guard for early calls to collect calls
1 parent 88be367 commit ff51e74

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

app/src/main/java/com/monstarlab/extensions/ViewExtensions.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ import kotlinx.coroutines.flow.zip
99
import kotlinx.coroutines.launch
1010

1111
fun <T> Fragment.collectFlow(targetFlow: Flow<T>, collectBlock: ((T) -> Unit)) {
12-
viewLifecycleOwner.lifecycleScope.launch {
12+
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
1313
targetFlow.collect {
1414
collectBlock.invoke(it)
1515
}
1616
}
1717
}
1818

1919
fun <T1, T2> Fragment.combineFlows(flow1: Flow<T1>, flow2: Flow<T2>, collectBlock: ((T1, T2) -> Unit)) {
20-
viewLifecycleOwner.lifecycleScope.launch {
20+
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
2121
flow1.combine(flow2) { v1, v2 ->
2222
collectBlock.invoke(v1, v2)
2323
}.collect {
@@ -27,7 +27,7 @@ fun <T1, T2> Fragment.combineFlows(flow1: Flow<T1>, flow2: Flow<T2>, collectBloc
2727
}
2828

2929
fun <T1, T2, T3> Fragment.combineFlows(flow1: Flow<T1>, flow2: Flow<T2>, flow3: Flow<T3>, collectBlock: ((T1, T2, T3) -> Unit)) {
30-
viewLifecycleOwner.lifecycleScope.launch {
30+
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
3131
combine(flow1, flow2, flow3) { v1, v2, v3 ->
3232
collectBlock.invoke(v1, v2, v3)
3333
}.collect {
@@ -37,7 +37,7 @@ fun <T1, T2, T3> Fragment.combineFlows(flow1: Flow<T1>, flow2: Flow<T2>, flow3:
3737
}
3838

3939
fun <T1, T2, T3, T4> Fragment.combineFlows(flow1: Flow<T1>, flow2: Flow<T2>, flow3: Flow<T3>, flow4: Flow<T4>, collectBlock: ((T1, T2, T3, T4) -> Unit)) {
40-
viewLifecycleOwner.lifecycleScope.launch {
40+
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
4141
combine(flow1, flow2, flow3, flow4) { v1, v2, v3, v4 ->
4242
collectBlock.invoke(v1, v2, v3, v4)
4343
}.collect {
@@ -47,7 +47,7 @@ fun <T1, T2, T3, T4> Fragment.combineFlows(flow1: Flow<T1>, flow2: Flow<T2>, flo
4747
}
4848

4949
fun <T1, T2> Fragment.zipFlows(flow1: Flow<T1>, flow2: Flow<T2>, collectBlock: ((T1, T2) -> Unit)) {
50-
viewLifecycleOwner.lifecycleScope.launch {
50+
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
5151
flow1.zip(flow2) { v1, v2 ->
5252
collectBlock.invoke(v1, v2)
5353
}.collect {

0 commit comments

Comments
 (0)