aboutsummaryrefslogtreecommitdiffstats
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
parentd69cfcfb136e45486437ad773d362da7870042e3 (diff)
Show alarm controller state in status icon
-rw-r--r--src/displayapp/DisplayApp.cpp4
-rw-r--r--src/displayapp/screens/ApplicationList.cpp3
-rw-r--r--src/displayapp/screens/ApplicationList.h2
-rw-r--r--src/displayapp/screens/Tile.cpp6
-rw-r--r--src/displayapp/screens/Tile.h1
-rw-r--r--src/displayapp/screens/WatchFaceDigital.cpp3
-rw-r--r--src/displayapp/screens/WatchFaceDigital.h3
-rw-r--r--src/displayapp/screens/settings/QuickSettings.cpp5
-rw-r--r--src/displayapp/screens/settings/QuickSettings.h3
-rw-r--r--src/displayapp/widgets/StatusIcons.cpp15
-rw-r--r--src/displayapp/widgets/StatusIcons.h8
11 files changed, 44 insertions, 9 deletions
diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp
index b1594f19..6671ac9e 100644
--- a/src/displayapp/DisplayApp.cpp
+++ b/src/displayapp/DisplayApp.cpp
@@ -526,6 +526,7 @@ void DisplayApp::LoadScreen(Apps app, DisplayApp::FullRefreshDirections directio
settingsController,
batteryController,
bleController,
+ alarmController,
dateTimeController,
filesystem,
std::move(apps));
@@ -580,7 +581,8 @@ void DisplayApp::LoadScreen(Apps app, DisplayApp::FullRefreshDirections directio
brightnessController,
motorController,
settingsController,
- bleController);
+ bleController,
+ alarmController);
break;
case Apps::Settings:
currentScreen = std::make_unique<Screens::Settings>(this, settingsController);
diff --git a/src/displayapp/screens/ApplicationList.cpp b/src/displayapp/screens/ApplicationList.cpp
index 41735349..fb46b413 100644
--- a/src/displayapp/screens/ApplicationList.cpp
+++ b/src/displayapp/screens/ApplicationList.cpp
@@ -21,6 +21,7 @@ ApplicationList::ApplicationList(DisplayApp* app,
Pinetime::Controllers::Settings& settingsController,
const Pinetime::Controllers::Battery& batteryController,
const Pinetime::Controllers::Ble& bleController,
+ const Pinetime::Controllers::AlarmController& alarmController,
Controllers::DateTime& dateTimeController,
Pinetime::Controllers::FS& filesystem,
std::array<Tile::Applications, UserAppTypes::Count>&& apps)
@@ -28,6 +29,7 @@ ApplicationList::ApplicationList(DisplayApp* app,
settingsController {settingsController},
batteryController {batteryController},
bleController {bleController},
+ alarmController {alarmController},
dateTimeController {dateTimeController},
filesystem {filesystem},
apps {std::move(apps)},
@@ -59,6 +61,7 @@ std::unique_ptr<Screen> ApplicationList::CreateScreen(unsigned int screenNum) co
settingsController,
batteryController,
bleController,
+ alarmController,
dateTimeController,
pageApps);
}
diff --git a/src/displayapp/screens/ApplicationList.h b/src/displayapp/screens/ApplicationList.h
index 41a413af..4a57d7c0 100644
--- a/src/displayapp/screens/ApplicationList.h
+++ b/src/displayapp/screens/ApplicationList.h
@@ -18,6 +18,7 @@ namespace Pinetime {
Pinetime::Controllers::Settings& settingsController,
const Pinetime::Controllers::Battery& batteryController,
const Pinetime::Controllers::Ble& bleController,
+ const Pinetime::Controllers::AlarmController& alarmController,
Controllers::DateTime& dateTimeController,
Pinetime::Controllers::FS& filesystem,
std::array<Tile::Applications, UserAppTypes::Count>&& apps);
@@ -32,6 +33,7 @@ namespace Pinetime {
Controllers::Settings& settingsController;
const Pinetime::Controllers::Battery& batteryController;
const Pinetime::Controllers::Ble& bleController;
+ const Pinetime::Controllers::AlarmController& alarmController;
Controllers::DateTime& dateTimeController;
Pinetime::Controllers::FS& filesystem;
std::array<Tile::Applications, UserAppTypes::Count> apps;
diff --git a/src/displayapp/screens/Tile.cpp b/src/displayapp/screens/Tile.cpp
index 7c392c59..7c585a4b 100644
--- a/src/displayapp/screens/Tile.cpp
+++ b/src/displayapp/screens/Tile.cpp
@@ -29,9 +29,13 @@ Tile::Tile(uint8_t screenID,
Controllers::Settings& settingsController,
const Controllers::Battery& batteryController,
const Controllers::Ble& bleController,
+ const Controllers::AlarmController& alarmController,
Controllers::DateTime& dateTimeController,
std::array<Applications, 6>& applications)
- : app {app}, dateTimeController {dateTimeController}, pageIndicator(screenID, numScreens), statusIcons(batteryController, bleController) {
+ : app {app},
+ dateTimeController {dateTimeController},
+ pageIndicator(screenID, numScreens),
+ statusIcons(batteryController, bleController, alarmController) {
settingsController.SetAppMenu(screenID);
diff --git a/src/displayapp/screens/Tile.h b/src/displayapp/screens/Tile.h
index f1b86246..c16151d0 100644
--- a/src/displayapp/screens/Tile.h
+++ b/src/displayapp/screens/Tile.h
@@ -28,6 +28,7 @@ namespace Pinetime {
Controllers::Settings& settingsController,
const Controllers::Battery& batteryController,
const Controllers::Ble& bleController,
+ const Controllers::AlarmController& alarmController,
Controllers::DateTime& dateTimeController,
std::array<Applications, 6>& applications);
diff --git a/src/displayapp/screens/WatchFaceDigital.cpp b/src/displayapp/screens/WatchFaceDigital.cpp
index d944117d..3163c6e7 100644
--- a/src/displayapp/screens/WatchFaceDigital.cpp
+++ b/src/displayapp/screens/WatchFaceDigital.cpp
@@ -19,6 +19,7 @@ using namespace Pinetime::Applications::Screens;
WatchFaceDigital::WatchFaceDigital(Controllers::DateTime& dateTimeController,
const Controllers::Battery& batteryController,
const Controllers::Ble& bleController,
+ const Controllers::AlarmController& alarmController,
Controllers::NotificationManager& notificationManager,
Controllers::Settings& settingsController,
Controllers::HeartRateController& heartRateController,
@@ -31,7 +32,7 @@ WatchFaceDigital::WatchFaceDigital(Controllers::DateTime& dateTimeController,
heartRateController {heartRateController},
motionController {motionController},
weatherService {weatherService},
- statusIcons(batteryController, bleController) {
+ statusIcons(batteryController, bleController, alarmController) {
statusIcons.Create();
diff --git a/src/displayapp/screens/WatchFaceDigital.h b/src/displayapp/screens/WatchFaceDigital.h
index 7bb713cb..3005cea5 100644
--- a/src/displayapp/screens/WatchFaceDigital.h
+++ b/src/displayapp/screens/WatchFaceDigital.h
@@ -17,6 +17,7 @@ namespace Pinetime {
class Settings;
class Battery;
class Ble;
+ class AlarmController;
class NotificationManager;
class HeartRateController;
class MotionController;
@@ -30,6 +31,7 @@ namespace Pinetime {
WatchFaceDigital(Controllers::DateTime& dateTimeController,
const Controllers::Battery& batteryController,
const Controllers::Ble& bleController,
+ const Controllers::AlarmController& alarmController,
Controllers::NotificationManager& notificationManager,
Controllers::Settings& settingsController,
Controllers::HeartRateController& heartRateController,
@@ -84,6 +86,7 @@ namespace Pinetime {
return new Screens::WatchFaceDigital(controllers.dateTimeController,
controllers.batteryController,
controllers.bleController,
+ controllers.alarmController,
controllers.notificationManager,
controllers.settingsController,
controllers.heartRateController,
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/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;
};