Skip to content
Snippets Groups Projects
Verified Commit a89b6668 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Includes missing files from previous commits

parent f0593210
No related branches found
No related tags found
No related merge requests found
...@@ -36,7 +36,7 @@ class QuasselFeatures( ...@@ -36,7 +36,7 @@ class QuasselFeatures(
fun toStringList() = enabledFeatures.map(ExtendedFeature::name) fun toStringList() = enabledFeatures.map(ExtendedFeature::name)
fun hasFeature(feature: ExtendedFeature) = enabledFeatures.contains(feature) infix fun hasFeature(feature: ExtendedFeature) = enabledFeatures.contains(feature)
companion object { companion object {
fun empty() = QuasselFeatures(emptySet(), emptySet()) fun empty() = QuasselFeatures(emptySet(), emptySet())
......
...@@ -23,6 +23,7 @@ import de.kuschku.libquassel.protocol.QVariant ...@@ -23,6 +23,7 @@ import de.kuschku.libquassel.protocol.QVariant
import de.kuschku.libquassel.protocol.QVariantMap import de.kuschku.libquassel.protocol.QVariantMap
import de.kuschku.libquassel.protocol.Type import de.kuschku.libquassel.protocol.Type
import de.kuschku.libquassel.protocol.valueOr import de.kuschku.libquassel.protocol.valueOr
import de.kuschku.libquassel.quassel.ExtendedFeature
import de.kuschku.libquassel.quassel.syncables.interfaces.IIrcUser import de.kuschku.libquassel.quassel.syncables.interfaces.IIrcUser
import de.kuschku.libquassel.session.SignalProxy import de.kuschku.libquassel.session.SignalProxy
import de.kuschku.libquassel.util.irc.HostmaskHelper import de.kuschku.libquassel.util.irc.HostmaskHelper
...@@ -58,6 +59,7 @@ class IrcUser( ...@@ -58,6 +59,7 @@ class IrcUser(
"server" to QVariant.of(server(), Type.QString), "server" to QVariant.of(server(), Type.QString),
"ircOperator" to QVariant.of(ircOperator(), Type.QString), "ircOperator" to QVariant.of(ircOperator(), Type.QString),
"lastAwayMessage" to QVariant.of(lastAwayMessage(), Type.Long), "lastAwayMessage" to QVariant.of(lastAwayMessage(), Type.Long),
"lastAwayMessageTime" to QVariant.of(lastAwayMessageTime(), Type.Long),
"whoisServiceReply" to QVariant.of(whoisServiceReply(), Type.QString), "whoisServiceReply" to QVariant.of(whoisServiceReply(), Type.QString),
"suserHost" to QVariant.of(suserHost(), Type.QString), "suserHost" to QVariant.of(suserHost(), Type.QString),
"encrypted" to QVariant.of(encrypted(), Type.Bool), "encrypted" to QVariant.of(encrypted(), Type.Bool),
...@@ -78,7 +80,9 @@ class IrcUser( ...@@ -78,7 +80,9 @@ class IrcUser(
setLoginTime(properties["loginTime"].valueOr(this::loginTime)) setLoginTime(properties["loginTime"].valueOr(this::loginTime))
setServer(properties["server"].valueOr(this::server)) setServer(properties["server"].valueOr(this::server))
setIrcOperator(properties["ircOperator"].valueOr(this::ircOperator)) setIrcOperator(properties["ircOperator"].valueOr(this::ircOperator))
setLastAwayMessage(properties["lastAwayMessage"].valueOr(this::lastAwayMessage)) setLastAwayMessageTime(properties["lastAwayMessageTime"].valueOr {
Instant.ofEpochSecond(properties["lastAwayMessage"].valueOr(this::lastAwayMessage).toLong())
})
setWhoisServiceReply(properties["whoisServiceReply"].valueOr(this::whoisServiceReply)) setWhoisServiceReply(properties["whoisServiceReply"].valueOr(this::whoisServiceReply))
setSuserHost(properties["suserHost"].valueOr(this::suserHost)) setSuserHost(properties["suserHost"].valueOr(this::suserHost))
setEncrypted(properties["encrypted"].valueOr(this::encrypted)) setEncrypted(properties["encrypted"].valueOr(this::encrypted))
...@@ -104,7 +108,8 @@ class IrcUser( ...@@ -104,7 +108,8 @@ class IrcUser(
fun loginTime() = _loginTime fun loginTime() = _loginTime
fun ircOperator() = _ircOperator fun ircOperator() = _ircOperator
fun lastAwayMessage() = _lastAwayMessage fun lastAwayMessage() = _lastAwayMessageTime.epochSecond.toInt()
fun lastAwayMessageTime() = _lastAwayMessageTime
fun whoisServiceReply() = _whoisServiceReply fun whoisServiceReply() = _whoisServiceReply
fun suserHost() = _suserHost fun suserHost() = _suserHost
fun encrypted() = _encrypted fun encrypted() = _encrypted
...@@ -183,12 +188,17 @@ class IrcUser( ...@@ -183,12 +188,17 @@ class IrcUser(
} }
} }
override fun setLastAwayMessage(lastAwayMessage: Long) { override fun setLastAwayMessage(lastAwayMessage: Int) {
if (lastAwayMessage > _lastAwayMessage) { if (lastAwayMessage > lastAwayMessage() &&
_lastAwayMessage = lastAwayMessage !(proxy.features.negotiated hasFeature ExtendedFeature.LongTime)) {
_lastAwayMessageTime = Instant.ofEpochSecond(lastAwayMessage.toLong())
} }
} }
override fun setLastAwayMessageTime(lastAwayMessageTime: Instant) {
_lastAwayMessageTime = lastAwayMessageTime
}
override fun setWhoisServiceReply(whoisServiceReply: String) { override fun setWhoisServiceReply(whoisServiceReply: String) {
if (_whoisServiceReply != whoisServiceReply) { if (_whoisServiceReply != whoisServiceReply) {
_whoisServiceReply = whoisServiceReply _whoisServiceReply = whoisServiceReply
...@@ -331,7 +341,7 @@ class IrcUser( ...@@ -331,7 +341,7 @@ class IrcUser(
field = value field = value
hasChangedNotification.onNext(Unit) hasChangedNotification.onNext(Unit)
} }
private var _lastAwayMessage: Long = 0L private var _lastAwayMessageTime: Instant = Instant.EPOCH
set(value) { set(value) {
field = value field = value
hasChangedNotification.onNext(Unit) hasChangedNotification.onNext(Unit)
......
...@@ -68,7 +68,10 @@ interface IIrcUser : ISyncableObject { ...@@ -68,7 +68,10 @@ interface IIrcUser : ISyncableObject {
fun setIrcOperator(ircOperator: String) fun setIrcOperator(ircOperator: String)
@Slot @Slot
fun setLastAwayMessage(lastAwayMessage: Long) fun setLastAwayMessage(lastAwayMessage: Int)
@Slot
fun setLastAwayMessageTime(lastAwayMessageTime: Instant)
@Slot @Slot
fun setLoginTime(loginTime: Instant) fun setLoginTime(loginTime: Instant)
......
...@@ -19,11 +19,13 @@ ...@@ -19,11 +19,13 @@
package de.kuschku.libquassel.session package de.kuschku.libquassel.session
import de.kuschku.libquassel.connection.Features
import de.kuschku.libquassel.protocol.IdentityId import de.kuschku.libquassel.protocol.IdentityId
import de.kuschku.libquassel.protocol.NetworkId import de.kuschku.libquassel.protocol.NetworkId
import de.kuschku.libquassel.protocol.QVariantList import de.kuschku.libquassel.protocol.QVariantList
import de.kuschku.libquassel.protocol.message.HandshakeMessage import de.kuschku.libquassel.protocol.message.HandshakeMessage
import de.kuschku.libquassel.protocol.message.SignalProxyMessage import de.kuschku.libquassel.protocol.message.SignalProxyMessage
import de.kuschku.libquassel.quassel.QuasselFeatures
import de.kuschku.libquassel.quassel.syncables.Identity import de.kuschku.libquassel.quassel.syncables.Identity
import de.kuschku.libquassel.quassel.syncables.Network import de.kuschku.libquassel.quassel.syncables.Network
import de.kuschku.libquassel.quassel.syncables.interfaces.ISyncableObject import de.kuschku.libquassel.quassel.syncables.interfaces.ISyncableObject
...@@ -63,6 +65,8 @@ interface SignalProxy { ...@@ -63,6 +65,8 @@ interface SignalProxy {
fun synchronize(syncableObject: ISyncableObject?) = synchronize(syncableObject, false) fun synchronize(syncableObject: ISyncableObject?) = synchronize(syncableObject, false)
fun stopSynchronize(syncableObject: ISyncableObject?) fun stopSynchronize(syncableObject: ISyncableObject?)
val features: Features
companion object { companion object {
val NULL = object : SignalProxy { val NULL = object : SignalProxy {
override fun dispatch(message: SignalProxyMessage) = Unit override fun dispatch(message: SignalProxyMessage) = Unit
...@@ -81,6 +85,8 @@ interface SignalProxy { ...@@ -81,6 +85,8 @@ interface SignalProxy {
override fun renameObject(className: String, newName: String, oldName: String) = Unit override fun renameObject(className: String, newName: String, oldName: String) = Unit
override fun synchronize(syncableObject: ISyncableObject?, baseInit: Boolean) = Unit override fun synchronize(syncableObject: ISyncableObject?, baseInit: Boolean) = Unit
override fun stopSynchronize(syncableObject: ISyncableObject?) = Unit override fun stopSynchronize(syncableObject: ISyncableObject?) = Unit
override val features get() = Features(QuasselFeatures.empty(), QuasselFeatures.empty())
} }
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment