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 a7955ea60a8d1697e25935687f8e35983f40dcc3..14fd9df05e31d490824579bf3487adcea362e173 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 f0e9eb91f5b8b45812decab702738c967fde149d..4a6284f5a54fd7b87158ebf8a78cea8000df2249 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() )