diff --git a/selfdrive/ui/qt/network/networking.cc b/selfdrive/ui/qt/network/networking.cc index 090b9b578c..1d1b7917bd 100644 --- a/selfdrive/ui/qt/network/networking.cc +++ b/selfdrive/ui/qt/network/networking.cc @@ -303,9 +303,27 @@ void WifiUI::refresh() { } for (; n < wifi_items.size(); ++n) wifi_items[n]->setVisible(false); + // Add 'Hidden Network' option at the end + auto hiddenNetworkItem = new QPushButton("Hidden Network"); + connect(hiddenNetworkItem, &QPushButton::clicked, this, &WifiUI::handleHiddenNetwork); + wifi_list_widget->addItem(hiddenNetworkItem); + setUpdatesEnabled(true); } +void WifiUI::handleHiddenNetwork() { + QString ssid = InputDialog::getText(tr("Enter SSID"), this, "", false); + if (!ssid.isEmpty()) { + QString pass = InputDialog::getText(tr("Enter password"), this, tr("for \"%1\"").arg(ssid), true, 8); + if (!pass.isEmpty()) { + Network hidden_network; + hidden_network.ssid = ssid.toUtf8(); + hidden_network.security_type = SecurityType::WPA; // or adjust based on your needs + wifi->connect(hidden_network, pass); + } + } +} + WifiItem *WifiUI::getItem(int n) { auto item = n < wifi_items.size() ? wifi_items[n] : wifi_items.emplace_back(new WifiItem(tr("CONNECTING..."), tr("FORGET"))); if (!item->parentWidget()) { diff --git a/selfdrive/ui/qt/network/networking.h b/selfdrive/ui/qt/network/networking.h index 4ff7380f42..dc50501fe0 100644 --- a/selfdrive/ui/qt/network/networking.h +++ b/selfdrive/ui/qt/network/networking.h @@ -50,6 +50,7 @@ signals: public slots: void refresh(); + void handleHiddenNetwork(); }; class AdvancedNetworking : public QWidget {