From 93f0db83f4bca976f508dfb7d4566f8594cfb95a Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Tue, 6 Jul 2021 02:46:41 +0300 Subject: [PATCH] solid-networkstatus: deal with TODO related to connman status Signed-off-by: Ivailo Monev --- solid-networkstatus/kded/connmanstatus.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/solid-networkstatus/kded/connmanstatus.cpp b/solid-networkstatus/kded/connmanstatus.cpp index c72616e9..aece952a 100644 --- a/solid-networkstatus/kded/connmanstatus.cpp +++ b/solid-networkstatus/kded/connmanstatus.cpp @@ -65,12 +65,18 @@ void ConnmanStatus::connmanStateChanged() if (!reply.isValid()) { kWarning() << "invalid reply" << reply.error().message(); } else { - // TODO: not implemented: Disconnecting, Connecting (match to ready?) const ConnmanPropertiesType props = reply.value(); const QString state = props.value("State").toString(); - if (state == QLatin1String("online")) { + // for reference: + // https://git.kernel.org/pub/scm/network/connman/connman.git/tree/doc/overview-api.txt + if (state == QLatin1String("ready") || state == QLatin1String("association") + || state == QLatin1String("configuration")) { + m_status = Solid::Networking::Connecting; + } else if (state == QLatin1String("online")) { m_status = Solid::Networking::Connected; - } else if (state == QLatin1String("offline")) { + } else if (state == QLatin1String("disconnect")) { + m_status = Solid::Networking::Disconnecting; + } else if (state == QLatin1String("offline") || state == QLatin1String("idle")) { m_status = Solid::Networking::Unconnected; } else { kWarning() << "unknown state" << state;