InfiniTime.git

commit 9c5b1437ecd032c163f2caf3afeac32b90b7f7ae

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()];
       };