From 6a8323716778c731d27a9c9f70a8328cffb3a337 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Sun, 9 Dec 2018 20:28:09 +0100
Subject: [PATCH] Fixes #134

---
 .../quasseldroid/ui/chat/info/core/ClientAdapter.kt   | 11 ++++++++++-
 .../kuschku/libquassel/connection/CoreConnection.kt   |  5 +----
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/core/ClientAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/core/ClientAdapter.kt
index a7955ea60..14fd9df05 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/core/ClientAdapter.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/core/ClientAdapter.kt
@@ -22,6 +22,7 @@ import de.kuschku.quasseldroid.util.helper.tint
 import de.kuschku.quasseldroid.util.helper.visibleIf
 import de.kuschku.quasseldroid.util.ui.BetterLinkMovementMethod
 import de.kuschku.quasseldroid.util.ui.LinkLongClickMenuHelper
+import org.threeten.bp.Instant
 import org.threeten.bp.ZoneId
 import org.threeten.bp.format.DateTimeFormatter
 import org.threeten.bp.format.FormatStyle
@@ -53,11 +54,13 @@ class ClientAdapter : ListAdapter<CoreInfo.ConnectedClientData, ClientAdapter.Cl
   override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ClientViewHolder(
     LayoutInflater.from(parent.context).inflate(R.layout.widget_client, parent, false),
     dateTimeFormatter,
+    dateFormatter,
     ::disconnect,
     movementMethod
   )
 
   private val dateTimeFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
+  private val dateFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)
 
   override fun onBindViewHolder(holder: ClientViewHolder, position: Int) =
     holder.bind(getItem(position))
@@ -65,6 +68,7 @@ class ClientAdapter : ListAdapter<CoreInfo.ConnectedClientData, ClientAdapter.Cl
   class ClientViewHolder(
     itemView: View,
     private val dateTimeFormatter: DateTimeFormatter,
+    private val dateFormatter: DateTimeFormatter,
     private val disconnectListener: (Int) -> Unit,
     movementMethod: BetterLinkMovementMethod
   ) : RecyclerView.ViewHolder(itemView) {
@@ -114,7 +118,12 @@ class ClientAdapter : ListAdapter<CoreInfo.ConnectedClientData, ClientAdapter.Cl
       id = data.id
 
       ip.text = data.remoteAddress
-      version.text = Html.fromHtml(data.clientVersion)
+      val versionTime = data.clientVersionDate.toLongOrNull()
+      val formattedVersionTime = if (versionTime != null)
+        dateFormatter.format(Instant.ofEpochSecond(versionTime).atZone(ZoneId.systemDefault()))
+      else
+        data.clientVersionDate
+      version.text = Html.fromHtml(data.clientVersion + " ($formattedVersionTime)")
       val connectedSinceFormatted = dateTimeFormatter.format(data.connectedSince.atZone(ZoneId.systemDefault()))
       uptime.text = itemView.context.getString(R.string.label_core_connected_since,
                                                connectedSinceFormatted)
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 f0e9eb91f..4a6284f5a 100644
--- a/lib/src/main/java/de/kuschku/libquassel/connection/CoreConnection.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/connection/CoreConnection.kt
@@ -40,8 +40,6 @@ import de.kuschku.libquassel.util.helpers.write
 import de.kuschku.libquassel.util.nio.ChainedByteBuffer
 import de.kuschku.libquassel.util.nio.WrappedChannel
 import io.reactivex.subjects.BehaviorSubject
-import org.threeten.bp.ZoneOffset
-import org.threeten.bp.format.DateTimeFormatter
 import java.io.Closeable
 import java.lang.Thread.UncaughtExceptionHandler
 import java.net.Socket
@@ -141,8 +139,7 @@ class CoreConnection(
         dispatch(
           HandshakeMessage.ClientInit(
             clientVersion = clientData.identifier,
-            buildDate = DateTimeFormatter.ofPattern("MMM dd yyyy HH:mm:ss")
-              .format(clientData.buildDate.atOffset(ZoneOffset.UTC)),
+            buildDate = clientData.buildDate.epochSecond.toString(),
             clientFeatures = clientData.clientFeatures.toInt(),
             featureList = clientData.clientFeatures.toStringList()
           )
-- 
GitLab