Author: Riku Isokoski <riksu9000@gmail.com>
Optimize SettingTimeFormat
src/displayapp/screens/settings/SettingTimeFormat.cpp | 13 +++---------- src/displayapp/screens/settings/SettingTimeFormat.h | 9 ++++++++-
diff --git a/src/displayapp/screens/settings/SettingTimeFormat.cpp b/src/displayapp/screens/settings/SettingTimeFormat.cpp index 5502794b8f643b61d5b3c6b88ef148e49e6a93a5..e137c0af87d4227a71fa6540da7845535a022de3 100644 --- a/src/displayapp/screens/settings/SettingTimeFormat.cpp +++ b/src/displayapp/screens/settings/SettingTimeFormat.cpp @@ -14,7 +14,7 @@ screen->UpdateSelected(obj, event); } } -constexpr std::array<const char*, 2> SettingTimeFormat::options; +constexpr std::array<SettingTimeFormat::Option, 2> SettingTimeFormat::options; SettingTimeFormat::SettingTimeFormat(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController) : Screen(app), settingsController {settingsController} { @@ -44,7 +44,7 @@ lv_obj_align(icon, title, LV_ALIGN_OUT_LEFT_MID, -10, 0); for (unsigned int i = 0; i < options.size(); i++) { cbOption[i] = lv_checkbox_create(container1, nullptr); - lv_checkbox_set_text(cbOption[i], options[i]); + lv_checkbox_set_text(cbOption[i], options[i].name); cbOption[i]->user_data = this; lv_obj_set_event_cb(cbOption[i], event_handler); SetRadioButtonStyle(cbOption[i]); @@ -67,14 +67,7 @@ if (event == LV_EVENT_VALUE_CHANGED) { for (unsigned int i = 0; i < options.size(); i++) { if (object == cbOption[i]) { lv_checkbox_set_checked(cbOption[i], true); - - if (i == 0) { - settingsController.SetClockType(Controllers::Settings::ClockType::H12); - }; - if (i == 1) { - settingsController.SetClockType(Controllers::Settings::ClockType::H24); - }; - + settingsController.SetClockType(options[i].clockType); } else { lv_checkbox_set_checked(cbOption[i], false); } diff --git a/src/displayapp/screens/settings/SettingTimeFormat.h b/src/displayapp/screens/settings/SettingTimeFormat.h index 01ca2c9b074915b19ff9bf533d50a284f36921f2..dc0413ec2ce8235471b652cc68a46a4507f1b95f 100644 --- a/src/displayapp/screens/settings/SettingTimeFormat.h +++ b/src/displayapp/screens/settings/SettingTimeFormat.h @@ -20,7 +20,14 @@ void UpdateSelected(lv_obj_t* object, lv_event_t event); private: - static constexpr std::array<const char*, 2> options = {"12-hour", "24-hour"}; + struct Option { + Controllers::Settings::ClockType clockType; + const char* name; + }; + static constexpr std::array<Option, 2> options = {{ + {Controllers::Settings::ClockType::H12, "12-hour"}, + {Controllers::Settings::ClockType::H24, "24-hour"}, + }}; Controllers::Settings& settingsController; lv_obj_t* cbOption[options.size()]; };