From 167fa1adf380e10ed98b036b995e650df56486ad Mon Sep 17 00:00:00 2001 From: Janne Mareike Koschinski <janne@kuschku.de> Date: Fri, 25 Feb 2022 19:32:35 +0100 Subject: [PATCH] feat: correct issue with state holder api --- build.gradle.kts | 2 +- .../libquassel/protocol/util/StateHolderExtensions.kt | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 63be78d..c2c2bd0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,4 +15,4 @@ plugins { } group = "de.justjanne.libquassel" -version = "0.8.0" +version = "0.8.1" diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/util/StateHolderExtensions.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/util/StateHolderExtensions.kt index 780c6d2..c2b466b 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/util/StateHolderExtensions.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/util/StateHolderExtensions.kt @@ -12,14 +12,17 @@ package de.justjanne.libquassel.protocol.util import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine -import kotlinx.coroutines.flow.emptyFlow import kotlinx.coroutines.flow.flatMapLatest +import kotlinx.coroutines.flow.flowOf @ExperimentalCoroutinesApi @Suppress("NOTHING_TO_INLINE") inline fun <T> Flow<StateHolder<T>?>.flatMap(): Flow<T?> = - flatMapLatest { it?.flow() ?: emptyFlow() } + flatMapLatest { it?.flow() ?: flowOf(null) } @ExperimentalCoroutinesApi inline fun <reified T> Flow<Iterable<StateHolder<T>>?>.combineLatest(): Flow<List<T>> = - flatMapLatest { combine(it?.map(StateHolder<T>::flow).orEmpty(), ::listOf) } + flatMapLatest { + if (it != null) combine(it.map(StateHolder<T>::flow), ::listOf) + else flowOf(emptyList()) + } -- GitLab