From 97362fe64fc406f839748aec327a972724b0b50a Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Thu, 4 Feb 2016 14:56:13 +0100
Subject: [PATCH] Fixed an issue in the RPCCall invoker from SyncableObject

---
 .../libquassel/functions/types/RpcCallFunction.java    |  2 +-
 .../libquassel/syncables/types/SyncableObject.java     |  3 ++-
 .../syncables/types/impl/IgnoreListManager.java        | 10 ++++++++--
 .../kuschku/quasseldroid_ng/ui/chat/ChatActivity.java  |  2 ++
 4 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/app/src/main/java/de/kuschku/libquassel/functions/types/RpcCallFunction.java b/app/src/main/java/de/kuschku/libquassel/functions/types/RpcCallFunction.java
index 274755d5c..09e8c5e57 100644
--- a/app/src/main/java/de/kuschku/libquassel/functions/types/RpcCallFunction.java
+++ b/app/src/main/java/de/kuschku/libquassel/functions/types/RpcCallFunction.java
@@ -32,7 +32,7 @@ public class RpcCallFunction {
     @NonNull
     public final List<Object> params;
 
-    public RpcCallFunction(@NonNull String functionName, @NonNull List<Object> params) {
+    public RpcCallFunction(@NonNull String functionName, @NonNull List params) {
         this.functionName = functionName;
         this.params = params;
     }
diff --git a/app/src/main/java/de/kuschku/libquassel/syncables/types/SyncableObject.java b/app/src/main/java/de/kuschku/libquassel/syncables/types/SyncableObject.java
index ecf46760c..5a674da8d 100644
--- a/app/src/main/java/de/kuschku/libquassel/syncables/types/SyncableObject.java
+++ b/app/src/main/java/de/kuschku/libquassel/syncables/types/SyncableObject.java
@@ -92,7 +92,8 @@ public abstract class SyncableObject<T extends SyncableObject<T>> extends Observ
     public void rpc(@NonNull String procedureName, @NonNull List<QVariant> params) {
         assertNotNull(provider);
 
-        provider.dispatch(new RpcCallFunction(procedureName, params));
+        RpcCallFunction function = new RpcCallFunction(procedureName, params);
+        provider.dispatch(function);
     }
 
     public void rpc(@NonNull String procedureName, @NonNull Object[] params) {
diff --git a/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IgnoreListManager.java b/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IgnoreListManager.java
index 2ec5211e4..1e22403f3 100644
--- a/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IgnoreListManager.java
+++ b/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IgnoreListManager.java
@@ -22,6 +22,7 @@
 package de.kuschku.libquassel.syncables.types.impl;
 
 import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -157,11 +158,16 @@ public class IgnoreListManager extends AIgnoreListManager<IgnoreListManager> {
         private final SmartRegEx[] scopeRules;
         private boolean isActive;
 
-        public IgnoreListItem(int type, @NonNull String ignoreRule, boolean isRegEx, int strictness, int scope, @NonNull String scopeRule, boolean isActive) {
+        public IgnoreListItem(int type, @Nullable String ignoreRule, boolean isRegEx, int strictness, int scope, @Nullable String scopeRule, boolean isActive) {
             this(IgnoreType.of(type), ignoreRule, isRegEx, StrictnessType.of(strictness), ScopeType.of(scope), scopeRule, isActive);
         }
 
-        public IgnoreListItem(IgnoreType type, @NonNull String ignoreRule, boolean isRegEx, StrictnessType strictness, ScopeType scope, @NonNull String scopeRule, boolean isActive) {
+        public IgnoreListItem(IgnoreType type, @Nullable String ignoreRule, boolean isRegEx, StrictnessType strictness, ScopeType scope, @Nullable String scopeRule, boolean isActive) {
+            if (scopeRule == null)
+                scopeRule = "";
+            if (ignoreRule == null)
+                ignoreRule = "";
+
             this.type = type;
             this.ignoreRule = new SmartRegEx(ignoreRule, Pattern.CASE_INSENSITIVE, SmartRegEx.Syntax.WILDCARD);
             this.isRegEx = isRegEx;
diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.java
index 2444e5132..c6724ed5a 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.java
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.java
@@ -615,6 +615,8 @@ public class ChatActivity extends AppCompatActivity {
             String text = editor.toFormatString();
             context.client().sendInput(buffer.getInfo(), text);
             chatline.setText("");
+        } else {
+            Snackbar.make(messages, "No buffer opened", Snackbar.LENGTH_LONG).show();
         }
     }
 
-- 
GitLab