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