diff --git a/common/params.cc b/common/params.cc index c45ecfa194..73906d35f4 100644 --- a/common/params.cc +++ b/common/params.cc @@ -258,6 +258,7 @@ std::unordered_map keys = { {"ForceOffroad", CLEAR_ON_MANAGER_START}, {"GmapKey", PERSISTENT | BACKUP}, {"HandsOnWheelMonitoring", PERSISTENT | BACKUP}, + {"HasAcceptedTermsSP", PERSISTENT}, {"HideVEgoUi", PERSISTENT | BACKUP}, {"HkgSmoothStop", PERSISTENT | BACKUP}, {"HotspotOnBoot", PERSISTENT}, diff --git a/selfdrive/ui/qt/offroad/onboarding.cc b/selfdrive/ui/qt/offroad/onboarding.cc index 76fa78271e..c547ba564d 100644 --- a/selfdrive/ui/qt/offroad/onboarding.cc +++ b/selfdrive/ui/qt/offroad/onboarding.cc @@ -195,17 +195,27 @@ OnboardingWindow::OnboardingWindow(QWidget *parent) : QStackedWidget(parent) { std::string current_terms_version_sp = params.get("TermsVersionSunnypilot"); std::string current_training_version = params.get("TrainingVersion"); accepted_terms = params.get("HasAcceptedTerms") == current_terms_version_sp; + accepted_terms_sp = params.get("HasAcceptedTermsSP") == current_terms_version_sp; training_done = params.get("CompletedTrainingVersion") == current_training_version; TermsPage* terms = new TermsPage(this); addWidget(terms); connect(terms, &TermsPage::acceptedTerms, [=]() { - params.put("HasAcceptedTerms", current_terms_version_sp); + params.put("HasAcceptedTerms", current_terms_version); accepted_terms = true; updateActiveScreen(); }); connect(terms, &TermsPage::declinedTerms, [=]() { setCurrentIndex(2); }); + TermsPage* terms_sp = new TermsPage(this); + addWidget(terms_sp); + connect(terms_sp, &TermsPage::acceptedTerms, [=]() { + params.put("HasAcceptedTermsSP", current_terms_version_sp); + accepted_terms = true; + updateActiveScreen(); + }); + connect(terms_sp, &TermsPage::declinedTerms, [=]() { setCurrentIndex(2); }); + TrainingGuide* tr = new TrainingGuide(this); addWidget(tr); connect(tr, &TrainingGuide::completedTraining, [=]() { diff --git a/selfdrive/ui/qt/offroad/onboarding.h b/selfdrive/ui/qt/offroad/onboarding.h index a1b6895ba0..7580e63967 100644 --- a/selfdrive/ui/qt/offroad/onboarding.h +++ b/selfdrive/ui/qt/offroad/onboarding.h @@ -103,7 +103,7 @@ private: void updateActiveScreen(); Params params; - bool accepted_terms = false, training_done = false; + bool accepted_terms = false, accepted_terms_sp = false, training_done = false; signals: void onboardingDone(); diff --git a/system/hardware/hardwared.py b/system/hardware/hardwared.py index 14eb4f24e6..dd03692770 100755 --- a/system/hardware/hardwared.py +++ b/system/hardware/hardwared.py @@ -297,7 +297,8 @@ def hardware_thread(end_event, hw_queue) -> None: startup_conditions["up_to_date"] = params.get("Offroad_ConnectivityNeeded") is None or params.get_bool("DisableUpdates") or params.get_bool("SnoozeUpdate") startup_conditions["not_uninstalling"] = not params.get_bool("DoUninstall") - startup_conditions["accepted_terms"] = params.get("HasAcceptedTerms") == terms_version_sp + startup_conditions["accepted_terms"] = params.get("HasAcceptedTerms") == terms_version + startup_conditions["accepted_terms"] = params.get("HasAcceptedTermsSP") == terms_version_sp # with 2% left, we killall, otherwise the phone will take a long time to boot startup_conditions["free_space"] = msg.deviceState.freeSpacePercent > 2 diff --git a/system/manager/manager.py b/system/manager/manager.py index 273193b78c..a48440f846 100755 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -67,6 +67,7 @@ def manager_init() -> None: ("EnhancedScc", "0"), ("FeatureStatus", "1"), ("HandsOnWheelMonitoring", "0"), + ("HasAcceptedTermsSP", "0"), ("HideVEgoUi", "0"), ("LastSpeedLimitSignTap", "0"), ("LkasToggle", "0"),