summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/LifecycleExtensions.kt27
1 files changed, 15 insertions, 12 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/LifecycleExtensions.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/LifecycleExtensions.kt
index 4e2a11f9c0..3e04f83b54 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/LifecycleExtensions.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/LifecycleExtensions.kt
@@ -2,6 +2,7 @@ package net.mullvad.mullvadvpn.compose.extensions
import androidx.compose.runtime.Composable
import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.compose.LocalLifecycleOwner
fun Lifecycle.State.dropUnlessResumed(block: () -> Unit) =
@@ -15,19 +16,19 @@ fun Lifecycle.State.runOnAtLeast(expectedState: Lifecycle.State, block: () -> Un
@Composable
fun <T> dropUnlessResumed(block: (T) -> Unit): (T) -> Unit {
- val lifecycle = LocalLifecycleOwner.current.lifecycle
- return dropUnlessResumed(lifecycle.currentState, block)
+ val lifecycleOwner = LocalLifecycleOwner.current
+ return dropUnlessResumed(lifecycleOwner, block)
}
-fun <T> dropUnlessResumed(state: Lifecycle.State, block: (T) -> Unit): (T) -> Unit =
- state.runOnAtLeast(Lifecycle.State.RESUMED, block)
+fun <T> dropUnlessResumed(lifecycleOwner: LifecycleOwner, block: (T) -> Unit): (T) -> Unit =
+ lifecycleOwner.runOnAtLeast(Lifecycle.State.RESUMED, block)
-fun <T> Lifecycle.State.runOnAtLeast(
+fun <T> LifecycleOwner.runOnAtLeast(
expectedState: Lifecycle.State,
block: (T) -> Unit
): (T) -> Unit {
return {
- if (isAtLeast(expectedState)) {
+ if (lifecycle.currentState.isAtLeast(expectedState)) {
block(it)
}
}
@@ -35,19 +36,21 @@ fun <T> Lifecycle.State.runOnAtLeast(
@Composable
fun <T, T2> dropUnlessResumed(block: (T, T2) -> Unit): (T, T2) -> Unit {
- val lifecycle = LocalLifecycleOwner.current.lifecycle
- return dropUnlessResumed(lifecycle.currentState, block)
+ val lifecycleOwner = LocalLifecycleOwner.current
+ return dropUnlessResumed(lifecycleOwner, block)
}
-fun <T, T2> dropUnlessResumed(state: Lifecycle.State, block: (T, T2) -> Unit): (T, T2) -> Unit =
- state.runOnAtLeast(Lifecycle.State.RESUMED, block)
+fun <T, T2> dropUnlessResumed(
+ lifecycleOwner: LifecycleOwner,
+ block: (T, T2) -> Unit
+): (T, T2) -> Unit = lifecycleOwner.runOnAtLeast(Lifecycle.State.RESUMED, block)
-fun <T, T2> Lifecycle.State.runOnAtLeast(
+fun <T, T2> LifecycleOwner.runOnAtLeast(
expectedState: Lifecycle.State,
block: (T, T2) -> Unit
): (T, T2) -> Unit {
return { t, t1 ->
- if (isAtLeast(expectedState)) {
+ if (lifecycle.currentState.isAtLeast(expectedState)) {
block(t, t1)
}
}