diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragment.kt index 194e884e90ba6fb1db1192ffffc52e9e15931a43..c38836d1e50d932a107bf6c8c293c24153fd80a5 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragment.kt @@ -25,7 +25,7 @@ import de.kuschku.quasseldroid.util.ui.settings.fragment.Deletable class NetworkEditFragment : NetworkBaseFragment(false), Deletable { override fun onSave() = network?.let { (it, data) -> applyChanges(data) - it?.requestSetNetworkInfo(data.networkInfo()) + it?.requestSetNetworkInfo(data.networkInfo().toVariantMap()) true } ?: false 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 6368f37264851258e892ffc8e4f621507682102f..b6dfa02b7cbb6cc986a057e028a84296ae42a707 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 @@ -20,14 +20,12 @@ package de.kuschku.libquassel.quassel.syncables import de.kuschku.libquassel.protocol.* -import de.kuschku.libquassel.protocol.QtType import de.kuschku.libquassel.protocol.primitive.serializer.StringSerializer import de.kuschku.libquassel.quassel.syncables.interfaces.INetwork import de.kuschku.libquassel.quassel.syncables.interfaces.INetwork.* import de.kuschku.libquassel.session.SignalProxy import de.kuschku.libquassel.util.helper.getOr import de.kuschku.libquassel.util.helper.serializeString -import de.kuschku.libquassel.util.helper.value import de.kuschku.libquassel.util.irc.HostmaskHelper import de.kuschku.libquassel.util.irc.IrcCaseMappers import io.reactivex.Observable @@ -188,56 +186,57 @@ class Network constructor( fun liveNetworkInfo(): Observable<NetworkInfo> = live_networkInfo.map { networkInfo() } - override fun setNetworkInfo(info: NetworkInfo) { + override fun setNetworkInfo(info: QVariantMap) { + val networkInfo = NetworkInfo().apply { fromVariantMap(info) } // we don't set our ID! - if (info.networkName.isNotEmpty() && info.networkName != networkName()) - setNetworkName(info.networkName) - if (info.identity.isValidId() && info.identity != identity()) - setIdentity(info.identity) - if (info.codecForServer != codecForServer()) - setCodecForServer(info.codecForServer) - if (info.codecForEncoding != codecForEncoding()) - setCodecForEncoding(info.codecForEncoding) - if (info.codecForDecoding != codecForDecoding()) - setCodecForDecoding(info.codecForDecoding) + if (networkInfo.networkName.isNotEmpty() && networkInfo.networkName != networkName()) + setNetworkName(networkInfo.networkName) + if (networkInfo.identity.isValidId() && networkInfo.identity != identity()) + setIdentity(networkInfo.identity) + if (networkInfo.codecForServer != codecForServer()) + setCodecForServer(networkInfo.codecForServer) + if (networkInfo.codecForEncoding != codecForEncoding()) + setCodecForEncoding(networkInfo.codecForEncoding) + if (networkInfo.codecForDecoding != codecForDecoding()) + setCodecForDecoding(networkInfo.codecForDecoding) // FIXME compare components - if (info.serverList.isNotEmpty()) - setServerList(info.serverList.map { QVariant.of(it.toVariantMap(), QuasselType.Network_Server) }) - if (info.useRandomServer != useRandomServer()) - setUseRandomServer(info.useRandomServer) - if (info.perform != perform()) - setPerform(info.perform) - if (info.useAutoIdentify != useAutoIdentify()) - setUseAutoIdentify(info.useAutoIdentify) - if (info.autoIdentifyService != autoIdentifyService()) - setAutoIdentifyService(info.autoIdentifyService) - if (info.autoIdentifyPassword != autoIdentifyPassword()) - setAutoIdentifyPassword(info.autoIdentifyPassword) - if (info.useSasl != useSasl()) - setUseSasl(info.useSasl) - if (info.saslAccount != saslAccount()) - setSaslAccount(info.saslAccount) - if (info.saslPassword != saslPassword()) - setSaslPassword(info.saslPassword) - if (info.useAutoReconnect != useAutoReconnect()) - setUseAutoReconnect(info.useAutoReconnect) - if (info.autoReconnectInterval != autoReconnectInterval()) - setAutoReconnectInterval(info.autoReconnectInterval) - if (info.autoReconnectRetries != autoReconnectRetries()) - setAutoReconnectRetries(info.autoReconnectRetries) - if (info.unlimitedReconnectRetries != unlimitedReconnectRetries()) - setUnlimitedReconnectRetries(info.unlimitedReconnectRetries) - if (info.rejoinChannels != rejoinChannels()) - setRejoinChannels(info.rejoinChannels) + if (networkInfo.serverList.isNotEmpty()) + setServerList(networkInfo.serverList.map { QVariant.of(it.toVariantMap(), QuasselType.Network_Server) }) + if (networkInfo.useRandomServer != useRandomServer()) + setUseRandomServer(networkInfo.useRandomServer) + if (networkInfo.perform != perform()) + setPerform(networkInfo.perform) + if (networkInfo.useAutoIdentify != useAutoIdentify()) + setUseAutoIdentify(networkInfo.useAutoIdentify) + if (networkInfo.autoIdentifyService != autoIdentifyService()) + setAutoIdentifyService(networkInfo.autoIdentifyService) + if (networkInfo.autoIdentifyPassword != autoIdentifyPassword()) + setAutoIdentifyPassword(networkInfo.autoIdentifyPassword) + if (networkInfo.useSasl != useSasl()) + setUseSasl(networkInfo.useSasl) + if (networkInfo.saslAccount != saslAccount()) + setSaslAccount(networkInfo.saslAccount) + if (networkInfo.saslPassword != saslPassword()) + setSaslPassword(networkInfo.saslPassword) + if (networkInfo.useAutoReconnect != useAutoReconnect()) + setUseAutoReconnect(networkInfo.useAutoReconnect) + if (networkInfo.autoReconnectInterval != autoReconnectInterval()) + setAutoReconnectInterval(networkInfo.autoReconnectInterval) + if (networkInfo.autoReconnectRetries != autoReconnectRetries()) + setAutoReconnectRetries(networkInfo.autoReconnectRetries) + if (networkInfo.unlimitedReconnectRetries != unlimitedReconnectRetries()) + setUnlimitedReconnectRetries(networkInfo.unlimitedReconnectRetries) + if (networkInfo.rejoinChannels != rejoinChannels()) + setRejoinChannels(networkInfo.rejoinChannels) // Custom rate limiting - if (info.useCustomMessageRate != useCustomMessageRate()) - setUseCustomMessageRate(info.useCustomMessageRate) - if (info.messageRateBurstSize != messageRateBurstSize()) - setMessageRateBurstSize(info.messageRateBurstSize) - if (info.messageRateDelay != messageRateDelay()) - setMessageRateDelay(info.messageRateDelay) - if (info.unlimitedMessageRate != unlimitedMessageRate()) - setUnlimitedMessageRate(info.unlimitedMessageRate) + if (networkInfo.useCustomMessageRate != useCustomMessageRate()) + setUseCustomMessageRate(networkInfo.useCustomMessageRate) + if (networkInfo.messageRateBurstSize != messageRateBurstSize()) + setMessageRateBurstSize(networkInfo.messageRateBurstSize) + if (networkInfo.messageRateDelay != messageRateDelay()) + setMessageRateDelay(networkInfo.messageRateDelay) + if (networkInfo.unlimitedMessageRate != unlimitedMessageRate()) + setUnlimitedMessageRate(networkInfo.unlimitedMessageRate) } fun prefixes(): List<Char> { 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 ee24a0213adae4e962f307cd5f9c6b7076ed7ac9..4b967d3b52d60472af5d3e5ad27bd08862031c74 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 @@ -411,7 +411,7 @@ interface INetwork : ISyncableObject { } @SyncedCall(target = ProtocolSide.CORE) - fun requestSetNetworkInfo(info: NetworkInfo) { + fun requestSetNetworkInfo(info: QVariantMap) { sync( target = ProtocolSide.CORE, "requestSetNetworkInfo", @@ -420,7 +420,7 @@ interface INetwork : ISyncableObject { } @SyncedCall(target = ProtocolSide.CLIENT) - fun setNetworkInfo(info: NetworkInfo) { + fun setNetworkInfo(info: QVariantMap) { sync( target = ProtocolSide.CLIENT, "setNetworkInfo",