add metered toggle to UI

pull/25902/head
Cameron Clough 3 years ago
parent 26517a0ef9
commit 7eb69d9a18
No known key found for this signature in database
GPG Key ID: 48B6A0DB1DE6C320
  1. 19
      selfdrive/ui/qt/offroad/networking.cc
  2. 2
      selfdrive/ui/qt/offroad/wifiManager.cc
  3. 2
      selfdrive/ui/qt/offroad/wifiManager.h

@ -151,9 +151,9 @@ AdvancedNetworking::AdvancedNetworking(QWidget* parent, WifiManager* wifi): QWid
// Roaming toggle
const bool roamingEnabled = params.getBool("GsmRoaming");
ToggleControl *roamingToggle = new ToggleControl(tr("Enable Roaming"), "", "", roamingEnabled);
QObject::connect(roamingToggle, &SshToggle::toggleFlipped, [=](bool state) {
QObject::connect(roamingToggle, &ToggleControl::toggleFlipped, [=](bool state) {
params.putBool("GsmRoaming", state);
wifi->updateGsmSettings(state, QString::fromStdString(params.get("GsmApn")));
wifi->updateGsmSettings(state, QString::fromStdString(params.get("GsmApn")), params.getBool("GsmMetered"));
});
list->addItem(roamingToggle);
@ -161,6 +161,7 @@ AdvancedNetworking::AdvancedNetworking(QWidget* parent, WifiManager* wifi): QWid
ButtonControl *editApnButton = new ButtonControl(tr("APN Setting"), tr("EDIT"));
connect(editApnButton, &ButtonControl::clicked, [=]() {
const bool roamingEnabled = params.getBool("GsmRoaming");
const bool metered = params.getBool("GsmMetered");
const QString cur_apn = QString::fromStdString(params.get("GsmApn"));
QString apn = InputDialog::getText(tr("Enter APN"), this, tr("leave blank for automatic configuration"), false, -1, cur_apn).trimmed();
@ -169,12 +170,22 @@ AdvancedNetworking::AdvancedNetworking(QWidget* parent, WifiManager* wifi): QWid
} else {
params.put("GsmApn", apn.toStdString());
}
wifi->updateGsmSettings(roamingEnabled, apn);
wifi->updateGsmSettings(roamingEnabled, apn, metered);
});
list->addItem(editApnButton);
// Metered toggle
// TODO: hide when on prime
const bool metered = params.getBool("GsmMetered");
ToggleControl *meteredToggle = new ToggleControl(tr("Metered Cellular"), "", "", metered);
QObject::connect(meteredToggle, &SshToggle::toggleFlipped, [=](bool state) {
params.putBool("GsmMetered", state);
wifi->updateGsmSettings(params.getBool("GsmRoaming"), QString::fromStdString(params.get("GsmApn")), state);
});
list->addItem(meteredToggle);
// Set initial config
wifi->updateGsmSettings(roamingEnabled, QString::fromStdString(params.get("GsmApn")));
wifi->updateGsmSettings(roamingEnabled, QString::fromStdString(params.get("GsmApn")), metered);
main_layout->addWidget(new ScrollView(list, this));
main_layout->addStretch(1);

@ -345,7 +345,7 @@ NetworkType WifiManager::currentNetworkType() {
return NetworkType::NONE;
}
void WifiManager::updateGsmSettings(bool roaming, QString apn) {
void WifiManager::updateGsmSettings(bool roaming, QString apn, bool metered) {
if (!lteConnectionPath.path().isEmpty()) {
bool changes = false;
bool auto_config = apn.isEmpty();

@ -50,7 +50,7 @@ public:
bool isKnownConnection(const QString &ssid);
std::optional<QDBusPendingCall> activateWifiConnection(const QString &ssid);
NetworkType currentNetworkType();
void updateGsmSettings(bool roaming, QString apn);
void updateGsmSettings(bool roaming, QString apn, bool metered);
void connect(const Network &ssid, const QString &password = {}, const QString &username = {});
// Tethering functions

Loading…
Cancel
Save