From b14dc6be999a5e0ee19c956eab36135a07baad8c Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Sat, 26 Aug 2023 04:13:19 -0700 Subject: [PATCH] ui/network: don't refresh on connect (#29651) * don't refresh when showing connected status * fix * fix * can remove that nowe old-commit-hash: 6ea564b33ec6066bea1cc9829ce7c3078fdd735d --- selfdrive/ui/qt/offroad/wifiManager.cc | 15 ++++++++------- selfdrive/ui/qt/offroad/wifiManager.h | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/selfdrive/ui/qt/offroad/wifiManager.cc b/selfdrive/ui/qt/offroad/wifiManager.cc index 858de15bfe..eea8e77e86 100644 --- a/selfdrive/ui/qt/offroad/wifiManager.cc +++ b/selfdrive/ui/qt/offroad/wifiManager.cc @@ -166,7 +166,7 @@ SecurityType WifiManager::getSecurityType(const QVariantMap &properties) { } void WifiManager::connect(const Network &n, const QString &password, const QString &username) { - setCurrentConnecting(n.ssid); + setCurrentSsid(n.ssid); forgetConnection(n.ssid); // Clear all connections that may already exist to the network we are connecting Connection connection; connection["connection"]["type"] = "802-11-wireless"; @@ -231,11 +231,13 @@ void WifiManager::forgetConnection(const QString &ssid) { } } -void WifiManager::setCurrentConnecting(const QString &ssid) { - connecting_to_network = ssid; +void WifiManager::setCurrentSsid(const QString &connecting_ssid, const QString &connected_ssid) { + // Allows the network connected statuses to be updated between AP refreshes for (auto &network : seenNetworks) { - network.connected = (network.ssid == ssid) ? ConnectedType::CONNECTING : ConnectedType::DISCONNECTED; + network.connected = (network.ssid == connecting_ssid) ? ConnectedType::CONNECTING : + ((network.ssid == connected_ssid) ? ConnectedType::CONNECTED : ConnectedType::DISCONNECTED); } + connecting_to_network = connecting_ssid; emit refreshSignal(); } @@ -269,8 +271,7 @@ void WifiManager::stateChange(unsigned int new_state, unsigned int previous_stat forgetConnection(connecting_to_network); emit wrongPassword(connecting_to_network); } else if (new_state == NM_DEVICE_STATE_ACTIVATED) { - connecting_to_network = ""; - refreshNetworks(); + setCurrentSsid("", connecting_to_network); } } @@ -327,7 +328,7 @@ void WifiManager::initConnections() { std::optional WifiManager::activateWifiConnection(const QString &ssid) { const QDBusObjectPath &path = getConnectionPath(ssid); if (!path.path().isEmpty()) { - setCurrentConnecting(ssid); + setCurrentSsid(ssid); return asyncCall(NM_DBUS_PATH, NM_DBUS_INTERFACE, "ActivateConnection", QVariant::fromValue(path), QVariant::fromValue(QDBusObjectPath(adapter)), QVariant::fromValue(QDBusObjectPath("/"))); } return std::nullopt; diff --git a/selfdrive/ui/qt/offroad/wifiManager.h b/selfdrive/ui/qt/offroad/wifiManager.h index c444b2abc1..1c6f37376f 100644 --- a/selfdrive/ui/qt/offroad/wifiManager.h +++ b/selfdrive/ui/qt/offroad/wifiManager.h @@ -85,7 +85,7 @@ private: void refreshNetworks(); void activateModemConnection(const QDBusObjectPath &path); void addTetheringConnection(); - void setCurrentConnecting(const QString &ssid); + void setCurrentSsid(const QString &connecting_ssid, const QString &connected_ssid = ""); signals: void wrongPassword(const QString &ssid);