From ca5793f2d74313e0dbb2fbb1dd5e7e184305c14c Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Wed, 18 Apr 2018 00:52:12 +0200
Subject: [PATCH] Add missing code

---
 .../quassel/syncables/HighlightRuleManager.kt | 33 +++++++++++--------
 .../viewmodel/QuasselViewModel.kt             |  2 ++
 2 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/HighlightRuleManager.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/HighlightRuleManager.kt
index 8176eec97..1814b07b3 100644
--- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/HighlightRuleManager.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/HighlightRuleManager.kt
@@ -19,26 +19,20 @@ class HighlightRuleManager(
   ) : Serializable
 
   override fun toVariantMap(): QVariantMap = mapOf(
-    "HighlightRuleList" to QVariant.of(initHighlightRuleList(), Type.QVariantMap),
-    "HighlightNick" to QVariant.of(_highlightNick.value, Type.Int),
-    "NicksCaseSensitive" to QVariant.of(_nicksCaseSensitive, Type.Bool)
+    "HighlightRuleList" to QVariant.of(initHighlightRuleList(), Type.QVariantMap)
   )
 
   override fun fromVariantMap(properties: QVariantMap) {
     initSetHighlightRuleList(properties["HighlightRuleList"].valueOr(::emptyMap))
-    _highlightNick = properties["HighlightNick"].value<Int>()?.let {
-      IHighlightRuleManager.HighlightNickType.of(it)
-    } ?: _highlightNick
-    _nicksCaseSensitive = properties["NicksCaseSensitive"].value(_nicksCaseSensitive)
   }
 
   override fun initHighlightRuleList(): QVariantMap = mapOf(
     "name" to QVariant.of(_highlightRuleList.map {
-      QVariant.of(it.name, Type.QString)
-    }, Type.QVariantList),
+      it.name
+    }, Type.QStringList),
     "isRegEx" to QVariant.of(_highlightRuleList.map {
       QVariant.of(it.isRegEx, Type.Bool)
-    }, Type.QStringList),
+    }, Type.QVariantList),
     "isCaseSensitive" to QVariant.of(_highlightRuleList.map {
       QVariant.of(it.isCaseSensitive, Type.Bool)
     }, Type.QVariantList),
@@ -49,11 +43,13 @@ class HighlightRuleManager(
       QVariant.of(it.isInverse, Type.Bool)
     }, Type.QVariantList),
     "sender" to QVariant.of(_highlightRuleList.map {
-      QVariant.of(it.sender, Type.QString)
+      it.sender
     }, Type.QStringList),
     "channel" to QVariant.of(_highlightRuleList.map {
-      QVariant.of(it.channel, Type.QString)
-    }, Type.QVariantList)
+      it.channel
+    }, Type.QStringList),
+    "highlightNick" to QVariant.of(_highlightNick.value, Type.Int),
+    "nicksCaseSensitive" to QVariant.of(_nicksCaseSensitive, Type.Bool)
   )
 
   override fun initSetHighlightRuleList(highlightRuleList: QVariantMap) {
@@ -81,6 +77,10 @@ class HighlightRuleManager(
         channel = channelList[it] ?: ""
       )
     })
+    _highlightNick = highlightRuleList["highlightNick"].value<Int>()?.let {
+      IHighlightRuleManager.HighlightNickType.of(it)
+    } ?: _highlightNick
+    _nicksCaseSensitive = highlightRuleList["nicksCaseSensitive"].value(_nicksCaseSensitive)
   }
 
   override fun removeHighlightRule(highlightRule: String) = removeAt(indexOf(highlightRule))
@@ -101,10 +101,13 @@ class HighlightRuleManager(
     )
   }
 
+
+  fun highlightNick() = _highlightNick
   override fun setHighlightNick(highlightNick: Int) {
     _highlightNick = IHighlightRuleManager.HighlightNickType.of(highlightNick) ?: _highlightNick
   }
 
+  fun nicksCaseSensitive() = _nicksCaseSensitive
   override fun setNicksCaseSensitive(nicksCaseSensitive: Boolean) {
     _nicksCaseSensitive = nicksCaseSensitive
   }
@@ -124,6 +127,10 @@ class HighlightRuleManager(
     _highlightRuleList = list
   }
 
+  fun copy() = HighlightRuleManager(proxy).also {
+    it.fromVariantMap(toVariantMap())
+  }
+
   private var _highlightRuleList = emptyList<HighlightRule>()
   private var _highlightNick = IHighlightRuleManager.HighlightNickType.CurrentNick
   private var _nicksCaseSensitive = false
diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
index d0434bd8f..8e8e54401 100644
--- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
+++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
@@ -74,6 +74,8 @@ class QuasselViewModel : ViewModel() {
 
   val ignoreListManager = session.mapMapNullable(ISession::ignoreListManager)
 
+  val highlightRuleManager = session.mapMapNullable(ISession::highlightRuleManager)
+
   val networks = session.switchMap {
     it.map(ISession::liveNetworks).orElse(Observable.just(emptyMap()))
   }
-- 
GitLab