summaryrefslogtreecommitdiff
path: root/src/displayapp/screens/settings/SettingWakeUp.h
diff options
context:
space:
mode:
authorRiku Isokoski <riksu9000@gmail.com>2022-10-13 21:24:48 +0300
committerJF <JF002@users.noreply.github.com>2022-12-18 16:39:34 +0100
commit99b5b49993d6d18c9377d8fab5c2306195c546a1 (patch)
tree47d86102feca3fb98bba76177692a5944e49b6c7 /src/displayapp/screens/settings/SettingWakeUp.h
parent9c5b1437ecd032c163f2caf3afeac32b90b7f7ae (diff)
Optimize SettingWakeUp
Diffstat (limited to 'src/displayapp/screens/settings/SettingWakeUp.h')
-rw-r--r--src/displayapp/screens/settings/SettingWakeUp.h22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/displayapp/screens/settings/SettingWakeUp.h b/src/displayapp/screens/settings/SettingWakeUp.h
index cd244ae5..54282f5d 100644
--- a/src/displayapp/screens/settings/SettingWakeUp.h
+++ b/src/displayapp/screens/settings/SettingWakeUp.h
@@ -1,5 +1,6 @@
#pragma once
+#include <array>
#include <cstdint>
#include <lvgl/lvgl.h>
#include "components/settings/Settings.h"
@@ -15,17 +16,22 @@ namespace Pinetime {
SettingWakeUp(DisplayApp* app, Pinetime::Controllers::Settings& settingsController);
~SettingWakeUp() override;
- void UpdateSelected(lv_obj_t* object, lv_event_t event);
+ void UpdateSelected(lv_obj_t* object);
private:
+ struct Option {
+ Controllers::Settings::WakeUpMode wakeUpMode;
+ const char* name;
+ };
Controllers::Settings& settingsController;
- uint8_t optionsTotal;
- lv_obj_t* cbOption[5];
- // When UpdateSelected is called, it uses lv_checkbox_set_checked,
- // which can cause extra events to be fired,
- // which might trigger UpdateSelected again, causing a loop.
- // This variable is used as a mutex to prevent that.
- bool ignoringEvents;
+ static constexpr std::array<Option, 4> options = {{
+ {Controllers::Settings::WakeUpMode::SingleTap, "Single Tap"},
+ {Controllers::Settings::WakeUpMode::DoubleTap, "Double Tap"},
+ {Controllers::Settings::WakeUpMode::RaiseWrist, "Raise Wrist"},
+ {Controllers::Settings::WakeUpMode::Shake, "Shake Wake"},
+ }};
+
+ lv_obj_t* cbOption[options.size()];
};
}
}