diff --git a/selfdrive/common/params.cc b/selfdrive/common/params.cc index 33f37a9c4b..c14a2288a3 100644 --- a/selfdrive/common/params.cc +++ b/selfdrive/common/params.cc @@ -114,6 +114,7 @@ std::unordered_map keys = { {"GsmRoaming", PERSISTENT}, {"HardwareSerial", PERSISTENT}, {"HasAcceptedTerms", PERSISTENT}, + {"HasPrime", PERSISTENT}, {"IMEI", PERSISTENT}, {"InstallDate", PERSISTENT}, {"IsDriverViewEnabled", CLEAR_ON_MANAGER_START}, diff --git a/selfdrive/ui/qt/widgets/prime.cc b/selfdrive/ui/qt/widgets/prime.cc index b1a12fa1f3..665466df5e 100644 --- a/selfdrive/ui/qt/widgets/prime.cc +++ b/selfdrive/ui/qt/widgets/prime.cc @@ -311,11 +311,18 @@ void SetupWidget::replyFinished(const QString &response) { mainLayout->setCurrentIndex(0); } else { popup->reject(); - if (!json["prime"].toBool()) { - mainLayout->setCurrentWidget(primeAd); - } else { - QUIState::ui_state.has_prime = true; + + bool prime = json["prime"].toBool(); + + if (QUIState::ui_state.has_prime != prime) { + QUIState::ui_state.has_prime = prime; + Params().putBool("HasPrime", prime); + } + + if (prime) { mainLayout->setCurrentWidget(primeUser); + } else { + mainLayout->setCurrentWidget(primeAd); } } } diff --git a/selfdrive/ui/ui.cc b/selfdrive/ui/ui.cc index 734a550a3e..38e0e7eb8d 100644 --- a/selfdrive/ui/ui.cc +++ b/selfdrive/ui/ui.cc @@ -228,7 +228,9 @@ QUIState::QUIState(QObject *parent) : QObject(parent) { "pandaStates", "carParams", "driverMonitoringState", "sensorEvents", "carState", "liveLocationKalman", }); - ui_state.wide_camera = Hardware::TICI() ? Params().getBool("EnableWideCamera") : false; + Params params; + ui_state.wide_camera = Hardware::TICI() ? params.getBool("EnableWideCamera") : false; + ui_state.has_prime = params.getBool("HasPrime"); // update timer timer = new QTimer(this);