Networking: refresh once in background (#21453)

clean up

move to setup()
pull/21446/head
sshane 4 years ago committed by GitHub
parent 4cdd26596e
commit 07d3934996
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      selfdrive/ui/qt/offroad/wifiManager.cc
  2. 3
      selfdrive/ui/qt/offroad/wifiManager.h

@ -68,6 +68,8 @@ void WifiManager::setup() {
device_props.setTimeout(DBUS_TIMEOUT); device_props.setTimeout(DBUS_TIMEOUT);
QDBusMessage response = device_props.call("Get", NM_DBUS_INTERFACE_DEVICE, "State"); QDBusMessage response = device_props.call("Get", NM_DBUS_INTERFACE_DEVICE, "State");
raw_adapter_state = get_response<uint>(response); raw_adapter_state = get_response<uint>(response);
initConnections();
requestScan(); requestScan();
} }
@ -342,12 +344,10 @@ void WifiManager::stateChange(unsigned int new_state, unsigned int previous_stat
// https://developer.gnome.org/NetworkManager/stable/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html // https://developer.gnome.org/NetworkManager/stable/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html
void WifiManager::propertyChange(const QString &interface, const QVariantMap &props, const QStringList &invalidated_props) { void WifiManager::propertyChange(const QString &interface, const QVariantMap &props, const QStringList &invalidated_props) {
if (interface == NM_DBUS_INTERFACE_DEVICE_WIRELESS && props.contains("LastScan")) { if (interface == NM_DBUS_INTERFACE_DEVICE_WIRELESS && props.contains("LastScan")) {
if (knownConnections.isEmpty()) { if (this->isVisible() || firstScan) {
knownConnections = listConnections();
}
if (this->isVisible()) {
refreshNetworks(); refreshNetworks();
emit refreshSignal(); emit refreshSignal();
firstScan = false;
} }
} }
} }
@ -391,16 +391,14 @@ QString WifiManager::getConnectionSsid(const QDBusObjectPath &path) {
return result.value().value("802-11-wireless").value("ssid").toString(); return result.value().value("802-11-wireless").value("ssid").toString();
} }
QMap<QDBusObjectPath, QString> WifiManager::listConnections() { void WifiManager::initConnections() {
QMap<QDBusObjectPath, QString> connections;
QDBusInterface nm(NM_DBUS_SERVICE, NM_DBUS_PATH_SETTINGS, NM_DBUS_INTERFACE_SETTINGS, bus); QDBusInterface nm(NM_DBUS_SERVICE, NM_DBUS_PATH_SETTINGS, NM_DBUS_INTERFACE_SETTINGS, bus);
nm.setTimeout(DBUS_TIMEOUT); nm.setTimeout(DBUS_TIMEOUT);
const QDBusReply<QList<QDBusObjectPath>> response = nm.call("ListConnections"); const QDBusReply<QList<QDBusObjectPath>> response = nm.call("ListConnections");
for (const QDBusObjectPath &path : response.value()) { for (const QDBusObjectPath &path : response.value()) {
connections[path] = getConnectionSsid(path); knownConnections[path] = getConnectionSsid(path);
} }
return connections;
} }
void WifiManager::activateWifiConnection(const QString &ssid) { void WifiManager::activateWifiConnection(const QString &ssid) {

@ -64,6 +64,7 @@ private:
QString tethering_ssid; QString tethering_ssid;
QString tetheringPassword = "swagswagcommma"; QString tetheringPassword = "swagswagcommma";
bool firstScan = true;
QString getAdapter(); QString getAdapter();
bool isWirelessAdapter(const QDBusObjectPath &path); bool isWirelessAdapter(const QDBusObjectPath &path);
QString get_ipv4_address(); QString get_ipv4_address();
@ -77,7 +78,7 @@ private:
unsigned int get_ap_strength(const QString &network_path); unsigned int get_ap_strength(const QString &network_path);
SecurityType getSecurityType(const QString &path); SecurityType getSecurityType(const QString &path);
QDBusObjectPath getConnectionPath(const QString &ssid); QDBusObjectPath getConnectionPath(const QString &ssid);
QMap<QDBusObjectPath, QString> listConnections(); void initConnections();
QString getConnectionSsid(const QDBusObjectPath &path); QString getConnectionSsid(const QDBusObjectPath &path);
void setup(); void setup();

Loading…
Cancel
Save