summaryrefslogtreecommitdiff
path: root/src/displayapp/screens/settings/SettingSetDateTime.cpp
diff options
context:
space:
mode:
authorJohn Quigley <Elements6007@gmail.com>2023-01-14 14:50:21 -0500
committerGitHub <noreply@github.com>2023-01-14 21:50:21 +0200
commita7f8b59bfb1641dea7f30a267c6bf7e882d9edbf (patch)
treeaa0a46d0da410c83165014af1007acf7be349530 /src/displayapp/screens/settings/SettingSetDateTime.cpp
parent6f6ea68acaf2d72dcef479dce429df214b51651c (diff)
Combine Date and Time Settings (#1465)
Replace separate SettingSetDate and SettingSetTime with a combined screenlist. Add DotIndicators. Similar to PageIndicator, but for use when separating screens instead of pages of a list. Co-authored-by: Riku Isokoski <riksu9000@gmail.com>
Diffstat (limited to 'src/displayapp/screens/settings/SettingSetDateTime.cpp')
-rw-r--r--src/displayapp/screens/settings/SettingSetDateTime.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/displayapp/screens/settings/SettingSetDateTime.cpp b/src/displayapp/screens/settings/SettingSetDateTime.cpp
new file mode 100644
index 00000000..905a76ab
--- /dev/null
+++ b/src/displayapp/screens/settings/SettingSetDateTime.cpp
@@ -0,0 +1,54 @@
+#include "displayapp/screens/settings/SettingSetDateTime.h"
+#include "displayapp/screens/settings/SettingSetDate.h"
+#include "displayapp/screens/settings/SettingSetTime.h"
+#include "displayapp/DisplayApp.h"
+#include "displayapp/screens/ScreenList.h"
+#include "components/settings/Settings.h"
+#include "displayapp/widgets/DotIndicator.h"
+
+using namespace Pinetime::Applications::Screens;
+
+bool SettingSetDateTime::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
+ return screens.OnTouchEvent(event);
+}
+
+SettingSetDateTime::SettingSetDateTime(Pinetime::Applications::DisplayApp* app,
+ Pinetime::Controllers::DateTime& dateTimeController,
+ Pinetime::Controllers::Settings& settingsController)
+ : Screen(app),
+ dateTimeController {dateTimeController},
+ settingsController {settingsController},
+ screens {app,
+ 0,
+ {[this]() -> std::unique_ptr<Screen> {
+ return screenSetDate();
+ },
+ [this]() -> std::unique_ptr<Screen> {
+ return screenSetTime();
+ }},
+ Screens::ScreenListModes::UpDown} {
+}
+
+std::unique_ptr<Screen> SettingSetDateTime::screenSetDate() {
+ Widgets::DotIndicator dotIndicator(0, 2);
+ dotIndicator.Create();
+ return std::make_unique<Screens::SettingSetDate>(app, dateTimeController, *this);
+}
+
+std::unique_ptr<Screen> SettingSetDateTime::screenSetTime() {
+ Widgets::DotIndicator dotIndicator(1, 2);
+ dotIndicator.Create();
+ return std::make_unique<Screens::SettingSetTime>(app, dateTimeController, settingsController, *this);
+}
+
+SettingSetDateTime::~SettingSetDateTime() {
+ lv_obj_clean(lv_scr_act());
+}
+
+void SettingSetDateTime::Advance() {
+ screens.OnTouchEvent(Pinetime::Applications::TouchEvents::SwipeUp);
+}
+
+void SettingSetDateTime::Quit() {
+ running = false;
+}