diff --git a/selfdrive/hardware/eon/hardware.h b/selfdrive/hardware/eon/hardware.h index bcf99a6284..a28864acfd 100644 --- a/selfdrive/hardware/eon/hardware.h +++ b/selfdrive/hardware/eon/hardware.h @@ -47,6 +47,13 @@ public: int ret = std::system("dumpsys SurfaceFlinger --list | grep -Fq 'com.android.settings'"); launched_activity = ret == 0; } + + static void close_activities() { + if(launched_activity){ + std::system("pm disable com.android.settings && pm enable com.android.settings"); + } + } + static void launch_activity(std::string activity, std::string opts = "") { if (!launched_activity) { std::string cmd = "am start -n " + activity + " " + opts + diff --git a/selfdrive/ui/qt/offroad/settings.cc b/selfdrive/ui/qt/offroad/settings.cc index 7c5537f618..624cbc8f5f 100644 --- a/selfdrive/ui/qt/offroad/settings.cc +++ b/selfdrive/ui/qt/offroad/settings.cc @@ -328,3 +328,10 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) { } )"); } + +void SettingsWindow::hideEvent(QHideEvent *event){ +#ifdef QCOM + HardwareEon::close_activities(); +#endif +} + diff --git a/selfdrive/ui/qt/offroad/settings.hpp b/selfdrive/ui/qt/offroad/settings.hpp index 2dee5b62d1..58bdc2be8f 100644 --- a/selfdrive/ui/qt/offroad/settings.hpp +++ b/selfdrive/ui/qt/offroad/settings.hpp @@ -37,6 +37,9 @@ class SettingsWindow : public QFrame { public: explicit SettingsWindow(QWidget *parent = 0); +protected: + void hideEvent(QHideEvent *event); + signals: void closeSettings(); void offroadTransition(bool offroad);