Controls - Device Management - Offline Mode

Allow the device to be offline indefinitely.
This commit is contained in:
FrogAi 2024-05-10 11:21:54 -07:00
parent b5906a76cd
commit 805373657e
4 changed files with 17 additions and 1 deletions

View File

@ -298,7 +298,7 @@ def thermald_thread(end_event, hw_queue, frogpilot_toggles) -> None:
# **** starting logic **** # **** starting logic ****
startup_conditions["up_to_date"] = params.get("Offroad_ConnectivityNeeded") is None or params.get_bool("DisableUpdates") or params.get_bool("SnoozeUpdate") startup_conditions["up_to_date"] = params.get("Offroad_ConnectivityNeeded") is None or params.get_bool("DisableUpdates") or params.get_bool("SnoozeUpdate") or frogpilot_toggles.offline_mode
startup_conditions["not_uninstalling"] = not params.get_bool("DoUninstall") startup_conditions["not_uninstalling"] = not params.get_bool("DoUninstall")
startup_conditions["accepted_terms"] = params.get("HasAcceptedTerms") == terms_version startup_conditions["accepted_terms"] = params.get("HasAcceptedTerms") == terms_version

View File

@ -32,6 +32,18 @@ AbstractAlert::AbstractAlert(bool hasRebootBtn, QWidget *parent) : QFrame(parent
footer_layout->addWidget(dismiss_btn, 0, Qt::AlignBottom | Qt::AlignLeft); footer_layout->addWidget(dismiss_btn, 0, Qt::AlignBottom | Qt::AlignLeft);
QObject::connect(dismiss_btn, &QPushButton::clicked, this, &AbstractAlert::dismiss); QObject::connect(dismiss_btn, &QPushButton::clicked, this, &AbstractAlert::dismiss);
disable_check_btn = new QPushButton(tr("Disable Internet Check"));
disable_check_btn->setVisible(false);
disable_check_btn->setFixedSize(625, 125);
footer_layout->addWidget(disable_check_btn, 1, Qt::AlignBottom | Qt::AlignCenter);
QObject::connect(disable_check_btn, &QPushButton::clicked, [=]() {
params.putBool("SnoozeUpdate", true);
params.putBool("DeviceManagement", true);
params.putBool("OfflineMode", true);
});
QObject::connect(disable_check_btn, &QPushButton::clicked, this, &AbstractAlert::dismiss);
disable_check_btn->setStyleSheet(R"(color: white; background-color: #4F4F4F;)");
snooze_btn = new QPushButton(tr("Snooze Update")); snooze_btn = new QPushButton(tr("Snooze Update"));
snooze_btn->setVisible(false); snooze_btn->setVisible(false);
snooze_btn->setFixedSize(550, 125); snooze_btn->setFixedSize(550, 125);
@ -107,6 +119,7 @@ int OffroadAlert::refresh() {
label->setVisible(!text.isEmpty()); label->setVisible(!text.isEmpty());
alertCount += !text.isEmpty(); alertCount += !text.isEmpty();
} }
disable_check_btn->setVisible(!alerts["Offroad_ConnectivityNeeded"]->text().isEmpty());
snooze_btn->setVisible(!alerts["Offroad_ConnectivityNeeded"]->text().isEmpty()); snooze_btn->setVisible(!alerts["Offroad_ConnectivityNeeded"]->text().isEmpty());
return alertCount; return alertCount;
} }

View File

@ -15,6 +15,7 @@ class AbstractAlert : public QFrame {
protected: protected:
AbstractAlert(bool hasRebootBtn, QWidget *parent = nullptr); AbstractAlert(bool hasRebootBtn, QWidget *parent = nullptr);
QPushButton *disable_check_btn;
QPushButton *snooze_btn; QPushButton *snooze_btn;
QVBoxLayout *scrollable_layout; QVBoxLayout *scrollable_layout;
Params params; Params params;

View File

@ -329,6 +329,8 @@ class Updater:
set_offroad_alert(alert, False) set_offroad_alert(alert, False)
now = datetime.datetime.utcnow() now = datetime.datetime.utcnow()
if FrogPilotVariables.toggles.offline_mode:
last_update = now
dt = now - last_update dt = now - last_update
if failed_count > 15 and exception is not None and self.has_internet: if failed_count > 15 and exception is not None and self.has_internet:
if is_tested_branch(): if is_tested_branch():