From f79bcdf6bf839bdef1de2c588ec0d3cf4245eb82 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Mon, 19 May 2025 23:53:53 -0700 Subject: [PATCH] fix --- selfdrive/ui/qt/network/networking.cc | 5 +++-- selfdrive/ui/qt/network/wifi_manager.cc | 10 +++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/selfdrive/ui/qt/network/networking.cc b/selfdrive/ui/qt/network/networking.cc index 04a3051549..1d9258da56 100644 --- a/selfdrive/ui/qt/network/networking.cc +++ b/selfdrive/ui/qt/network/networking.cc @@ -238,9 +238,10 @@ void AdvancedNetworking::refresh() { wifiMeteredToggle->setValue("Unsupported while tethering"); wifiMeteredToggle->setToggled(false); } else if (wifi->ipv4_address != "") { // TODO: check wifi + bool metered = wifi->currentNetworkMetered(); wifiMeteredToggle->setEnabled(true); - wifiMeteredToggle->setValue(wifi->currentNetworkMetered() ? "Metered" : "Unmetered"); - wifiMeteredToggle->setToggled(wifi->currentNetworkMetered()); + wifiMeteredToggle->setValue(metered ? "Metered" : "Unmetered"); + wifiMeteredToggle->setToggled(metered); } else { wifiMeteredToggle->setEnabled(false); wifiMeteredToggle->setValue("Disconnected"); diff --git a/selfdrive/ui/qt/network/wifi_manager.cc b/selfdrive/ui/qt/network/wifi_manager.cc index cf1804cc11..7f82a524f5 100644 --- a/selfdrive/ui/qt/network/wifi_manager.cc +++ b/selfdrive/ui/qt/network/wifi_manager.cc @@ -360,6 +360,7 @@ void WifiManager::activateModemConnection(const QDBusObjectPath &path) { // function matches tici/hardware.py NetworkType WifiManager::currentNetworkType() { + // TODO: shows type 2 (CELL) while on wifi?! don't use this auto primary_conn = call(NM_DBUS_PATH, NM_DBUS_INTERFACE_PROPERTIES, "Get", NM_DBUS_INTERFACE, "PrimaryConnection"); auto primary_type = call(primary_conn.path(), NM_DBUS_INTERFACE_PROPERTIES, "Get", NM_DBUS_INTERFACE_ACTIVE_CONNECTION, "Type"); @@ -383,8 +384,7 @@ bool WifiManager::currentNetworkMetered() { // auto primary_type = call(primary_conn.path(), NM_DBUS_INTERFACE_PROPERTIES, "Get", NM_DBUS_INTERFACE_ACTIVE_CONNECTION, "Type"); // auto primary_devices = call(primary_conn.path(), NM_DBUS_INTERFACE_PROPERTIES, "Get", NM_DBUS_INTERFACE_ACTIVE_CONNECTION, "Devices"); - NetworkType type = currentNetworkType(); - if (type == NetworkType::WIFI) { + if (ipv4_address != "") { int metered_prop = call(adapter, NM_DBUS_INTERFACE_PROPERTIES, "Get", NM_DBUS_INTERFACE_DEVICE, "Metered"); std::cout << "Metered property: " << metered_prop << "\n"; if (metered_prop == NM_METERED_YES || metered_prop == NM_METERED_GUESS_YES) { @@ -392,6 +392,7 @@ bool WifiManager::currentNetworkMetered() { } } + NetworkType type = currentNetworkType(); return type != NetworkType::NONE && type != NetworkType::WIFI && type != NetworkType::ETHERNET; } @@ -402,11 +403,14 @@ bool WifiManager::setCurrentNetworkMetered(bool metered) { NetworkType type = currentNetworkType(); - if (type == NetworkType::WIFI && !isTetheringEnabled()) { // note: already checks tethering + std::cout << "Setting metered to " << metered << " for type " << (int)type << "\n"; + std::cout << "tethering: " << isTetheringEnabled() << "\n"; + if (ipv4_address != "" && !isTetheringEnabled()) { // note: already checks tethering Connection settings = getConnectionSettings(settingsConnPath); int meteredInt = metered ? NM_METERED_YES : NM_METERED_NO; settings["connection"]["metered"] = meteredInt; + std::cout << "done setting metered to " << meteredInt << "\n"; call(settingsConnPath.path(), NM_DBUS_INTERFACE_SETTINGS_CONNECTION, "Update", QVariant::fromValue(settings)); return true; }