nice experience

pull/35293/head
Shane Smiskol 1 week ago
parent ff8cc0d91f
commit 64aa36ccc3
  1. 11
      selfdrive/ui/qt/network/networking.cc
  2. 7
      selfdrive/ui/qt/network/wifi_manager.cc
  3. 2
      selfdrive/ui/qt/network/wifi_manager.h

@ -210,10 +210,17 @@ AdvancedNetworking::AdvancedNetworking(QWidget* parent, WifiManager* wifi): QWid
wifiMeteredToggle = new ToggleControl(tr("Metered Wi-Fi Network"), tr("Prevent large data uploads when on a metered connection"), "", false);
wifiMeteredToggle->setEnabled(false);
QObject::connect(wifiMeteredToggle, &ToggleControl::toggleFlipped, [=](bool state) {
wifi->setCurrentNetworkMetered(state);
std::cout << "Set Wi-Fi metered to " << state << std::endl;
wifiMeteredToggle->setValue(state ? "Metered" : "Unmetered");
wifiMeteredToggle->setEnabled(false);
std::cout << "Set Wi-Fi metered to " << state << std::endl;
auto pending_call = wifi->setCurrentNetworkMetered(state);
if (pending_call) {
QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(*pending_call);
QObject::connect(watcher, &QDBusPendingCallWatcher::finished, this, [=]() {
refresh();
watcher->deleteLater();
});
}
});
list->addItem(wifiMeteredToggle);

@ -396,7 +396,7 @@ bool WifiManager::currentNetworkMetered() {
return type != NetworkType::NONE && type != NetworkType::WIFI && type != NetworkType::ETHERNET;
}
bool WifiManager::setCurrentNetworkMetered(bool metered) {
std::optional<QDBusPendingCall> WifiManager::setCurrentNetworkMetered(bool metered) {
// auto primary_conn = call<QDBusObjectPath>(NM_DBUS_PATH, NM_DBUS_INTERFACE_PROPERTIES, "Get", NM_DBUS_INTERFACE, "PrimaryConnection");
// std::cout << "Primary connection: " << primary_conn.path() << "\n";
// QDBusObjectPath settingsConnPath = call<QDBusObjectPath>(primary_conn.path(), NM_DBUS_INTERFACE_PROPERTIES, "Get", NM_DBUS_INTERFACE_ACTIVE_CONNECTION, "Connection");
@ -417,13 +417,12 @@ bool WifiManager::setCurrentNetworkMetered(bool metered) {
settings["connection"]["metered"] = meteredInt;
std::cout << "done setting metered to " << meteredInt << "\n";
asyncCall(settingsConnPath.path(), NM_DBUS_INTERFACE_SETTINGS_CONNECTION, "Update", QVariant::fromValue(settings));
return true;
return asyncCall(settingsConnPath.path(), NM_DBUS_INTERFACE_SETTINGS_CONNECTION, "Update", QVariant::fromValue(settings));
}
}
}
}
return false;
return std::nullopt;
//// NetworkType type = currentNetworkType();
// std::cout << "Setting metered to " << metered << " for type " << (int)type << "\n";

@ -55,7 +55,7 @@ public:
std::optional<QDBusPendingCall> activateWifiConnection(const QString &ssid);
NetworkType currentNetworkType();
bool currentNetworkMetered();
bool setCurrentNetworkMetered(bool metered);
std::optional<QDBusPendingCall> setCurrentNetworkMetered(bool metered);
void updateGsmSettings(bool roaming, QString apn, bool metered);
void connect(const Network &ssid, const bool is_hidden = false, const QString &password = {}, const QString &username = {});

Loading…
Cancel
Save