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