From 8b2e284e9088d4e89a3c1a6c494ae99ce1a8958a Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Sat, 9 Jan 2016 22:04:38 +0100
Subject: [PATCH] Fixed UTF-8 handling, added ability to display status
 messages

---
 app/src/main/java/de/kuschku/libquassel/Client.java   |  5 +++++
 .../kuschku/libquassel/events/StatusMessageEvent.java | 11 +++++++++++
 .../primitives/serializers/ByteArraySerializer.java   |  2 +-
 .../java/de/kuschku/quasseldroid_ng/MainActivity.java |  6 ++++++
 4 files changed, 23 insertions(+), 1 deletion(-)
 create mode 100644 app/src/main/java/de/kuschku/libquassel/events/StatusMessageEvent.java

diff --git a/app/src/main/java/de/kuschku/libquassel/Client.java b/app/src/main/java/de/kuschku/libquassel/Client.java
index d05245d02..7d677b919 100644
--- a/app/src/main/java/de/kuschku/libquassel/Client.java
+++ b/app/src/main/java/de/kuschku/libquassel/Client.java
@@ -11,6 +11,7 @@ import java.util.Map;
 import de.kuschku.libquassel.backlogmanagers.BacklogManager;
 import de.kuschku.libquassel.backlogmanagers.SimpleBacklogManager;
 import de.kuschku.libquassel.events.ConnectionChangeEvent;
+import de.kuschku.libquassel.events.StatusMessageEvent;
 import de.kuschku.libquassel.functions.types.InitRequestFunction;
 import de.kuschku.libquassel.functions.types.RpcCallFunction;
 import de.kuschku.libquassel.localtypes.Buffer;
@@ -64,6 +65,10 @@ public class Client {
         backlogManager.displayMessage(message.bufferInfo.id, message);
     }
 
+    public void displayStatusMsg(String scope, String message) {
+        busProvider.sendEvent(new StatusMessageEvent(scope, message));
+    }
+
     public void putNetwork(final Network network) {
         networks.put(network.getNetworkId(), network);
 
diff --git a/app/src/main/java/de/kuschku/libquassel/events/StatusMessageEvent.java b/app/src/main/java/de/kuschku/libquassel/events/StatusMessageEvent.java
new file mode 100644
index 000000000..17501e149
--- /dev/null
+++ b/app/src/main/java/de/kuschku/libquassel/events/StatusMessageEvent.java
@@ -0,0 +1,11 @@
+package de.kuschku.libquassel.events;
+
+public class StatusMessageEvent {
+    public final String scope;
+    public final String message;
+
+    public StatusMessageEvent(String scope, String message) {
+        this.scope = scope;
+        this.message = message;
+    }
+}
diff --git a/app/src/main/java/de/kuschku/libquassel/primitives/serializers/ByteArraySerializer.java b/app/src/main/java/de/kuschku/libquassel/primitives/serializers/ByteArraySerializer.java
index a9db2d4a8..f04bd7e30 100644
--- a/app/src/main/java/de/kuschku/libquassel/primitives/serializers/ByteArraySerializer.java
+++ b/app/src/main/java/de/kuschku/libquassel/primitives/serializers/ByteArraySerializer.java
@@ -50,7 +50,7 @@ public class ByteArraySerializer implements PrimitiveSerializer<String> {
                 // Get rid of the null byte at the end
                 contentBuffer.limit(len - 1);
             }
-            return Charsets.ISO_8859_1.decode(contentBuffer).toString();
+            return Charsets.UTF_8.decode(contentBuffer).toString();
         }
     }
 }
diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/MainActivity.java b/app/src/main/java/de/kuschku/quasseldroid_ng/MainActivity.java
index 8037ceb43..332256159 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/MainActivity.java
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/MainActivity.java
@@ -19,6 +19,7 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.widget.EditText;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import com.google.common.collect.Sets;
 import com.mikepenz.fastadapter.ICollapsible;
@@ -42,6 +43,7 @@ import de.kuschku.libquassel.BusProvider;
 import de.kuschku.libquassel.IProtocolHandler;
 import de.kuschku.libquassel.events.ConnectionChangeEvent;
 import de.kuschku.libquassel.events.GeneralErrorEvent;
+import de.kuschku.libquassel.events.StatusMessageEvent;
 import de.kuschku.libquassel.exceptions.UnknownTypeException;
 import de.kuschku.libquassel.functions.types.HandshakeFunction;
 import de.kuschku.libquassel.localtypes.Buffer;
@@ -322,6 +324,10 @@ public class MainActivity extends AppCompatActivity {
         }
     }
 
+    public void onEventMainThread(StatusMessageEvent event) {
+        Toast.makeText(this, String.format("%s: %s", event.scope, event.message), Toast.LENGTH_LONG).show();
+    }
+
     public void onEventMainThread(GeneralErrorEvent event) {
         if (event.exception != null && !(event.exception instanceof UnknownTypeException)) {
             Log.e("libquassel", event.toString());
-- 
GitLab