From fe09c93fc45423c1399cb270cd6e0dd9db844b71 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Wed, 23 Jan 2019 11:50:56 +0100 Subject: [PATCH] Fixes several minor crashes --- .../quassel/syncables/BufferSyncer.kt | 2 +- .../quassel/syncables/BufferViewConfig.kt | 4 +- .../quassel/syncables/HighlightRuleManager.kt | 8 +- .../quassel/syncables/IgnoreListManager.kt | 26 ++--- .../quassel/syncables/IrcChannel.kt | 26 ++--- .../quassel/syncables/IrcListHelper.kt | 4 +- .../libquassel/quassel/syncables/IrcUser.kt | 84 ++++++------- .../libquassel/quassel/syncables/Network.kt | 110 +++++++++++------- .../quassel/syncables/RpcHandler.kt | 12 +- .../syncables/interfaces/IBufferSyncer.kt | 2 +- .../syncables/interfaces/IBufferViewConfig.kt | 4 +- .../interfaces/IHighlightRuleManager.kt | 10 +- .../interfaces/IIgnoreListManager.kt | 16 +-- .../syncables/interfaces/IIrcChannel.kt | 12 +- .../syncables/interfaces/IIrcListHelper.kt | 2 +- .../quassel/syncables/interfaces/IIrcUser.kt | 32 ++--- .../quassel/syncables/interfaces/INetwork.kt | 36 +++--- .../syncables/interfaces/IRpcHandler.kt | 8 +- .../quassel/syncables/interfaces/ITransfer.kt | 4 +- 19 files changed, 216 insertions(+), 186 deletions(-) diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt index 1b63fd425..fbc7df8cb 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt @@ -183,7 +183,7 @@ class BufferSyncer constructor( notificationManager?.clear(buffer) } - override fun renameBuffer(buffer: BufferId, newName: String) { + override fun renameBuffer(buffer: BufferId, newName: String?) { val bufferInfo = _bufferInfos[buffer] if (bufferInfo != null) { _bufferInfos[buffer] = bufferInfo.copy(bufferName = newName) diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferViewConfig.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferViewConfig.kt index 361b64b91..59a3669d7 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferViewConfig.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferViewConfig.kt @@ -220,8 +220,8 @@ class BufferViewConfig constructor( super.setAllowedBufferTypes(bufferTypes) } - override fun setBufferViewName(bufferViewName: String) { - _bufferViewName = bufferViewName + override fun setBufferViewName(bufferViewName: String?) { + _bufferViewName = bufferViewName ?: "" super.setBufferViewName(bufferViewName) } diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/HighlightRuleManager.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/HighlightRuleManager.kt index cd4b9121b..5015d0936 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/HighlightRuleManager.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/HighlightRuleManager.kt @@ -117,13 +117,13 @@ class HighlightRuleManager( } } - override fun addHighlightRule(id: Int, name: String, isRegEx: Boolean, isCaseSensitive: Boolean, - isEnabled: Boolean, isInverse: Boolean, sender: String, - chanName: String) { + override fun addHighlightRule(id: Int, name: String?, isRegEx: Boolean, isCaseSensitive: Boolean, + isEnabled: Boolean, isInverse: Boolean, sender: String?, + chanName: String?) { if (contains(id)) return _highlightRuleList += HighlightRule( - id, name, isRegEx, isCaseSensitive, isEnabled, isInverse, sender, chanName + id, name ?: "", isRegEx, isCaseSensitive, isEnabled, isInverse, sender ?: "", chanName ?: "" ) } diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IgnoreListManager.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IgnoreListManager.kt index 132e6d9b3..66a4c5ec4 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IgnoreListManager.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IgnoreListManager.kt @@ -98,23 +98,23 @@ class IgnoreListManager constructor( } } - override fun addIgnoreListItem(type: Int, ignoreRule: String, isRegEx: Boolean, strictness: Int, - scope: Int, scopeRule: String, isActive: Boolean) { + override fun addIgnoreListItem(type: Int, ignoreRule: String?, isRegEx: Boolean, strictness: Int, + scope: Int, scopeRule: String?, isActive: Boolean) { if (contains(ignoreRule)) return _ignoreList += IgnoreListItem(type, ignoreRule, isRegEx, strictness, scope, scopeRule, isActive) } - override fun removeIgnoreListItem(ignoreRule: String) = removeAt(indexOf(ignoreRule)) + override fun removeIgnoreListItem(ignoreRule: String?) = removeAt(indexOf(ignoreRule)) - override fun toggleIgnoreRule(ignoreRule: String) { + override fun toggleIgnoreRule(ignoreRule: String?) { _ignoreList = _ignoreList.map { if (it.ignoreRule == ignoreRule) it.copy(isActive = !it.isActive) else it } } - fun indexOf(ignore: String): Int = _ignoreList.indexOfFirst { it.ignoreRule == ignore } - fun contains(ignore: String) = _ignoreList.any { it.ignoreRule == ignore } + fun indexOf(ignore: String?): Int = _ignoreList.indexOfFirst { it.ignoreRule == ignore } + fun contains(ignore: String?) = _ignoreList.any { it.ignoreRule == ignore } fun isEmpty() = _ignoreList.isEmpty() fun count() = _ignoreList.count() fun removeAt(index: Int) { @@ -177,23 +177,23 @@ class IgnoreListManager constructor( val regEx: ExpressionMatch, val scopeRegEx: ExpressionMatch ) : Serializable { - constructor(type: Int, ignoreRule: String, isRegEx: Boolean, strictness: Int, scope: Int, - scopeRule: String, isActive: Boolean) : this( + constructor(type: Int, ignoreRule: String?, isRegEx: Boolean, strictness: Int, scope: Int, + scopeRule: String?, isActive: Boolean) : this( IgnoreType.of(type), ignoreRule, isRegEx, StrictnessType.of(strictness), ScopeType.of(scope), scopeRule, isActive ) - constructor(type: IgnoreType, ignoreRule: String, isRegEx: Boolean, strictness: StrictnessType, - scope: ScopeType, scopeRule: String, isActive: Boolean) : this( - type, ignoreRule, isRegEx, strictness, scope, scopeRule, isActive, + constructor(type: IgnoreType, ignoreRule: String?, isRegEx: Boolean, strictness: StrictnessType, + scope: ScopeType, scopeRule: String?, isActive: Boolean) : this( + type, ignoreRule ?: "", isRegEx, strictness, scope, scopeRule ?: "", isActive, ExpressionMatch( - ignoreRule, + ignoreRule ?: "", if (isRegEx) ExpressionMatch.MatchMode.MatchRegEx else ExpressionMatch.MatchMode.MatchWildcard, true ), ExpressionMatch( - scopeRule, + scopeRule ?: "", ExpressionMatch.MatchMode.MatchMultiWildcard, true ) diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcChannel.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcChannel.kt index be52ec64e..b97056c4e 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcChannel.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcChannel.kt @@ -221,16 +221,16 @@ class IrcChannel( _codecForDecoding = codec } - override fun setTopic(topic: String) { - if (_topic == topic) + override fun setTopic(topic: String?) { + if (_topic == topic ?: "") return - _topic = topic + _topic = topic ?: "" } - override fun setPassword(password: String) { - if (_password == password) + override fun setPassword(password: String?) { + if (_password == password ?: "") return - _password = password + _password = password ?: "" } override fun setEncrypted(encrypted: Boolean) { @@ -285,7 +285,7 @@ class IrcChannel( updateUsers() } - override fun part(nick: String) { + override fun part(nick: String?) { part(network().ircUser(nick)) } @@ -296,8 +296,8 @@ class IrcChannel( updateUsers() } - override fun setUserModes(nick: String, modes: String) { - setUserModes(network().ircUser(nick), modes) + override fun setUserModes(nick: String?, modes: String?) { + setUserModes(network().ircUser(nick), modes ?: "") } fun addUserMode(ircuser: IrcUser, mode: Char) { @@ -313,8 +313,8 @@ class IrcChannel( updateUsers() } - override fun addUserMode(nick: String, mode: String) { - addUserMode(network().ircUser(nick), mode) + override fun addUserMode(nick: String?, mode: String?) { + addUserMode(network().ircUser(nick), mode ?: "") } override fun removeUserMode(ircuser: IrcUser?, mode: String) { @@ -327,8 +327,8 @@ class IrcChannel( updateUsers() } - override fun removeUserMode(nick: String, mode: String) { - removeUserMode(network().ircUser(nick), mode) + override fun removeUserMode(nick: String?, mode: String?) { + removeUserMode(network().ircUser(nick), mode ?: "") } override fun addChannelMode(mode: Char, value: String?) { diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcListHelper.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcListHelper.kt index 62140abd1..f79e901e2 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcListHelper.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcListHelper.kt @@ -35,7 +35,7 @@ class IrcListHelper constructor( data class Finished(val netId: NetworkId) : Event() - data class Error(val error: String) : Event() + data class Error(val error: String?) : Event() } private val subject = ReusableUnicastSubject.create<Event>() @@ -50,7 +50,7 @@ class IrcListHelper constructor( subject.onNext(Event.Finished(netId)) } - override fun reportError(error: String) { + override fun reportError(error: String?) { subject.onNext(Event.Error(error)) } } 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 c53296102..2ca56f3ac 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 @@ -125,43 +125,43 @@ class IrcUser( fun userModes() = _userModes fun channels() = _channels.map(IrcChannel::name) - override fun addUserModes(modes: String) { - (_userModes.toSet() + modes.toSet()).joinToString() + override fun addUserModes(modes: String?) { + (_userModes.toSet() + modes?.toSet().orEmpty()).joinToString() } - override fun removeUserModes(modes: String) { - (_userModes.toSet() - modes.toSet()).joinToString() + override fun removeUserModes(modes: String?) { + (_userModes.toSet() - modes?.toSet().orEmpty()).joinToString() } - override fun setUser(user: String) { - if (_user != user) { - _user = user + override fun setUser(user: String?) { + if (_user != user ?: "") { + _user = user ?: "" } } - override fun setHost(host: String) { - if (_host != host) { - _host = host + override fun setHost(host: String?) { + if (_host != host ?: "") { + _host = host ?: "" } } - override fun setNick(nick: String) { - if (nick.isNotEmpty() && _nick != nick) { + override fun setNick(nick: String?) { + if (!nick.isNullOrEmpty() && _nick != nick) { network().ircUserNickChanged(_nick, nick) _nick = nick updateObjectName() } } - override fun setRealName(realName: String) { - if (_realName != realName) { - _realName = realName + override fun setRealName(realName: String?) { + if (_realName != realName ?: "") { + _realName = realName ?: "" } } - override fun setAccount(account: String) { - if (_account != account) { - _account = account + override fun setAccount(account: String?) { + if (_account != account ?: "") { + _account = account ?: "" } } @@ -171,9 +171,9 @@ class IrcUser( } } - override fun setAwayMessage(awayMessage: String) { - if (_awayMessage != awayMessage) { - _awayMessage = awayMessage + override fun setAwayMessage(awayMessage: String?) { + if (_awayMessage != awayMessage ?: "") { + _awayMessage = awayMessage ?: "" } } @@ -190,9 +190,9 @@ class IrcUser( } } - override fun setIrcOperator(ircOperator: String) { - if (_ircOperator != ircOperator) { - _ircOperator = ircOperator + override fun setIrcOperator(ircOperator: String?) { + if (_ircOperator != ircOperator ?: "") { + _ircOperator = ircOperator ?: "" } } @@ -207,15 +207,15 @@ class IrcUser( _lastAwayMessageTime = Instant.from(lastAwayMessageTime) } - override fun setWhoisServiceReply(whoisServiceReply: String) { - if (_whoisServiceReply != whoisServiceReply) { - _whoisServiceReply = whoisServiceReply + override fun setWhoisServiceReply(whoisServiceReply: String?) { + if (_whoisServiceReply != whoisServiceReply ?: "") { + _whoisServiceReply = whoisServiceReply ?: "" } } - override fun setSuserHost(suserHost: String) { - if (_suserHost != suserHost) { - _suserHost = suserHost + override fun setSuserHost(suserHost: String?) { + if (_suserHost != suserHost ?: "") { + _suserHost = suserHost ?: "" } } @@ -225,23 +225,23 @@ class IrcUser( } } - override fun setServer(server: String) { - if (_server != server) { - _server = server + override fun setServer(server: String?) { + if (_server != server ?: "") { + _server = server ?: "" } } - override fun updateHostmask(mask: String) { - if (hostMask() != mask) { - val (user, host, _) = HostmaskHelper.split(mask) + override fun updateHostmask(mask: String?) { + if (hostMask() != mask ?: "") { + val (user, host, _) = HostmaskHelper.split(mask ?: "") setUser(user) setHost(host) } } - override fun setUserModes(modes: String) { - if (_userModes != modes) { - _userModes = modes + override fun setUserModes(modes: String?) { + if (_userModes != modes ?: "") { + _userModes = modes ?: "" } } @@ -253,8 +253,8 @@ class IrcUser( } } - override fun joinChannel(channelname: String) { - joinChannel(network().newIrcChannel(channelname)) + override fun joinChannel(channelname: String?) { + joinChannel(network().newIrcChannel(channelname ?: "")) } override fun partChannel(channel: IrcChannel) { @@ -266,7 +266,7 @@ class IrcUser( } } - override fun partChannel(channelname: String) { + override fun partChannel(channelname: String?) { val channel = network().ircChannel(channelname) ?: throw IllegalArgumentException( "Received part for unknown channel : $channelname" ) diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt index 18f46d182..d0ef17881 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt @@ -136,7 +136,9 @@ class Network constructor( fun nicks() = _ircUsers.values.map(IrcUser::nick) fun channels(): Set<String> = _ircChannels.keys fun caps(): Set<String> = _caps.keys + fun liveCaps() = live_caps.map { caps() } fun capsEnabled(): Set<String> = _capsEnabled + fun livecapsEnabled() = live_capsEnabled.map { capsEnabled() } fun serverList() = _serverList fun useRandomServer() = _useRandomServer fun perform() = _perform @@ -186,7 +188,7 @@ class Network constructor( override fun setNetworkInfo(info: NetworkInfo) { // we don't set our ID! - if (!info.networkName.isEmpty() && info.networkName != networkName()) + if (!info.networkName.isNullOrEmpty() && info.networkName != networkName()) setNetworkName(info.networkName) if (info.identity > 0 && info.identity != identity()) setIdentity(info.identity) @@ -289,6 +291,7 @@ class Network constructor( fun channelModes(): Map<ChannelModeType, Set<Char>>? = _channelModes fun supports(): Map<String, String?> = _supports + fun liveSupports() = live_supports.map { supports() } fun supports(param: String) = _supports.contains(param.toUpperCase(Locale.US)) fun support(param: String) = _supports.getOr(param, "") /** @@ -422,16 +425,16 @@ class Network constructor( _autoAwayActive = active } - override fun setNetworkName(networkName: String) { - if (_networkName == networkName) + override fun setNetworkName(networkName: String?) { + if (_networkName == networkName ?: "") return - _networkName = networkName + _networkName = networkName ?: "" } override fun setCurrentServer(currentServer: String?) { - if (_currentServer == currentServer) + if (_currentServer == currentServer ?: "") return - _currentServer = currentServer + _currentServer = currentServer ?: "" } override fun setConnected(isConnected: Boolean) { @@ -505,16 +508,16 @@ class Network constructor( _useAutoIdentify = autoIdentify } - override fun setAutoIdentifyService(service: String) { - if (_autoIdentifyService == service) + override fun setAutoIdentifyService(service: String?) { + if (_autoIdentifyService == service ?: "") return - _autoIdentifyService = service + _autoIdentifyService = service ?: "" } - override fun setAutoIdentifyPassword(password: String) { - if (_autoIdentifyPassword == password) + override fun setAutoIdentifyPassword(password: String?) { + if (_autoIdentifyPassword == password ?: "") return - _autoIdentifyPassword = password + _autoIdentifyPassword = password ?: "" } override fun setUseSasl(sasl: Boolean) { @@ -524,15 +527,15 @@ class Network constructor( } override fun setSaslAccount(account: String?) { - if (_saslAccount == account) + if (_saslAccount == account ?: "") return - _saslAccount = account + _saslAccount = account ?: "" } override fun setSaslPassword(password: String?) { - if (_saslPassword == password) + if (_saslPassword == password ?: "") return - _saslPassword = password + _saslPassword = password ?: "" } override fun setUseAutoReconnect(autoReconnect: Boolean) { @@ -615,33 +618,33 @@ class Network constructor( setCodecForServer(Charsets.ISO_8859_1.decode(codecName).toString()) } - override fun addSupport(param: String, value: String?) { - _supports[param] = value + override fun addSupport(param: String?, value: String?) { + _supports[param ?: ""] = value } - override fun removeSupport(param: String) { - if (!_supports.contains(param)) + override fun removeSupport(param: String?) { + if (!_supports.contains(param ?: "")) return - _supports.remove(param) + _supports.remove(param ?: "") } override fun addCap(capability: String, value: String?) { _caps[capability.toLowerCase(Locale.US)] = value } - override fun acknowledgeCap(capability: String) { - val lowerCase = capability.toLowerCase(Locale.US) - if (!_capsEnabled.contains(lowerCase)) + override fun acknowledgeCap(capability: String?) { + val lowerCase = capability?.toLowerCase(Locale.US) + if (!_capsEnabled.contains(lowerCase ?: "")) return - _capsEnabled.add(lowerCase) + _capsEnabled.add(lowerCase ?: "") } - override fun removeCap(capability: String) { - val lowerCase = capability.toLowerCase(Locale.US) - if (!_caps.contains(lowerCase)) + override fun removeCap(capability: String?) { + val lowerCase = capability?.toLowerCase(Locale.US) + if (!_caps.contains(lowerCase ?: "")) return - _caps.remove(lowerCase) - _capsEnabled.remove(lowerCase) + _caps.remove(lowerCase ?: "") + _capsEnabled.remove(lowerCase ?: "") } override fun clearCaps() { @@ -651,12 +654,12 @@ class Network constructor( _capsEnabled.clear() } - override fun addIrcUser(hostmask: String) { - newIrcUser(hostmask) + override fun addIrcUser(hostmask: String?) { + newIrcUser(hostmask ?: "") } - override fun addIrcChannel(channel: String) { - newIrcChannel(channel) + override fun addIrcChannel(channel: String?) { + newIrcChannel(channel ?: "") } override fun initSupports(): QVariantMap = _supports.entries.map { (key, value) -> @@ -817,14 +820,14 @@ class Network constructor( } } - override fun ircUserNickChanged(old: String, new: String) { - val value = _ircUsers.remove(caseMapper.toLowerCase(old)) + override fun ircUserNickChanged(old: String?, new: String?) { + val value = _ircUsers.remove(caseMapper.toLowerCase(old ?: "")) if (value != null) { - _ircUsers[caseMapper.toLowerCase(new)] = value + _ircUsers[caseMapper.toLowerCase(new ?: "")] = value } } - override fun emitConnectionError(error: String) { + override fun emitConnectionError(error: String?) { } fun removeChansAndUsers() { @@ -862,12 +865,22 @@ class Network constructor( } private var _myNick: String? = null private var _latency: Int = 0 + set (value) { + field = value + live_latency.onNext(value) + } + private val live_latency = BehaviorSubject.createDefault(0) private var _networkName: String = "<not initialized>" set(value) { field = value live_networkInfo.onNext(Unit) } - private var _currentServer: String? = null + private var _currentServer: String = "" + set (value) { + field = value + live_currentServer.onNext(value) + } + private val live_currentServer = BehaviorSubject.createDefault("") private var _connected: Boolean = false private var _connectionState: ConnectionState = ConnectionState.Disconnected private val live_connectionState = BehaviorSubject.createDefault(ConnectionState.Disconnected) @@ -882,6 +895,11 @@ class Network constructor( private val live_ircChannels = BehaviorSubject.createDefault(emptyMap<String, IrcChannel>()) // stores results from RPL_ISUPPORT private var _supports: MutableMap<String, String?> = mutableMapOf() + set (value) { + field = value + live_caps.onNext(Unit) + } + private val live_supports = BehaviorSubject.createDefault(Unit) /** * Capabilities supported by the IRC server * By synchronizing the supported capabilities, the client could suggest certain behaviors, e.g. @@ -889,11 +907,21 @@ class Network constructor( * SASL EXTERNAL isn't available. */ private var _caps: MutableMap<String, String?> = mutableMapOf() + set (value) { + field = value + live_caps.onNext(Unit) + } + private val live_caps = BehaviorSubject.createDefault(Unit) /** * Enabled capabilities that received 'CAP ACK' * _capsEnabled uses the same values from the <name>=<value> pairs stored in _caps */ private var _capsEnabled: MutableSet<String> = mutableSetOf() + set (value) { + field = value + live_capsEnabled.onNext(Unit) + } + private val live_capsEnabled = BehaviorSubject.createDefault(Unit) private var _serverList: List<Server> = listOf() set(value) { field = value @@ -929,12 +957,12 @@ class Network constructor( field = value live_networkInfo.onNext(Unit) } - private var _saslAccount: String? = null + private var _saslAccount: String = "" set(value) { field = value live_networkInfo.onNext(Unit) } - private var _saslPassword: String? = null + private var _saslPassword: String = "" set(value) { field = value live_networkInfo.onNext(Unit) diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/RpcHandler.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/RpcHandler.kt index 45c49f882..779d1f7ee 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/RpcHandler.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/RpcHandler.kt @@ -36,7 +36,7 @@ class RpcHandler( private val backlogStorage: BacklogStorage? = null, private val notificationManager: NotificationManager? = null ) : IRpcHandler { - override fun displayStatusMsg(net: String, msg: String) { + override fun displayStatusMsg(net: String?, msg: String?) { } override fun bufferInfoUpdated(bufferInfo: BufferInfo) { @@ -60,8 +60,10 @@ class RpcHandler( session.disconnectFromCore?.invoke() } - override fun objectRenamed(classname: ByteBuffer, newname: String, oldname: String) { - session.renameObject(classname.deserializeString(StringSerializer.UTF8) ?: "", newname, oldname) + override fun objectRenamed(classname: ByteBuffer, newname: String?, oldname: String?) { + session.renameObject(classname.deserializeString(StringSerializer.UTF8) ?: "", + newname ?: "", + oldname ?: "") } override fun displayMsg(message: Message) { @@ -96,7 +98,7 @@ class RpcHandler( ARG(networkId, QType.NetworkId) ) - override fun changePassword(peerPtr: Long, user: String, old: String, new: String) = + override fun changePassword(peerPtr: Long, user: String?, old: String?, new: String?) = RPC( "2changePassword(PeerPtr,QString,QString,QString)", ARG(peerPtr, QType.PeerPtr), @@ -111,7 +113,7 @@ class RpcHandler( ARG(id, Type.Int) ) - override fun sendInput(bufferInfo: BufferInfo, message: String) = + override fun sendInput(bufferInfo: BufferInfo, message: String?) = RPC( "2sendInput(BufferInfo,QString)", ARG(bufferInfo, QType.BufferInfo), diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IBufferSyncer.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IBufferSyncer.kt index 919fb860f..c96be00ce 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IBufferSyncer.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IBufferSyncer.kt @@ -47,7 +47,7 @@ interface IBufferSyncer : ISyncableObject { fun removeBuffer(buffer: BufferId) @Slot - fun renameBuffer(buffer: BufferId, newName: String) + fun renameBuffer(buffer: BufferId, newName: String?) @Slot fun requestMarkBufferAsRead(buffer: BufferId) { diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IBufferViewConfig.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IBufferViewConfig.kt index d779e9c5e..58dcee6ac 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IBufferViewConfig.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IBufferViewConfig.kt @@ -69,7 +69,7 @@ interface IBufferViewConfig : ISyncableObject { } @Slot - fun requestSetBufferViewName(bufferViewName: String) { + fun requestSetBufferViewName(bufferViewName: String?) { REQUEST("requestSetBufferViewName", ARG(bufferViewName, Type.QString)) } @@ -84,7 +84,7 @@ interface IBufferViewConfig : ISyncableObject { } @Slot - fun setBufferViewName(bufferViewName: String) { + fun setBufferViewName(bufferViewName: String?) { SYNC("setBufferViewName", ARG(bufferViewName, Type.QString)) } diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IHighlightRuleManager.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IHighlightRuleManager.kt index dc05691ee..af5c12922 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IHighlightRuleManager.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IHighlightRuleManager.kt @@ -79,17 +79,17 @@ interface IHighlightRuleManager : ISyncableObject { * @param chanName The channel in which the rule should apply */ @Slot - fun requestAddHighlightRule(id: Int, name: String, isRegEx: Boolean, isCaseSensitive: Boolean, - isEnabled: Boolean, isInverse: Boolean, sender: String, - chanName: String) { + fun requestAddHighlightRule(id: Int, name: String?, isRegEx: Boolean, isCaseSensitive: Boolean, + isEnabled: Boolean, isInverse: Boolean, sender: String?, + chanName: String?) { REQUEST("requestAddHighlightRule", ARG(id, Type.Int), ARG(name, Type.QString), ARG(isRegEx, Type.Bool), ARG(isCaseSensitive, Type.Bool), ARG(isEnabled, Type.Bool), ARG(isInverse, Type.Bool), ARG(sender, Type.QString), ARG(chanName, Type.QString)) } @Slot - fun addHighlightRule(id: Int, name: String, isRegEx: Boolean, isCaseSensitive: Boolean, - isEnabled: Boolean, isInverse: Boolean, sender: String, chanName: String) + fun addHighlightRule(id: Int, name: String?, isRegEx: Boolean, isCaseSensitive: Boolean, + isEnabled: Boolean, isInverse: Boolean, sender: String?, chanName: String?) @Slot fun requestSetHighlightNick(highlightNick: Int) { diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIgnoreListManager.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIgnoreListManager.kt index e829187dd..64b44ee2d 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIgnoreListManager.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIgnoreListManager.kt @@ -31,15 +31,15 @@ interface IIgnoreListManager : ISyncableObject { fun initSetIgnoreList(ignoreList: QVariantMap) @Slot - fun addIgnoreListItem(type: Int, ignoreRule: String, isRegEx: Boolean, strictness: Int, - scope: Int, scopeRule: String, isActive: Boolean) + fun addIgnoreListItem(type: Int, ignoreRule: String?, isRegEx: Boolean, strictness: Int, + scope: Int, scopeRule: String?, isActive: Boolean) @Slot - fun removeIgnoreListItem(ignoreRule: String) + fun removeIgnoreListItem(ignoreRule: String?) @Slot - fun requestAddIgnoreListItem(type: Int, ignoreRule: String, isRegEx: Boolean, strictness: Int, - scope: Int, scopeRule: String, isActive: Boolean) { + fun requestAddIgnoreListItem(type: Int, ignoreRule: String?, isRegEx: Boolean, strictness: Int, + scope: Int, scopeRule: String?, isActive: Boolean) { REQUEST( "requestAddIgnoreListItem", ARG(type, Type.Int), ARG(ignoreRule, Type.QString), ARG(isRegEx, Type.Bool), @@ -49,17 +49,17 @@ interface IIgnoreListManager : ISyncableObject { } @Slot - fun requestRemoveIgnoreListItem(ignoreRule: String) { + fun requestRemoveIgnoreListItem(ignoreRule: String?) { REQUEST("requestRemoveIgnoreListItem", ARG(ignoreRule, Type.QString)) } @Slot - fun requestToggleIgnoreRule(ignoreRule: String) { + fun requestToggleIgnoreRule(ignoreRule: String?) { REQUEST("requestToggleIgnoreRule", ARG(ignoreRule, Type.QString)) } @Slot - fun toggleIgnoreRule(ignoreRule: String) + fun toggleIgnoreRule(ignoreRule: String?) @Slot override fun update(properties: QVariantMap) { diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIrcChannel.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIrcChannel.kt index 8f1285cba..b2e7510e3 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIrcChannel.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIrcChannel.kt @@ -41,7 +41,7 @@ interface IIrcChannel : ISyncableObject { fun addUserMode(ircuser: IrcUser?, mode: String) @Slot - fun addUserMode(nick: String, mode: String) + fun addUserMode(nick: String?, mode: String?) @Slot fun joinIrcUser(ircuser: IrcUser) @@ -52,7 +52,7 @@ interface IIrcChannel : ISyncableObject { fun part(ircuser: IrcUser?) @Slot - fun part(nick: String) + fun part(nick: String?) @Slot fun removeChannelMode(mode: Char, value: String?) @@ -60,21 +60,21 @@ interface IIrcChannel : ISyncableObject { fun removeUserMode(ircuser: IrcUser?, mode: String) @Slot - fun removeUserMode(nick: String, mode: String) + fun removeUserMode(nick: String?, mode: String?) @Slot fun setEncrypted(encrypted: Boolean) @Slot - fun setPassword(password: String) + fun setPassword(password: String?) @Slot - fun setTopic(topic: String) + fun setTopic(topic: String?) fun setUserModes(ircuser: IrcUser?, modes: String) @Slot - fun setUserModes(nick: String, modes: String) + fun setUserModes(nick: String?, modes: String?) @Slot override fun update(properties: QVariantMap) diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIrcListHelper.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIrcListHelper.kt index 78e407c71..1d4411b91 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIrcListHelper.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IIrcListHelper.kt @@ -39,7 +39,7 @@ interface IIrcListHelper : ISyncableObject { fun receiveChannelList(netId: NetworkId, channelFilters: QStringList, data: QVariantList) @Slot - fun reportError(error: String) { + fun reportError(error: String?) { SYNC("reportError", ARG(error, Type.QString)) } 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 c6ff31439..84cbabf82 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 @@ -30,42 +30,42 @@ interface IIrcUser : ISyncableObject { fun initProperties(): QVariantMap fun initSetProperties(properties: QVariantMap, index: Int? = null) @Slot - fun addUserModes(modes: String) + fun addUserModes(modes: String?) fun joinChannel(channel: IrcChannel, skip_channel_join: Boolean = false) @Slot - fun joinChannel(channelname: String) + fun joinChannel(channelname: String?) fun partChannel(channel: IrcChannel) @Slot - fun partChannel(channelname: String) + fun partChannel(channelname: String?) @Slot fun quit() @Slot - fun removeUserModes(modes: String) + fun removeUserModes(modes: String?) @Slot - fun setAccount(account: String) + fun setAccount(account: String?) @Slot fun setAway(away: Boolean) @Slot - fun setAwayMessage(awayMessage: String) + fun setAwayMessage(awayMessage: String?) @Slot fun setEncrypted(encrypted: Boolean) @Slot - fun setHost(host: String) + fun setHost(host: String?) @Slot fun setIdleTime(idleTime: Temporal) @Slot - fun setIrcOperator(ircOperator: String) + fun setIrcOperator(ircOperator: String?) @Slot fun setLastAwayMessage(lastAwayMessage: Int) @@ -77,28 +77,28 @@ interface IIrcUser : ISyncableObject { fun setLoginTime(loginTime: Temporal) @Slot - fun setNick(nick: String) + fun setNick(nick: String?) @Slot - fun setRealName(realName: String) + fun setRealName(realName: String?) @Slot - fun setServer(server: String) + fun setServer(server: String?) @Slot - fun setSuserHost(suserHost: String) + fun setSuserHost(suserHost: String?) @Slot - fun setUser(user: String) + fun setUser(user: String?) @Slot - fun setUserModes(modes: String) + fun setUserModes(modes: String?) @Slot - fun setWhoisServiceReply(whoisServiceReply: String) + fun setWhoisServiceReply(whoisServiceReply: String?) @Slot - fun updateHostmask(mask: String) + fun updateHostmask(mask: String?) @Slot override fun update(properties: QVariantMap) { diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/INetwork.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/INetwork.kt index 59cb8f271..701989b6b 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/INetwork.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/INetwork.kt @@ -46,34 +46,34 @@ interface INetwork : ISyncableObject { fun initSetProperties(properties: QVariantMap) @Slot - fun acknowledgeCap(capability: String) + fun acknowledgeCap(capability: String?) @Slot fun addCap(capability: String, value: String?) @Slot - fun addIrcChannel(channel: String) + fun addIrcChannel(channel: String?) @Slot - fun addIrcUser(hostmask: String) + fun addIrcUser(hostmask: String?) @Slot - fun addSupport(param: String, value: String? = null) + fun addSupport(param: String?, value: String? = null) @Slot fun clearCaps() @Slot - fun emitConnectionError(error: String) + fun emitConnectionError(error: String?) @Slot - fun ircUserNickChanged(old: String, new: String) + fun ircUserNickChanged(old: String?, new: String?) @Slot - fun removeCap(capability: String) + fun removeCap(capability: String?) @Slot - fun removeSupport(param: String) + fun removeSupport(param: String?) @Slot fun requestConnect() { @@ -91,10 +91,10 @@ interface INetwork : ISyncableObject { } @Slot - fun setAutoIdentifyPassword(password: String) + fun setAutoIdentifyPassword(password: String?) @Slot - fun setAutoIdentifyService(service: String) + fun setAutoIdentifyService(service: String?) @Slot fun setAutoReconnectInterval(interval: UInt) @@ -136,7 +136,7 @@ interface INetwork : ISyncableObject { fun setMyNick(mynick: String?) @Slot - fun setNetworkName(networkName: String) + fun setNetworkName(networkName: String?) @Slot fun setNetworkInfo(info: NetworkInfo) @@ -234,18 +234,18 @@ interface INetwork : ISyncableObject { } data class Server( - val host: String = "", + val host: String? = "", val port: UInt = PortDefaults.PORT_PLAINTEXT.port, - val password: String = "", + val password: String? = "", val useSsl: Boolean = false, val sslVerify: Boolean = false, val sslVersion: Int = 0, val useProxy: Boolean = false, val proxyType: Int = ProxyType.Socks5Proxy.value, - val proxyHost: String = "localhost", + val proxyHost: String? = "localhost", val proxyPort: UInt = 8080u, - val proxyUser: String = "", - val proxyPass: String = "" + val proxyUser: String? = "", + val proxyPass: String? = "" ) : Serializable { fun toVariantMap(): QVariantMap = mapOf( "Host" to QVariant.of(host, Type.QString), @@ -310,8 +310,8 @@ interface INetwork : ISyncableObject { var autoIdentifyService: String = "", var autoIdentifyPassword: String = "", var useSasl: Boolean = false, - var saslAccount: String? = null, - var saslPassword: String? = null, + var saslAccount: String = "", + var saslPassword: String = "", var useAutoReconnect: Boolean = true, var autoReconnectInterval: UInt = 0u, var autoReconnectRetries: UShort = 0u, diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IRpcHandler.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IRpcHandler.kt index dd493d8f8..7ae0ce7a4 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IRpcHandler.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IRpcHandler.kt @@ -35,13 +35,13 @@ interface IRpcHandler { val session: Session @Slot("__objectRenamed__") - fun objectRenamed(classname: ByteBuffer, newname: String, oldname: String) + fun objectRenamed(classname: ByteBuffer, newname: String?, oldname: String?) @Slot("2displayMsg(Message)") fun displayMsg(message: Message) @Slot("2displayStatusMsg(QString,QString)") - fun displayStatusMsg(net: String, msg: String) + fun displayStatusMsg(net: String?, msg: String?) @Slot("2bufferInfoUpdated(BufferInfo)") fun bufferInfoUpdated(bufferInfo: BufferInfo) @@ -68,7 +68,7 @@ interface IRpcHandler { fun removeIdentity(identityId: IdentityId) fun createNetwork(networkInfo: INetwork.NetworkInfo, channels: List<String> = emptyList()) fun removeNetwork(networkId: NetworkId) - fun changePassword(peerPtr: Long, user: String, old: String, new: String) + fun changePassword(peerPtr: Long, user: String?, old: String?, new: String?) fun requestKickClient(id: Int) - fun sendInput(bufferInfo: BufferInfo, message: String) + fun sendInput(bufferInfo: BufferInfo, message: String?) } diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/ITransfer.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/ITransfer.kt index bf24b1bd8..a174093d7 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/ITransfer.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/ITransfer.kt @@ -29,7 +29,7 @@ import java.nio.ByteBuffer @Syncable(name = "Transfer") interface ITransfer : ISyncableObject { @Slot - fun accept(savePath: String) { + fun accept(savePath: String?) { SYNC("accept", ARG(savePath, Type.QString)) } @@ -54,7 +54,7 @@ interface ITransfer : ISyncableObject { } @Slot - fun setError(errorString: String) { + fun setError(errorString: String?) { SYNC("setError", ARG(errorString, Type.QString)) } -- GitLab