diff options
| author | Albin <albin@mullvad.net> | 2022-07-13 15:31:16 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2022-07-20 09:59:02 +0200 |
| commit | 040b6e0155612945f66c49d361c63c34c56a3357 (patch) | |
| tree | a1c0784648fdedc849f6c22c74bbd55064c8e4f7 /android | |
| parent | e47722cd17bd8cfd61f52445847bf931a5108892 (diff) | |
| download | mullvadvpn-040b6e0155612945f66c49d361c63c34c56a3357.tar.xz mullvadvpn-040b6e0155612945f66c49d361c63c34c56a3357.zip | |
Add EventNotifier flow wrapper
Diffstat (limited to 'android')
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/FlowUtils.kt | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/FlowUtils.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/FlowUtils.kt index a0a809f8ff..de76ff5b0b 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/FlowUtils.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/FlowUtils.kt @@ -17,6 +17,7 @@ import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.flow.take import net.mullvad.mullvadvpn.model.ServiceResult import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionState +import net.mullvad.talpid.util.EventNotifier fun <T> SendChannel<T>.safeOffer(element: T): Boolean { return runCatching { offer(element) }.getOrDefault(false) @@ -78,3 +79,9 @@ fun <R> Flow<ServiceConnectionState>.flatMapReadyConnectionOrDefault( } } } + +fun <T> callbackFlowFromNotifier(notifier: EventNotifier<T>) = callbackFlow<T> { + val handler: (T) -> Unit = { value -> trySend(value) } + notifier.subscribe(this, handler) + awaitClose { notifier.unsubscribe(this) } +} |
