aboutsummaryrefslogtreecommitdiffstats
path: root/src/displayapp/screens/settings
diff options
context:
space:
mode:
Diffstat (limited to 'src/displayapp/screens/settings')
-rw-r--r--src/displayapp/screens/settings/QuickSettings.cpp5
-rw-r--r--src/displayapp/screens/settings/QuickSettings.h3
-rw-r--r--src/displayapp/screens/settings/SettingBluetooth.cpp6
-rw-r--r--src/displayapp/screens/settings/SettingBluetooth.h1
-rw-r--r--src/displayapp/screens/settings/SettingDisplay.cpp31
-rw-r--r--src/displayapp/screens/settings/SettingDisplay.h5
-rw-r--r--src/displayapp/screens/settings/SettingSetDateTime.cpp3
-rw-r--r--src/displayapp/screens/settings/SettingSetDateTime.h1
-rw-r--r--src/displayapp/screens/settings/SettingWakeUp.cpp6
-rw-r--r--src/displayapp/screens/settings/SettingWakeUp.h3
-rw-r--r--src/displayapp/screens/settings/SettingWatchFace.cpp47
-rw-r--r--src/displayapp/screens/settings/SettingWatchFace.h30
-rw-r--r--src/displayapp/screens/settings/SettingWeatherFormat.cpp63
-rw-r--r--src/displayapp/screens/settings/SettingWeatherFormat.h26
-rw-r--r--src/displayapp/screens/settings/Settings.cpp2
-rw-r--r--src/displayapp/screens/settings/Settings.h8
16 files changed, 193 insertions, 47 deletions
diff --git a/src/displayapp/screens/settings/QuickSettings.cpp b/src/displayapp/screens/settings/QuickSettings.cpp
index 05484888..c5c3071a 100644
--- a/src/displayapp/screens/settings/QuickSettings.cpp
+++ b/src/displayapp/screens/settings/QuickSettings.cpp
@@ -33,13 +33,14 @@ QuickSettings::QuickSettings(Pinetime::Applications::DisplayApp* app,
Controllers::BrightnessController& brightness,
Controllers::MotorController& motorController,
Pinetime::Controllers::Settings& settingsController,
- const Controllers::Ble& bleController)
+ const Controllers::Ble& bleController,
+ const Controllers::AlarmController& alarmController)
: app {app},
dateTimeController {dateTimeController},
brightness {brightness},
motorController {motorController},
settingsController {settingsController},
- statusIcons(batteryController, bleController) {
+ statusIcons(batteryController, bleController, alarmController) {
statusIcons.Create();
diff --git a/src/displayapp/screens/settings/QuickSettings.h b/src/displayapp/screens/settings/QuickSettings.h
index 55da6176..87c126b7 100644
--- a/src/displayapp/screens/settings/QuickSettings.h
+++ b/src/displayapp/screens/settings/QuickSettings.h
@@ -23,7 +23,8 @@ namespace Pinetime {
Controllers::BrightnessController& brightness,
Controllers::MotorController& motorController,
Pinetime::Controllers::Settings& settingsController,
- const Controllers::Ble& bleController);
+ const Controllers::Ble& bleController,
+ const Controllers::AlarmController& alarmController);
~QuickSettings() override;
diff --git a/src/displayapp/screens/settings/SettingBluetooth.cpp b/src/displayapp/screens/settings/SettingBluetooth.cpp
index 82c3dee1..e4dc695c 100644
--- a/src/displayapp/screens/settings/SettingBluetooth.cpp
+++ b/src/displayapp/screens/settings/SettingBluetooth.cpp
@@ -36,17 +36,19 @@ namespace {
SettingBluetooth::SettingBluetooth(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController)
: app {app},
+ settings {settingsController},
checkboxList(
0,
1,
"Bluetooth",
Symbols::bluetooth,
settingsController.GetBleRadioEnabled() ? 0 : 1,
- [&settings = settingsController](uint32_t index) {
+ [this](uint32_t index) {
const bool priorMode = settings.GetBleRadioEnabled();
const bool newMode = options[index].radioEnabled;
if (newMode != priorMode) {
settings.SetBleRadioEnabled(newMode);
+ this->app->PushMessage(Pinetime::Applications::Display::Messages::BleRadioEnableToggle);
}
},
CreateOptionArray()) {
@@ -54,6 +56,4 @@ SettingBluetooth::SettingBluetooth(Pinetime::Applications::DisplayApp* app, Pine
SettingBluetooth::~SettingBluetooth() {
lv_obj_clean(lv_scr_act());
- // Pushing the message in the OnValueChanged function causes a freeze?
- app->PushMessage(Pinetime::Applications::Display::Messages::BleRadioEnableToggle);
}
diff --git a/src/displayapp/screens/settings/SettingBluetooth.h b/src/displayapp/screens/settings/SettingBluetooth.h
index 1e3f9b81..0cf014f5 100644
--- a/src/displayapp/screens/settings/SettingBluetooth.h
+++ b/src/displayapp/screens/settings/SettingBluetooth.h
@@ -20,6 +20,7 @@ namespace Pinetime {
private:
DisplayApp* app;
+ Pinetime::Controllers::Settings& settings;
CheckboxList checkboxList;
};
}
diff --git a/src/displayapp/screens/settings/SettingDisplay.cpp b/src/displayapp/screens/settings/SettingDisplay.cpp
index a9476432..bbc188a9 100644
--- a/src/displayapp/screens/settings/SettingDisplay.cpp
+++ b/src/displayapp/screens/settings/SettingDisplay.cpp
@@ -9,16 +9,22 @@
using namespace Pinetime::Applications::Screens;
namespace {
- void event_handler(lv_obj_t* obj, lv_event_t event) {
+ void TimeoutEventHandler(lv_obj_t* obj, lv_event_t event) {
auto* screen = static_cast<SettingDisplay*>(obj->user_data);
screen->UpdateSelected(obj, event);
}
+
+ void AlwaysOnEventHandler(lv_obj_t* obj, lv_event_t event) {
+ if (event == LV_EVENT_VALUE_CHANGED) {
+ auto* screen = static_cast<SettingDisplay*>(obj->user_data);
+ screen->ToggleAlwaysOn();
+ }
+ }
}
constexpr std::array<uint16_t, 6> SettingDisplay::options;
-SettingDisplay::SettingDisplay(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController)
- : app {app}, settingsController {settingsController} {
+SettingDisplay::SettingDisplay(Pinetime::Controllers::Settings& settingsController) : settingsController {settingsController} {
lv_obj_t* container1 = lv_cont_create(lv_scr_act(), nullptr);
@@ -43,19 +49,26 @@ SettingDisplay::SettingDisplay(Pinetime::Applications::DisplayApp* app, Pinetime
lv_label_set_align(icon, LV_LABEL_ALIGN_CENTER);
lv_obj_align(icon, title, LV_ALIGN_OUT_LEFT_MID, -10, 0);
- char buffer[12];
+ char buffer[4];
for (unsigned int i = 0; i < options.size(); i++) {
cbOption[i] = lv_checkbox_create(container1, nullptr);
- sprintf(buffer, "%2ds", options[i] / 1000);
+ snprintf(buffer, sizeof(buffer), "%2" PRIu16 "s", options[i] / 1000);
lv_checkbox_set_text(cbOption[i], buffer);
cbOption[i]->user_data = this;
- lv_obj_set_event_cb(cbOption[i], event_handler);
+ lv_obj_set_event_cb(cbOption[i], TimeoutEventHandler);
SetRadioButtonStyle(cbOption[i]);
if (settingsController.GetScreenTimeOut() == options[i]) {
lv_checkbox_set_checked(cbOption[i], true);
}
}
+
+ alwaysOnCheckbox = lv_checkbox_create(container1, nullptr);
+ lv_checkbox_set_text(alwaysOnCheckbox, "Always On");
+ lv_checkbox_set_checked(alwaysOnCheckbox, settingsController.GetAlwaysOnDisplaySetting());
+ lv_obj_add_state(alwaysOnCheckbox, LV_STATE_DEFAULT);
+ alwaysOnCheckbox->user_data = this;
+ lv_obj_set_event_cb(alwaysOnCheckbox, AlwaysOnEventHandler);
}
SettingDisplay::~SettingDisplay() {
@@ -63,13 +76,17 @@ SettingDisplay::~SettingDisplay() {
settingsController.SaveSettings();
}
+void SettingDisplay::ToggleAlwaysOn() {
+ settingsController.SetAlwaysOnDisplaySetting(!settingsController.GetAlwaysOnDisplaySetting());
+ lv_checkbox_set_checked(alwaysOnCheckbox, settingsController.GetAlwaysOnDisplaySetting());
+}
+
void SettingDisplay::UpdateSelected(lv_obj_t* object, lv_event_t event) {
if (event == LV_EVENT_CLICKED) {
for (unsigned int i = 0; i < options.size(); i++) {
if (object == cbOption[i]) {
lv_checkbox_set_checked(cbOption[i], true);
settingsController.SetScreenTimeOut(options[i]);
- app->PushMessage(Applications::Display::Messages::UpdateTimeOut);
} else {
lv_checkbox_set_checked(cbOption[i], false);
}
diff --git a/src/displayapp/screens/settings/SettingDisplay.h b/src/displayapp/screens/settings/SettingDisplay.h
index 64212c02..3bd10a62 100644
--- a/src/displayapp/screens/settings/SettingDisplay.h
+++ b/src/displayapp/screens/settings/SettingDisplay.h
@@ -14,17 +14,18 @@ namespace Pinetime {
class SettingDisplay : public Screen {
public:
- SettingDisplay(DisplayApp* app, Pinetime::Controllers::Settings& settingsController);
+ SettingDisplay(Pinetime::Controllers::Settings& settingsController);
~SettingDisplay() override;
void UpdateSelected(lv_obj_t* object, lv_event_t event);
+ void ToggleAlwaysOn();
private:
- DisplayApp* app;
static constexpr std::array<uint16_t, 6> options = {5000, 7000, 10000, 15000, 20000, 30000};
Controllers::Settings& settingsController;
lv_obj_t* cbOption[options.size()];
+ lv_obj_t* alwaysOnCheckbox;
};
}
}
diff --git a/src/displayapp/screens/settings/SettingSetDateTime.cpp b/src/displayapp/screens/settings/SettingSetDateTime.cpp
index cf9b0638..8926ff31 100644
--- a/src/displayapp/screens/settings/SettingSetDateTime.cpp
+++ b/src/displayapp/screens/settings/SettingSetDateTime.cpp
@@ -15,8 +15,7 @@ bool SettingSetDateTime::OnTouchEvent(Pinetime::Applications::TouchEvents event)
SettingSetDateTime::SettingSetDateTime(Pinetime::Applications::DisplayApp* app,
Pinetime::Controllers::DateTime& dateTimeController,
Pinetime::Controllers::Settings& settingsController)
- : app {app},
- dateTimeController {dateTimeController},
+ : dateTimeController {dateTimeController},
settingsController {settingsController},
screens {app,
0,
diff --git a/src/displayapp/screens/settings/SettingSetDateTime.h b/src/displayapp/screens/settings/SettingSetDateTime.h
index 051b1abe..dea283f8 100644
--- a/src/displayapp/screens/settings/SettingSetDateTime.h
+++ b/src/displayapp/screens/settings/SettingSetDateTime.h
@@ -20,7 +20,6 @@ namespace Pinetime {
void Quit();
private:
- DisplayApp* app;
Controllers::DateTime& dateTimeController;
Controllers::Settings& settingsController;
diff --git a/src/displayapp/screens/settings/SettingWakeUp.cpp b/src/displayapp/screens/settings/SettingWakeUp.cpp
index 8df34c20..4649dc82 100644
--- a/src/displayapp/screens/settings/SettingWakeUp.cpp
+++ b/src/displayapp/screens/settings/SettingWakeUp.cpp
@@ -8,7 +8,7 @@
using namespace Pinetime::Applications::Screens;
-constexpr std::array<SettingWakeUp::Option, 4> SettingWakeUp::options;
+constexpr std::array<SettingWakeUp::Option, 5> SettingWakeUp::options;
namespace {
void event_handler(lv_obj_t* obj, lv_event_t event) {
@@ -27,9 +27,9 @@ SettingWakeUp::SettingWakeUp(Pinetime::Controllers::Settings& settingsController
lv_obj_set_style_local_pad_inner(container1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 5);
lv_obj_set_style_local_border_width(container1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 0);
- lv_obj_set_pos(container1, 10, 60);
+ lv_obj_set_pos(container1, 10, 35);
lv_obj_set_width(container1, LV_HOR_RES - 20);
- lv_obj_set_height(container1, LV_VER_RES - 50);
+ lv_obj_set_height(container1, LV_VER_RES - 20);
lv_cont_set_layout(container1, LV_LAYOUT_COLUMN_LEFT);
lv_obj_t* title = lv_label_create(lv_scr_act(), nullptr);
diff --git a/src/displayapp/screens/settings/SettingWakeUp.h b/src/displayapp/screens/settings/SettingWakeUp.h
index 28219ca1..61edabce 100644
--- a/src/displayapp/screens/settings/SettingWakeUp.h
+++ b/src/displayapp/screens/settings/SettingWakeUp.h
@@ -25,11 +25,12 @@ namespace Pinetime {
};
Controllers::Settings& settingsController;
- static constexpr std::array<Option, 4> options = {{
+ static constexpr std::array<Option, 5> 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"},
+ {Controllers::Settings::WakeUpMode::LowerWrist, "Lower Wrist"},
}};
lv_obj_t* cbOption[options.size()];
diff --git a/src/displayapp/screens/settings/SettingWatchFace.cpp b/src/displayapp/screens/settings/SettingWatchFace.cpp
index 285efa72..0d5168d2 100644
--- a/src/displayapp/screens/settings/SettingWatchFace.cpp
+++ b/src/displayapp/screens/settings/SettingWatchFace.cpp
@@ -9,6 +9,37 @@ using namespace Pinetime::Applications::Screens;
constexpr const char* SettingWatchFace::title;
constexpr const char* SettingWatchFace::symbol;
+namespace {
+ uint32_t IndexOf(const std::array<Pinetime::Applications::Screens::SettingWatchFace::Item,
+ Pinetime::Applications::UserWatchFaceTypes::Count>& watchfaces,
+ Pinetime::Applications::WatchFace watchface) {
+ size_t index = 0;
+ auto found = std::find_if(watchfaces.begin(),
+ watchfaces.end(),
+ [&index, &watchface](const Pinetime::Applications::Screens::SettingWatchFace::Item& item) {
+ const bool result = item.watchface == watchface;
+ if (!result) {
+ index++;
+ }
+ return result;
+ });
+ if (found == watchfaces.end()) {
+ index = 0;
+ }
+
+ return index;
+ }
+
+ Pinetime::Applications::WatchFace IndexToWatchFace(const std::array<Pinetime::Applications::Screens::SettingWatchFace::Item,
+ Pinetime::Applications::UserWatchFaceTypes::Count>& watchfaces,
+ size_t index) {
+ if (index >= watchfaces.size()) {
+ return watchfaces[0].watchface;
+ }
+ return watchfaces[index].watchface;
+ }
+}
+
auto SettingWatchFace::CreateScreenList() const {
std::array<std::function<std::unique_ptr<Screen>()>, nScreens> screens;
for (size_t i = 0; i < screens.size(); i++) {
@@ -20,9 +51,10 @@ auto SettingWatchFace::CreateScreenList() const {
}
SettingWatchFace::SettingWatchFace(Pinetime::Applications::DisplayApp* app,
+ std::array<Screens::SettingWatchFace::Item, UserWatchFaceTypes::Count>&& watchfaceItems,
Pinetime::Controllers::Settings& settingsController,
Pinetime::Controllers::FS& filesystem)
- : app {app},
+ : watchfaceItems {std::move(watchfaceItems)},
settingsController {settingsController},
filesystem {filesystem},
screens {app, 0, CreateScreenList(), Screens::ScreenListModes::UpDown} {
@@ -39,7 +71,12 @@ bool SettingWatchFace::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
std::unique_ptr<Screen> SettingWatchFace::CreateScreen(unsigned int screenNum) const {
std::array<Screens::CheckboxList::Item, settingsPerScreen> watchfacesOnThisScreen;
for (int i = 0; i < settingsPerScreen; i++) {
- watchfacesOnThisScreen[i] = watchfaces[screenNum * settingsPerScreen + i];
+ if (i + (screenNum * settingsPerScreen) >= watchfaceItems.size()) {
+ watchfacesOnThisScreen[i] = {"", false};
+ } else {
+ auto& item = watchfaceItems[i + (screenNum * settingsPerScreen)];
+ watchfacesOnThisScreen[i] = Screens::CheckboxList::Item {item.name, item.enabled};
+ }
}
return std::make_unique<Screens::CheckboxList>(
@@ -47,9 +84,9 @@ std::unique_ptr<Screen> SettingWatchFace::CreateScreen(unsigned int screenNum) c
nScreens,
title,
symbol,
- settingsController.GetClockFace(),
- [&settings = settingsController](uint32_t clockFace) {
- settings.SetClockFace(clockFace);
+ static_cast<uint32_t>(IndexOf(watchfaceItems, settingsController.GetWatchFace())),
+ [this, &settings = settingsController](uint32_t index) {
+ settings.SetWatchFace(IndexToWatchFace(watchfaceItems, index));
settings.SaveSettings();
},
watchfacesOnThisScreen);
diff --git a/src/displayapp/screens/settings/SettingWatchFace.h b/src/displayapp/screens/settings/SettingWatchFace.h
index 45a50e3d..9edc1f7a 100644
--- a/src/displayapp/screens/settings/SettingWatchFace.h
+++ b/src/displayapp/screens/settings/SettingWatchFace.h
@@ -19,36 +19,34 @@ namespace Pinetime {
class SettingWatchFace : public Screen {
public:
- SettingWatchFace(DisplayApp* app, Pinetime::Controllers::Settings& settingsController, Pinetime::Controllers::FS& filesystem);
+ struct Item {
+ const char* name;
+ WatchFace watchface;
+ bool enabled;
+ };
+
+ SettingWatchFace(DisplayApp* app,
+ std::array<Item, UserWatchFaceTypes::Count>&& watchfaceItems,
+ Pinetime::Controllers::Settings& settingsController,
+ Pinetime::Controllers::FS& filesystem);
~SettingWatchFace() override;
bool OnTouchEvent(TouchEvents event) override;
private:
- DisplayApp* app;
auto CreateScreenList() const;
std::unique_ptr<Screen> CreateScreen(unsigned int screenNum) const;
+ static constexpr int settingsPerScreen = 4;
+ std::array<Item, UserWatchFaceTypes::Count> watchfaceItems;
+ static constexpr int nScreens = UserWatchFaceTypes::Count > 0 ? (UserWatchFaceTypes ::Count - 1) / settingsPerScreen + 1 : 1;
+
Controllers::Settings& settingsController;
Pinetime::Controllers::FS& filesystem;
static constexpr const char* title = "Watch face";
static constexpr const char* symbol = Symbols::home;
- static constexpr int settingsPerScreen = 4;
-
- // Increment this when more space is needed
- static constexpr int nScreens = 2;
-
- std::array<Screens::CheckboxList::Item, settingsPerScreen * nScreens> watchfaces {
- {{"Digital face", true},
- {"Analog face", true},
- {"PineTimeStyle", true},
- {"Terminal", true},
- {"Infineat face", Applications::Screens::WatchFaceInfineat::IsAvailable(filesystem)},
- {"Casio G7710", Applications::Screens::WatchFaceCasioStyleG7710::IsAvailable(filesystem)},
- {"", false},
- {"", false}}};
ScreenList<nScreens> screens;
};
}
diff --git a/src/displayapp/screens/settings/SettingWeatherFormat.cpp b/src/displayapp/screens/settings/SettingWeatherFormat.cpp
new file mode 100644
index 00000000..22d281b2
--- /dev/null
+++ b/src/displayapp/screens/settings/SettingWeatherFormat.cpp
@@ -0,0 +1,63 @@
+#include "displayapp/screens/settings/SettingWeatherFormat.h"
+
+#include <lvgl/lvgl.h>
+
+#include "displayapp/DisplayApp.h"
+#include "displayapp/screens/Styles.h"
+#include "displayapp/screens/Screen.h"
+#include "displayapp/screens/Symbols.h"
+
+using namespace Pinetime::Applications::Screens;
+
+namespace {
+ struct Option {
+ Pinetime::Controllers::Settings::WeatherFormat weatherFormat;
+ const char* name;
+ };
+
+ constexpr std::array<Option, 2> options = {{
+ {Pinetime::Controllers::Settings::WeatherFormat::Metric, "Metric"},
+ {Pinetime::Controllers::Settings::WeatherFormat::Imperial, "Imperial"},
+ }};
+
+ std::array<CheckboxList::Item, CheckboxList::MaxItems> CreateOptionArray() {
+ std::array<Pinetime::Applications::Screens::CheckboxList::Item, CheckboxList::MaxItems> optionArray;
+ for (size_t i = 0; i < CheckboxList::MaxItems; i++) {
+ if (i >= options.size()) {
+ optionArray[i].name = "";
+ optionArray[i].enabled = false;
+ } else {
+ optionArray[i].name = options[i].name;
+ optionArray[i].enabled = true;
+ }
+ }
+ return optionArray;
+ }
+
+ uint32_t GetDefaultOption(Pinetime::Controllers::Settings::WeatherFormat currentOption) {
+ for (size_t i = 0; i < options.size(); i++) {
+ if (options[i].weatherFormat == currentOption) {
+ return i;
+ }
+ }
+ return 0;
+ }
+}
+
+SettingWeatherFormat::SettingWeatherFormat(Pinetime::Controllers::Settings& settingsController)
+ : checkboxList(
+ 0,
+ 1,
+ "Weather format",
+ Symbols::cloudSunRain,
+ GetDefaultOption(settingsController.GetWeatherFormat()),
+ [&settings = settingsController](uint32_t index) {
+ settings.SetWeatherFormat(options[index].weatherFormat);
+ settings.SaveSettings();
+ },
+ CreateOptionArray()) {
+}
+
+SettingWeatherFormat::~SettingWeatherFormat() {
+ lv_obj_clean(lv_scr_act());
+}
diff --git a/src/displayapp/screens/settings/SettingWeatherFormat.h b/src/displayapp/screens/settings/SettingWeatherFormat.h
new file mode 100644
index 00000000..a3d2bf4b
--- /dev/null
+++ b/src/displayapp/screens/settings/SettingWeatherFormat.h
@@ -0,0 +1,26 @@
+#pragma once
+
+#include <array>
+#include <cstdint>
+#include <lvgl/lvgl.h>
+
+#include "components/settings/Settings.h"
+#include "displayapp/screens/Screen.h"
+#include "displayapp/screens/CheckboxList.h"
+
+namespace Pinetime {
+
+ namespace Applications {
+ namespace Screens {
+
+ class SettingWeatherFormat : public Screen {
+ public:
+ explicit SettingWeatherFormat(Pinetime::Controllers::Settings& settingsController);
+ ~SettingWeatherFormat() override;
+
+ private:
+ CheckboxList checkboxList;
+ };
+ }
+ }
+}
diff --git a/src/displayapp/screens/settings/Settings.cpp b/src/displayapp/screens/settings/Settings.cpp
index 065417fa..cb5ba413 100644
--- a/src/displayapp/screens/settings/Settings.cpp
+++ b/src/displayapp/screens/settings/Settings.cpp
@@ -1,7 +1,7 @@
#include "displayapp/screens/settings/Settings.h"
#include <lvgl/lvgl.h>
#include <functional>
-#include "displayapp/Apps.h"
+#include "displayapp/apps/Apps.h"
#include "displayapp/DisplayApp.h"
using namespace Pinetime::Applications::Screens;
diff --git a/src/displayapp/screens/settings/Settings.h b/src/displayapp/screens/settings/Settings.h
index 3f809753..3722c2be 100644
--- a/src/displayapp/screens/settings/Settings.h
+++ b/src/displayapp/screens/settings/Settings.h
@@ -29,7 +29,7 @@ namespace Pinetime {
static constexpr int entriesPerScreen = 4;
// Increment this when more space is needed
- static constexpr int nScreens = 3;
+ static constexpr int nScreens = 4;
static constexpr std::array<List::Applications, entriesPerScreen * nScreens> entries {{
{Symbols::sun, "Display", Apps::SettingDisplay},
@@ -38,13 +38,15 @@ namespace Pinetime {
{Symbols::home, "Watch face", Apps::SettingWatchFace},
{Symbols::shoe, "Steps", Apps::SettingSteps},
- {Symbols::clock, "Date&Time", Apps::SettingSetDateTime},
+ {Symbols::clock, "Date & Time", Apps::SettingSetDateTime},
+ {Symbols::cloudSunRain, "Weather", Apps::SettingWeatherFormat},
{Symbols::batteryHalf, "Battery", Apps::BatteryInfo},
- {Symbols::clock, "Chimes", Apps::SettingChimes},
+ {Symbols::clock, "Chimes", Apps::SettingChimes},
{Symbols::tachometer, "Shake Calib.", Apps::SettingShakeThreshold},
{Symbols::check, "Firmware", Apps::FirmwareValidation},
{Symbols::bluetooth, "Bluetooth", Apps::SettingBluetooth},
+
{Symbols::list, "About", Apps::SysInfo},
// {Symbols::none, "None", Apps::None},