From 19ac2d785fee35de6eeb86c529892c650dc97283 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Mon, 21 Jan 2019 19:44:16 +0100
Subject: [PATCH] Fixed crash caused by different temporal types being
 transmitted

---
 .../kuschku/libquassel/quassel/syncables/IrcUser.kt | 13 +++++++------
 .../quassel/syncables/interfaces/IIrcUser.kt        |  8 ++++----
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt
index 77259f0f6..c53296102 100644
--- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt
@@ -27,6 +27,7 @@ import de.kuschku.libquassel.util.irc.HostmaskHelper
 import io.reactivex.Observable
 import io.reactivex.subjects.BehaviorSubject
 import org.threeten.bp.Instant
+import org.threeten.bp.temporal.Temporal
 import java.nio.charset.Charset
 
 class IrcUser(
@@ -176,16 +177,16 @@ class IrcUser(
     }
   }
 
-  override fun setIdleTime(idleTime: Instant) {
+  override fun setIdleTime(idleTime: Temporal) {
     if (_idleTime != idleTime) {
-      _idleTime = idleTime
+      _idleTime = Instant.from(idleTime)
       _idleTimeSet = Instant.now()
     }
   }
 
-  override fun setLoginTime(loginTime: Instant) {
+  override fun setLoginTime(loginTime: Temporal) {
     if (_loginTime != loginTime) {
-      _loginTime = loginTime
+      _loginTime = Instant.from(loginTime)
     }
   }
 
@@ -202,8 +203,8 @@ class IrcUser(
     }
   }
 
-  override fun setLastAwayMessageTime(lastAwayMessageTime: Instant) {
-    _lastAwayMessageTime = lastAwayMessageTime
+  override fun setLastAwayMessageTime(lastAwayMessageTime: Temporal) {
+    _lastAwayMessageTime = Instant.from(lastAwayMessageTime)
   }
 
   override fun setWhoisServiceReply(whoisServiceReply: String) {
diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIrcUser.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIrcUser.kt
index 48a86930c..c6ff31439 100644
--- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIrcUser.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIrcUser.kt
@@ -23,7 +23,7 @@ import de.kuschku.libquassel.annotations.Slot
 import de.kuschku.libquassel.annotations.Syncable
 import de.kuschku.libquassel.protocol.QVariantMap
 import de.kuschku.libquassel.quassel.syncables.IrcChannel
-import org.threeten.bp.Instant
+import org.threeten.bp.temporal.Temporal
 
 @Syncable(name = "IrcUser")
 interface IIrcUser : ISyncableObject {
@@ -62,7 +62,7 @@ interface IIrcUser : ISyncableObject {
   fun setHost(host: String)
 
   @Slot
-  fun setIdleTime(idleTime: Instant)
+  fun setIdleTime(idleTime: Temporal)
 
   @Slot
   fun setIrcOperator(ircOperator: String)
@@ -71,10 +71,10 @@ interface IIrcUser : ISyncableObject {
   fun setLastAwayMessage(lastAwayMessage: Int)
 
   @Slot
-  fun setLastAwayMessageTime(lastAwayMessageTime: Instant)
+  fun setLastAwayMessageTime(lastAwayMessageTime: Temporal)
 
   @Slot
-  fun setLoginTime(loginTime: Instant)
+  fun setLoginTime(loginTime: Temporal)
 
   @Slot
   fun setNick(nick: String)
-- 
GitLab