1+ package com.monstarlab.extensions
2+
3+ import androidx.fragment.app.Fragment
4+ import androidx.lifecycle.LifecycleCoroutineScope
5+ import androidx.lifecycle.lifecycleScope
6+ import kotlinx.coroutines.CoroutineScope
7+ import kotlinx.coroutines.flow.Flow
8+ import kotlinx.coroutines.flow.collect
9+ import kotlinx.coroutines.flow.combine
10+ import kotlinx.coroutines.launch
11+
12+ fun <T1 , T2 > CoroutineScope.combineFlows (flow1 : Flow <T1 >, flow2 : Flow <T2 >, collectBlock : (suspend (T1 , T2 ) -> Unit )) {
13+ launch {
14+ flow1.combine(flow2) { v1, v2 ->
15+ collectBlock.invoke(v1, v2)
16+ }.collect {
17+ // Empty collect block to trigger ^
18+ }
19+ }
20+ }
21+
22+ fun <T1 , T2 , T3 > CoroutineScope.combineFlows (flow1 : Flow <T1 >, flow2 : Flow <T2 >, flow3 : Flow <T3 >, collectBlock : (suspend (T1 , T2 , T3 ) -> Unit )) {
23+ launch {
24+ combine(flow1, flow2, flow3) { v1, v2, v3 ->
25+ collectBlock.invoke(v1, v2, v3)
26+ }.collect {
27+ // Empty collect block to trigger ^
28+ }
29+ }
30+ }
31+
32+ fun <T1 , T2 , T3 , T4 > CoroutineScope.combineFlows (flow1 : Flow <T1 >, flow2 : Flow <T2 >, flow3 : Flow <T3 >, flow4 : Flow <T4 >, collectBlock : (suspend (T1 , T2 , T3 , T4 ) -> Unit )) {
33+ launch {
34+ combine(flow1, flow2, flow3, flow4) { v1, v2, v3, v4 ->
35+ collectBlock.invoke(v1, v2, v3, v4)
36+ }.collect {
37+ // Empty collect block to trigger ^
38+ }
39+ }
40+ }
0 commit comments