From 0ed34d2a44c0f04ce0771ef2beb2ffa73251d215 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Tue, 15 May 2018 15:18:38 +0200
Subject: [PATCH] Fixes #88

---
 .../network/NetworkEditFragment.kt            |  2 +-
 .../quassel/syncables/IrcChannel.kt           | 21 ++++++++-----------
 .../libquassel/quassel/syncables/IrcUser.kt   |  4 ++--
 .../libquassel/quassel/syncables/Network.kt   | 10 ++++-----
 .../quassel/syncables/interfaces/INetwork.kt  | 13 +++++++-----
 5 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragment.kt
index bce4c03c9..177d59138 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragment.kt
@@ -25,7 +25,7 @@ import de.kuschku.quasseldroid.ui.coresettings.SettingsFragment
 class NetworkEditFragment : NetworkBaseFragment(false), SettingsFragment.Deletable {
   override fun onSave() = network?.let { (it, data) ->
     applyChanges(data)
-    it?.requestUpdate(data.toVariantMap())
+    it?.requestSetNetworkInfo(data.networkInfo())
     true
   } ?: false
 
diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcChannel.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcChannel.kt
index 554895b13..f213b12c5 100644
--- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcChannel.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcChannel.kt
@@ -53,18 +53,15 @@ class IrcChannel(
   }
 
   override fun initChanModes(): QVariantMap = mapOf(
-    "A" to QVariant.of(_A_channelModes.entries.map { (key, value) ->
-      key to QVariant.of(value.toList(), Type.QStringList)
-    }, Type.QVariantMap
-    ),
-    "B" to QVariant.of(_B_channelModes.entries.map { (key, value) ->
-      key to QVariant.of(value, Type.QString)
-    }, Type.QVariantMap
-    ),
-    "C" to QVariant.of(_C_channelModes.entries.map { (key, value) ->
-      key to QVariant.of(value, Type.QString)
-    }, Type.QVariantMap
-    ),
+    "A" to QVariant.of(_A_channelModes.mapValues { (_, value) ->
+      QVariant.of(value.toList(), Type.QStringList)
+    }, Type.QVariantMap),
+    "B" to QVariant.of(_B_channelModes.mapValues { (_, value) ->
+      QVariant.of(value, Type.QString)
+    }, Type.QVariantMap),
+    "C" to QVariant.of(_C_channelModes.mapValues { (_, value) ->
+      QVariant.of(value, Type.QString)
+    }, Type.QVariantMap),
     "D" to QVariant.of(_D_channelModes.joinToString(), Type.QString)
   )
 
diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt
index 4ece8907d..6c5c38970 100644
--- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt
@@ -58,8 +58,8 @@ class IrcUser(
     "loginTime" to QVariant.of(loginTime(), Type.QDateTime),
     "server" to QVariant.of(server(), Type.QString),
     "ircOperator" to QVariant.of(ircOperator(), Type.QString),
-    "lastAwayMessage" to QVariant.of(lastAwayMessage(), Type.Long),
-    "lastAwayMessageTime" to QVariant.of(lastAwayMessageTime(), Type.Long),
+    "lastAwayMessage" to QVariant.of(lastAwayMessage(), Type.Int),
+    "lastAwayMessageTime" to QVariant.of(lastAwayMessageTime(), Type.QDateTime),
     "whoisServiceReply" to QVariant.of(whoisServiceReply(), Type.QString),
     "suserHost" to QVariant.of(suserHost(), Type.QString),
     "encrypted" to QVariant.of(encrypted(), Type.Bool),
diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt
index 49ac4ef7e..576fa0f03 100644
--- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt
@@ -185,7 +185,7 @@ class Network constructor(
 
   fun liveNetworkInfo() = live_networkInfo.map { networkInfo() }
 
-  fun setNetworkInfo(info: NetworkInfo) {
+  override fun setNetworkInfo(info: NetworkInfo) {
     // we don't set our ID!
     if (!info.networkName.isEmpty() && info.networkName != networkName())
       setNetworkName(info.networkName)
@@ -523,13 +523,13 @@ class Network constructor(
     _useSasl = sasl
   }
 
-  override fun setSaslAccount(account: String) {
+  override fun setSaslAccount(account: String?) {
     if (_saslAccount == account)
       return
     _saslAccount = account
   }
 
-  override fun setSaslPassword(password: String) {
+  override fun setSaslPassword(password: String?) {
     if (_saslPassword == password)
       return
     _saslPassword = password
@@ -962,12 +962,12 @@ class Network constructor(
       field = value
       live_networkInfo.onNext(Unit)
     }
-  private var _saslAccount: String = ""
+  private var _saslAccount: String? = null
     set(value) {
       field = value
       live_networkInfo.onNext(Unit)
     }
-  private var _saslPassword: String = ""
+  private var _saslPassword: String? = null
     set(value) {
       field = value
       live_networkInfo.onNext(Unit)
diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/INetwork.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/INetwork.kt
index 6811d3a0b..5e5141609 100644
--- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/INetwork.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/INetwork.kt
@@ -87,7 +87,7 @@ interface INetwork : ISyncableObject {
 
   @Slot
   fun requestSetNetworkInfo(info: NetworkInfo) {
-    REQUEST("requestSetNetworkInfo", ARG(info, QType.NetworkInfo))
+    REQUEST("requestSetNetworkInfo", ARG(info.toVariantMap(), QType.NetworkInfo))
   }
 
   @Slot
@@ -138,6 +138,9 @@ interface INetwork : ISyncableObject {
   @Slot
   fun setNetworkName(networkName: String)
 
+  @Slot
+  fun setNetworkInfo(info: NetworkInfo)
+
   @Slot
   fun setPerform(perform: QStringList)
 
@@ -145,10 +148,10 @@ interface INetwork : ISyncableObject {
   fun setRejoinChannels(rejoinChannels: Boolean)
 
   @Slot
-  fun setSaslAccount(account: String)
+  fun setSaslAccount(account: String?)
 
   @Slot
-  fun setSaslPassword(password: String)
+  fun setSaslPassword(password: String?)
 
   @Slot
   fun setServerList(serverList: QVariantList)
@@ -306,8 +309,8 @@ interface INetwork : ISyncableObject {
     var autoIdentifyService: String = "",
     var autoIdentifyPassword: String = "",
     var useSasl: Boolean = false,
-    var saslAccount: String = "",
-    var saslPassword: String = "",
+    var saslAccount: String? = null,
+    var saslPassword: String? = null,
     var useAutoReconnect: Boolean = true,
     var autoReconnectInterval: Int = 0,
     var autoReconnectRetries: Short = 0,
-- 
GitLab