From 9d535387314ce69baeab0fd15b899165b04165f6 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Sun, 20 May 2018 02:56:19 +0200
Subject: [PATCH] Further debugging improvements for #79

---
 .../de/kuschku/quasseldroid/service/QuasselService.kt    | 2 +-
 .../quasseldroid/util/backport/ReadableWrappedChannel.kt | 6 ++++++
 .../de/kuschku/libquassel/connection/CoreConnection.kt   | 9 +++++++--
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt
index e701a543b..7d5ccb03b 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt
@@ -364,7 +364,7 @@ class QuasselService : DaggerLifecycleService(),
       .observe(
         this, Observer {
         handlerService.backend {
-          LoggingHandler.log(INFO, "QuasselService", "Autoreconnect: Closed")
+          LoggingHandler.log(INFO, "QuasselService", "Autoreconnect: State Changed")
           sessionManager.autoReconnect()
         }
       })
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/backport/ReadableWrappedChannel.kt b/app/src/main/java/de/kuschku/quasseldroid/util/backport/ReadableWrappedChannel.kt
index 6e0fd353d..ab3c8fa2d 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/backport/ReadableWrappedChannel.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/backport/ReadableWrappedChannel.kt
@@ -19,6 +19,8 @@
 
 package de.kuschku.quasseldroid.util.backport
 
+import de.kuschku.libquassel.util.compatibility.LoggingHandler.Companion.log
+import de.kuschku.libquassel.util.compatibility.LoggingHandler.LogLevel.ERROR
 import java.io.InputStream
 import java.nio.ByteBuffer
 import java.nio.channels.ReadableByteChannel
@@ -59,6 +61,10 @@ class ReadableWrappedChannel(
           end(readData > 0)
         }
 
+        if (readData <= 0) {
+          log(ERROR, "ReadableWrappedChannel", "Read: $readData")
+        }
+
         // read is negative if no data was read, in that case, terminate
         if (readData < 0)
           break
diff --git a/lib/src/main/java/de/kuschku/libquassel/connection/CoreConnection.kt b/lib/src/main/java/de/kuschku/libquassel/connection/CoreConnection.kt
index d93b55792..3e6b6e254 100644
--- a/lib/src/main/java/de/kuschku/libquassel/connection/CoreConnection.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/connection/CoreConnection.kt
@@ -86,8 +86,13 @@ class CoreConnection(
   }
 
   fun setState(value: ConnectionState) {
-    log(DEBUG, TAG, value.name)
-    state.onNext(value)
+    val current = state.value
+    if (current != ConnectionState.CLOSED) {
+      log(DEBUG, TAG, value.name)
+      state.onNext(value)
+    } else if (current != value) {
+      log(WARN, TAG, "Trying to set state while closed: $value", Throwable())
+    }
   }
 
   private fun sendHandshake() {
-- 
GitLab