Skip to content

Commit 68fade1

Browse files
authored
Update deps (#53)
* Update deps * use repeatOnLifecycle * fix * fix fmt
1 parent 80c2ce2 commit 68fade1

File tree

2 files changed

+22
-19
lines changed

2 files changed

+22
-19
lines changed

buildSrc/src/main/kotlin/deps.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,16 @@ object appConfig {
2626

2727
object deps {
2828
object androidx {
29-
const val appCompat = "androidx.appcompat:appcompat:1.3.0-rc01"
30-
const val coreKtx = "androidx.core:core-ktx:1.6.0-alpha03"
31-
const val constraintLayout = "androidx.constraintlayout:constraintlayout:2.1.0-beta02"
32-
const val recyclerView = "androidx.recyclerview:recyclerview:1.2.0"
29+
const val appCompat = "androidx.appcompat:appcompat:1.4.0-rc01"
30+
const val coreKtx = "androidx.core:core-ktx:1.7.0"
31+
const val constraintLayout = "androidx.constraintlayout:constraintlayout:2.1.1"
32+
const val recyclerView = "androidx.recyclerview:recyclerview:1.2.1"
3333
const val swipeRefreshLayout = "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01"
34-
const val material = "com.google.android.material:material:1.4.0-beta01"
34+
const val material = "com.google.android.material:material:1.4.0"
3535
}
3636

3737
object lifecycle {
38-
private const val version = "2.4.0-alpha01"
38+
private const val version = "2.4.0"
3939

4040
const val viewModelKtx = "androidx.lifecycle:lifecycle-viewmodel-ktx:$version" // viewModelScope
4141
const val runtimeKtx = "androidx.lifecycle:lifecycle-runtime-ktx:$version" // lifecycleScope
@@ -51,7 +51,7 @@ object deps {
5151
}
5252

5353
object coroutines {
54-
private const val version = "1.5.0"
54+
private const val version = "1.5.2"
5555

5656
const val core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version"
5757
const val android = "org.jetbrains.kotlinx:kotlinx-coroutines-android:$version"
@@ -71,7 +71,7 @@ object deps {
7171
const val flowExt = "io.github.hoc081098:FlowExt:0.0.7-SNAPSHOT"
7272

7373
object arrow {
74-
private const val version = "1.0.0"
74+
private const val version = "1.0.1"
7575
const val core = "io.arrow-kt:arrow-core:$version"
7676
}
7777

core/src/main/java/com/hoc/flowmvi/core/CollectIn.kt

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,35 @@ import android.util.Log
44
import androidx.fragment.app.Fragment
55
import androidx.lifecycle.Lifecycle
66
import androidx.lifecycle.LifecycleOwner
7-
import androidx.lifecycle.addRepeatingJob
7+
import androidx.lifecycle.lifecycleScope
8+
import androidx.lifecycle.repeatOnLifecycle
89
import kotlinx.coroutines.Job
910
import kotlinx.coroutines.flow.Flow
1011
import kotlinx.coroutines.flow.collect
11-
import kotlin.coroutines.CoroutineContext
12-
import kotlin.coroutines.EmptyCoroutineContext
12+
import kotlinx.coroutines.launch
1313

1414
inline fun <T> Flow<T>.collectIn(
1515
owner: LifecycleOwner,
1616
minActiveState: Lifecycle.State = Lifecycle.State.STARTED,
17-
coroutineContext: CoroutineContext = EmptyCoroutineContext,
1817
crossinline action: suspend (value: T) -> Unit,
19-
): Job = owner.addRepeatingJob(state = minActiveState, coroutineContext = coroutineContext) {
20-
Log.d("collectIn", "Start collecting...")
21-
collect { action(it) }
18+
): Job = owner.lifecycleScope.launch {
19+
owner.repeatOnLifecycle(state = minActiveState) {
20+
Log.d("collectIn", "Start collecting $owner $minActiveState...")
21+
collect { action(it) }
22+
}
2223
}
2324

25+
/**
26+
* Launches a new coroutine and repeats `block` every time the Fragment's viewLifecycleOwner
27+
* is in and out of `minActiveState` lifecycle state.
28+
*/
2429
@Suppress("unused")
25-
inline fun <T> Flow<T>.collectIn(
30+
inline fun <T> Flow<T>.collectInViewLifecycle(
2631
fragment: Fragment,
2732
minActiveState: Lifecycle.State = Lifecycle.State.STARTED,
28-
coroutineContext: CoroutineContext = EmptyCoroutineContext,
2933
crossinline action: suspend (value: T) -> Unit,
3034
): Job = collectIn(
31-
fragment.viewLifecycleOwner,
35+
owner = fragment.viewLifecycleOwner,
3236
minActiveState = minActiveState,
33-
coroutineContext = coroutineContext,
3437
action = action,
3538
)

0 commit comments

Comments
 (0)