From cd845f03585d438f1631a5e5dc8a3fef8a660ba9 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Mon, 14 Jan 2019 12:36:35 +0100
Subject: [PATCH] Prepare for adding Network channel listing support

---
 .../quassel/syncables/IrcListHelper.kt           | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcListHelper.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcListHelper.kt
index 2dcf48ab3..62140abd1 100644
--- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcListHelper.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcListHelper.kt
@@ -24,17 +24,33 @@ import de.kuschku.libquassel.protocol.QStringList
 import de.kuschku.libquassel.protocol.QVariantList
 import de.kuschku.libquassel.quassel.syncables.interfaces.IIrcListHelper
 import de.kuschku.libquassel.session.SignalProxy
+import de.kuschku.libquassel.util.rxjava.ReusableUnicastSubject
 
 class IrcListHelper constructor(
   proxy: SignalProxy
 ) : SyncableObject(proxy, "IrcListHelper"), IIrcListHelper {
+  sealed class Event {
+    data class ChannelList(val netId: NetworkId, val channelFilters: QStringList,
+                           val data: QVariantList) : Event()
+
+    data class Finished(val netId: NetworkId) : Event()
+
+    data class Error(val error: String) : Event()
+  }
+
+  private val subject = ReusableUnicastSubject.create<Event>()
+  val observable = subject.publish().refCount()
+
   override fun receiveChannelList(netId: NetworkId, channelFilters: QStringList,
                                   data: QVariantList) {
+    subject.onNext(Event.ChannelList(netId, channelFilters, data))
   }
 
   override fun reportFinishedList(netId: NetworkId) {
+    subject.onNext(Event.Finished(netId))
   }
 
   override fun reportError(error: String) {
+    subject.onNext(Event.Error(error))
   }
 }
-- 
GitLab