Skip to content

Commit 2b2de08

Browse files
committed
added more safeViewCollect
1 parent 0144c88 commit 2b2de08

File tree

1 file changed

+28
-20
lines changed

1 file changed

+28
-20
lines changed

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

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -33,41 +33,49 @@ private inline fun Fragment.safeViewCollect(crossinline viewOwner: LifecycleOwne
3333
}
3434

3535
fun <T1, T2> Fragment.combineFlows(flow1: Flow<T1>, flow2: Flow<T2>, collectBlock: ((T1, T2) -> Unit)) {
36-
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
37-
flow1.combine(flow2) { v1, v2 ->
38-
collectBlock.invoke(v1, v2)
39-
}.collect {
40-
// Empty collect block to trigger ^
36+
safeViewCollect {
37+
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
38+
flow1.combine(flow2) { v1, v2 ->
39+
collectBlock.invoke(v1, v2)
40+
}.collect {
41+
// Empty collect block to trigger ^
42+
}
4143
}
4244
}
4345
}
4446

4547
fun <T1, T2, T3> Fragment.combineFlows(flow1: Flow<T1>, flow2: Flow<T2>, flow3: Flow<T3>, collectBlock: ((T1, T2, T3) -> Unit)) {
46-
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
47-
combine(flow1, flow2, flow3) { v1, v2, v3 ->
48-
collectBlock.invoke(v1, v2, v3)
49-
}.collect {
50-
// Empty collect block to trigger ^
48+
safeViewCollect {
49+
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
50+
combine(flow1, flow2, flow3) { v1, v2, v3 ->
51+
collectBlock.invoke(v1, v2, v3)
52+
}.collect {
53+
// Empty collect block to trigger ^
54+
}
5155
}
5256
}
5357
}
5458

5559
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)) {
56-
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
57-
combine(flow1, flow2, flow3, flow4) { v1, v2, v3, v4 ->
58-
collectBlock.invoke(v1, v2, v3, v4)
59-
}.collect {
60-
// Empty collect block to trigger ^
60+
safeViewCollect {
61+
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
62+
combine(flow1, flow2, flow3, flow4) { v1, v2, v3, v4 ->
63+
collectBlock.invoke(v1, v2, v3, v4)
64+
}.collect {
65+
// Empty collect block to trigger ^
66+
}
6167
}
6268
}
6369
}
6470

6571
fun <T1, T2> Fragment.zipFlows(flow1: Flow<T1>, flow2: Flow<T2>, collectBlock: ((T1, T2) -> Unit)) {
66-
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
67-
flow1.zip(flow2) { v1, v2 ->
68-
collectBlock.invoke(v1, v2)
69-
}.collect {
70-
// Empty collect block to trigger ^
72+
safeViewCollect {
73+
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
74+
flow1.zip(flow2) { v1, v2 ->
75+
collectBlock.invoke(v1, v2)
76+
}.collect {
77+
// Empty collect block to trigger ^
78+
}
7179
}
7280
}
7381
}

0 commit comments

Comments
 (0)