aboutsummaryrefslogtreecommitdiffstats
path: root/src/displayapp/widgets
diff options
context:
space:
mode:
authorJozef Mlich <jmlich83@gmail.com>2023-12-16 15:45:13 +0100
committerJF <JF002@users.noreply.github.com>2025-01-05 14:37:35 +0100
commit3e23ee7c782904debabe3eb76ceba05f1e903be4 (patch)
tree7d795ad6fd9f9edba1261073a8270748977b3dc2 /src/displayapp/widgets
parentd69cfcfb136e45486437ad773d362da7870042e3 (diff)
Show alarm controller state in status icon
Diffstat (limited to 'src/displayapp/widgets')
-rw-r--r--src/displayapp/widgets/StatusIcons.cpp15
-rw-r--r--src/displayapp/widgets/StatusIcons.h8
2 files changed, 20 insertions, 3 deletions
diff --git a/src/displayapp/widgets/StatusIcons.cpp b/src/displayapp/widgets/StatusIcons.cpp
index 423b53d9..777731a5 100644
--- a/src/displayapp/widgets/StatusIcons.cpp
+++ b/src/displayapp/widgets/StatusIcons.cpp
@@ -1,10 +1,13 @@
#include "displayapp/widgets/StatusIcons.h"
#include "displayapp/screens/Symbols.h"
+#include "components/alarm/AlarmController.h"
using namespace Pinetime::Applications::Widgets;
-StatusIcons::StatusIcons(const Controllers::Battery& batteryController, const Controllers::Ble& bleController)
- : batteryIcon(true), batteryController {batteryController}, bleController {bleController} {
+StatusIcons::StatusIcons(const Controllers::Battery& batteryController,
+ const Controllers::Ble& bleController,
+ const Controllers::AlarmController& alarmController)
+ : batteryIcon(true), batteryController {batteryController}, bleController {bleController}, alarmController {alarmController} {
}
void StatusIcons::Create() {
@@ -20,6 +23,9 @@ void StatusIcons::Create() {
batteryPlug = lv_label_create(container, nullptr);
lv_label_set_text_static(batteryPlug, Screens::Symbols::plug);
+ alarmIcon = lv_label_create(container, nullptr);
+ lv_label_set_text_static(alarmIcon, Screens::Symbols::bell);
+
batteryIcon.Create(container);
lv_obj_align(container, nullptr, LV_ALIGN_IN_TOP_RIGHT, 0, 0);
@@ -37,6 +43,11 @@ void StatusIcons::Update() {
batteryIcon.SetBatteryPercentage(batteryPercent);
}
+ alarmEnabled = alarmController.IsEnabled();
+ if (alarmEnabled.IsUpdated()) {
+ lv_obj_set_hidden(alarmIcon, !alarmEnabled.Get());
+ }
+
bleState = bleController.IsConnected();
bleRadioEnabled = bleController.IsRadioEnabled();
if (bleState.IsUpdated() || bleRadioEnabled.IsUpdated()) {
diff --git a/src/displayapp/widgets/StatusIcons.h b/src/displayapp/widgets/StatusIcons.h
index 9e21d3ad..5524e996 100644
--- a/src/displayapp/widgets/StatusIcons.h
+++ b/src/displayapp/widgets/StatusIcons.h
@@ -5,6 +5,7 @@
#include "displayapp/screens/Screen.h"
#include "components/battery/BatteryController.h"
#include "components/ble/BleController.h"
+#include "components/alarm/AlarmController.h"
#include "displayapp/screens/BatteryIcon.h"
#include "utility/DirtyValue.h"
@@ -13,7 +14,9 @@ namespace Pinetime {
namespace Widgets {
class StatusIcons {
public:
- StatusIcons(const Controllers::Battery& batteryController, const Controllers::Ble& bleController);
+ StatusIcons(const Controllers::Battery& batteryController,
+ const Controllers::Ble& bleController,
+ const Controllers::AlarmController& alarmController);
void Align();
void Create();
@@ -27,13 +30,16 @@ namespace Pinetime {
Screens::BatteryIcon batteryIcon;
const Pinetime::Controllers::Battery& batteryController;
const Controllers::Ble& bleController;
+ const Controllers::AlarmController& alarmController;
Utility::DirtyValue<uint8_t> batteryPercentRemaining {};
Utility::DirtyValue<bool> powerPresent {};
Utility::DirtyValue<bool> bleState {};
Utility::DirtyValue<bool> bleRadioEnabled {};
+ Utility::DirtyValue<bool> alarmEnabled {};
lv_obj_t* bleIcon;
+ lv_obj_t* alarmIcon;
lv_obj_t* batteryPlug;
lv_obj_t* container;
};