summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorminacode <minamoto9@web.de>2022-10-09 21:58:57 +0200
committerJF <JF002@users.noreply.github.com>2022-12-27 12:13:52 +0100
commitcad58f190f18bc4717d7c1b78e8a5497d5220d9e (patch)
tree2996be8df09459df319bb1a01fe4911e49d983fd /src
parent59ee0ad1aae99476c69c908dc9bce8626e695c94 (diff)
added message, changed UI
Diffstat (limited to 'src')
-rw-r--r--src/components/battery/BatteryController.cpp9
-rw-r--r--src/components/battery/BatteryController.h5
-rw-r--r--src/displayapp/screens/BatteryInfo.cpp2
-rw-r--r--src/systemtask/SystemTask.cpp4
4 files changed, 12 insertions, 8 deletions
diff --git a/src/components/battery/BatteryController.cpp b/src/components/battery/BatteryController.cpp
index ca0db79f..49a17da1 100644
--- a/src/components/battery/BatteryController.cpp
+++ b/src/components/battery/BatteryController.cpp
@@ -96,12 +96,11 @@ void Battery::SaadcEventHandler(nrfx_saadc_evt_t const* p_event) {
lastPercentRemaining = percentRemaining;
percentRemaining = newPercent;
systemTask->PushMessage(System::Messages::BatteryPercentageUpdated);
- }
- // warn at 20% battery (wrt. rescaling above)
- constexpr uint8_t lowBatteryThreshold {20};
- if (!isPowerPresent && lastPercentRemaining >= lowBatteryThreshold && percentRemaining < lowBatteryThreshold) {
- systemTask->PushMessage(System::Messages::LowBattery);
+ // warn at 20% battery (wrt. rescaling above)
+ if (!isPowerPresent && BatteryIsLow() && lastPercentRemaining > lowBatteryThreshold) {
+ systemTask->PushMessage(System::Messages::LowBattery);
+ }
}
nrfx_saadc_uninit();
diff --git a/src/components/battery/BatteryController.h b/src/components/battery/BatteryController.h
index 53eb7d19..df592232 100644
--- a/src/components/battery/BatteryController.h
+++ b/src/components/battery/BatteryController.h
@@ -17,6 +17,9 @@ namespace Pinetime {
uint8_t PercentRemaining() const {
return percentRemaining;
}
+ bool BatteryIsLow() const {
+ return percentRemaining <= lowBatteryThreshold;
+ }
uint16_t Voltage() const {
return voltage;
@@ -51,6 +54,8 @@ namespace Pinetime {
void SaadcEventHandler(nrfx_saadc_evt_t const* p_event);
static void AdcCallbackStatic(nrfx_saadc_evt_t const* event);
+ static constexpr uint8_t lowBatteryThreshold {20};
+
bool isReading = false;
Pinetime::System::SystemTask* systemTask = nullptr;
diff --git a/src/displayapp/screens/BatteryInfo.cpp b/src/displayapp/screens/BatteryInfo.cpp
index 9febda61..87d1f2e1 100644
--- a/src/displayapp/screens/BatteryInfo.cpp
+++ b/src/displayapp/screens/BatteryInfo.cpp
@@ -59,7 +59,7 @@ void BatteryInfo::Refresh() {
} else if (batteryPercent == 100) {
lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_BLUE);
lv_label_set_text_static(status, "Fully charged");
- } else if (batteryPercent < 10) {
+ } else if (batteryController.BatteryIsLow()) {
lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_YELLOW);
lv_label_set_text_static(status, "Battery low");
} else {
diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp
index e45ffe8b..2232f56b 100644
--- a/src/systemtask/SystemTask.cpp
+++ b/src/systemtask/SystemTask.cpp
@@ -426,9 +426,9 @@ void SystemTask::Work() {
break;
case Messages::LowBattery: {
Pinetime::Controllers::NotificationManager::Notification notif;
- std::array<char, 101> message {"Low Battery\0Low Battery\0"};
+ std::array<char, 101> message {"Low Battery\0Charge your watch to prevent data loss\0"};
notif.message = message;
- notif.size = 25;
+ notif.size = 52;
notif.category = Pinetime::Controllers::NotificationManager::Categories::SimpleAlert;
notificationManager.Push(std::move(notif));
PushMessage(Messages::OnNewNotification);