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