summaryrefslogtreecommitdiff
path: root/src/displayapp/screens
diff options
context:
space:
mode:
authorMichele Bini <michele.bini@gmail.com>2022-04-12 03:11:16 (GMT)
committerMichele Bini <michele.bini@gmail.com>2022-04-12 03:11:16 (GMT)
commit502dfad3d3dd062b37722ea65ec42908139b2e17 (patch)
tree334dbd66e0e074a5d8f47423702d3e0cd2fa1731 /src/displayapp/screens
parentadc82f138237b17797f695aa6e272188ccb3fb15 (diff)
Fixed screen brightness, no sleep or wake up
Diffstat (limited to 'src/displayapp/screens')
-rw-r--r--src/displayapp/screens/Brightness.cpp103
-rw-r--r--src/displayapp/screens/Brightness.h33
-rw-r--r--src/displayapp/screens/Notifications.cpp3
-rw-r--r--src/displayapp/screens/settings/QuickSettings.cpp8
-rw-r--r--src/displayapp/screens/settings/QuickSettings.h3
-rw-r--r--src/displayapp/screens/settings/SettingWakeUp.cpp103
-rw-r--r--src/displayapp/screens/settings/SettingWakeUp.h32
-rw-r--r--src/displayapp/screens/settings/Settings.cpp2
8 files changed, 2 insertions, 285 deletions
diff --git a/src/displayapp/screens/Brightness.cpp b/src/displayapp/screens/Brightness.cpp
deleted file mode 100644
index d9901ae..0000000
--- a/src/displayapp/screens/Brightness.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-#include "displayapp/screens/Brightness.h"
-#include <lvgl/lvgl.h>
-
-using namespace Pinetime::Applications::Screens;
-
-void slider_event_cb(lv_obj_t* slider, lv_event_t event) {
- if (event == LV_EVENT_VALUE_CHANGED) {
- auto* brightnessSlider = static_cast<Brightness*>(slider->user_data);
- brightnessSlider->OnValueChanged();
- }
-}
-
-Brightness::Brightness(Pinetime::Applications::DisplayApp* app, Controllers::BrightnessController& brightness)
- : Screen(app), brightness {brightness} {
- slider = lv_slider_create(lv_scr_act(), nullptr);
- lv_obj_set_user_data(slider, this);
- lv_obj_set_width(slider, LV_DPI * 2);
- lv_obj_align(slider, nullptr, LV_ALIGN_CENTER, 0, 0);
- lv_obj_set_event_cb(slider, slider_event_cb);
- lv_slider_set_range(slider, 0, 2);
- lv_slider_set_value(slider, LevelToInt(brightness.Level()), LV_ANIM_OFF);
-
- slider_label = lv_label_create(lv_scr_act(), nullptr);
- lv_label_set_text(slider_label, LevelToString(brightness.Level()));
- lv_obj_set_auto_realign(slider_label, true);
- lv_obj_align(slider_label, slider, LV_ALIGN_OUT_BOTTOM_MID, 0, 30);
-}
-
-Brightness::~Brightness() {
- lv_obj_clean(lv_scr_act());
-}
-
-const char* Brightness::LevelToString(Pinetime::Controllers::BrightnessController::Levels level) {
- switch (level) {
- case Pinetime::Controllers::BrightnessController::Levels::Off:
- return "Off";
- case Pinetime::Controllers::BrightnessController::Levels::Low:
- return "Low";
- case Pinetime::Controllers::BrightnessController::Levels::Medium:
- return "Medium";
- case Pinetime::Controllers::BrightnessController::Levels::High:
- return "High";
- default:
- return "???";
- }
-}
-
-void Brightness::OnValueChanged() {
- SetValue(lv_slider_get_value(slider));
-}
-
-void Brightness::SetValue(uint8_t value) {
- switch (value) {
- case 0:
- brightness.Set(Controllers::BrightnessController::Levels::Low);
- break;
- case 1:
- brightness.Set(Controllers::BrightnessController::Levels::Medium);
- break;
- case 2:
- brightness.Set(Controllers::BrightnessController::Levels::High);
- break;
- }
- lv_label_set_text(slider_label, LevelToString(brightness.Level()));
-}
-
-uint8_t Brightness::LevelToInt(Pinetime::Controllers::BrightnessController::Levels level) {
- switch (level) {
- case Pinetime::Controllers::BrightnessController::Levels::Off:
- return 0;
- case Pinetime::Controllers::BrightnessController::Levels::Low:
- return 0;
- case Pinetime::Controllers::BrightnessController::Levels::Medium:
- return 1;
- case Pinetime::Controllers::BrightnessController::Levels::High:
- return 2;
- default:
- return 0;
- }
-}
-
-bool Brightness::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
- switch (event) {
- case TouchEvents::SwipeLeft:
- brightness.Lower();
- if (brightness.Level() == Pinetime::Controllers::BrightnessController::Levels::Off) {
- brightness.Set(Controllers::BrightnessController::Levels::Low);
- }
- SetValue();
- return true;
- case TouchEvents::SwipeRight:
- brightness.Higher();
- SetValue();
- return true;
- default:
- return false;
- }
-}
-
-void Brightness::SetValue() {
- lv_slider_set_value(slider, LevelToInt(brightness.Level()), LV_ANIM_OFF);
- lv_label_set_text(slider_label, LevelToString(brightness.Level()));
-}
diff --git a/src/displayapp/screens/Brightness.h b/src/displayapp/screens/Brightness.h
deleted file mode 100644
index 693570c..0000000
--- a/src/displayapp/screens/Brightness.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#pragma once
-
-#include <lvgl/src/lv_core/lv_obj.h>
-#include <cstdint>
-#include "displayapp/screens/Screen.h"
-#include "components/brightness/BrightnessController.h"
-
-namespace Pinetime {
- namespace Applications {
- namespace Screens {
- class Brightness : public Screen {
- public:
- Brightness(DisplayApp* app, Controllers::BrightnessController& brightness);
- ~Brightness() override;
-
- bool OnTouchEvent(TouchEvents event) override;
-
- void OnValueChanged();
-
- private:
- Controllers::BrightnessController& brightness;
-
- lv_obj_t* slider_label;
- lv_obj_t* slider;
-
- const char* LevelToString(Controllers::BrightnessController::Levels level);
- uint8_t LevelToInt(Controllers::BrightnessController::Levels level);
- void SetValue(uint8_t value);
- void SetValue();
- };
- }
- }
-}
diff --git a/src/displayapp/screens/Notifications.cpp b/src/displayapp/screens/Notifications.cpp
index 7cbfec8..81ee234 100644
--- a/src/displayapp/screens/Notifications.cpp
+++ b/src/displayapp/screens/Notifications.cpp
@@ -42,7 +42,6 @@ Notifications::Notifications(DisplayApp* app,
}
if (mode == Modes::Preview) {
- systemTask.PushMessage(System::Messages::DisableSleeping);
if (notification.category == Controllers::NotificationManager::Categories::IncomingCall) {
motorController.StartRinging();
} else {
@@ -67,7 +66,6 @@ Notifications::~Notifications() {
lv_task_del(taskRefresh);
// make sure we stop any vibrations before exiting
motorController.StopRinging();
- systemTask.PushMessage(System::Messages::EnableSleeping);
lv_obj_clean(lv_scr_act());
}
@@ -86,7 +84,6 @@ void Notifications::Refresh() {
}
void Notifications::OnPreviewInteraction() {
- systemTask.PushMessage(System::Messages::EnableSleeping);
motorController.StopRinging();
if (timeoutLine != nullptr) {
lv_obj_del(timeoutLine);
diff --git a/src/displayapp/screens/settings/QuickSettings.cpp b/src/displayapp/screens/settings/QuickSettings.cpp
index 47f4ca5..9919aec 100644
--- a/src/displayapp/screens/settings/QuickSettings.cpp
+++ b/src/displayapp/screens/settings/QuickSettings.cpp
@@ -20,13 +20,11 @@ namespace {
QuickSettings::QuickSettings(Pinetime::Applications::DisplayApp* app,
Pinetime::Controllers::Battery& batteryController,
Controllers::DateTime& dateTimeController,
- Controllers::BrightnessController& brightness,
Controllers::MotorController& motorController,
Pinetime::Controllers::Settings& settingsController)
: Screen(app),
batteryController {batteryController},
dateTimeController {dateTimeController},
- brightness {brightness},
motorController {motorController},
settingsController {settingsController} {
@@ -61,7 +59,7 @@ QuickSettings::QuickSettings(Pinetime::Applications::DisplayApp* app,
lv_obj_align(btn1, nullptr, LV_ALIGN_IN_TOP_LEFT, buttonXOffset, barHeight);
btn1_lvl = lv_label_create(btn1, nullptr);
- lv_label_set_text_static(btn1_lvl, brightness.GetIcon());
+ lv_label_set_text_static(btn1_lvl, "-");
btn2 = lv_btn_create(lv_scr_act(), nullptr);
btn2->user_data = this;
@@ -127,10 +125,6 @@ void QuickSettings::OnButtonEvent(lv_obj_t* object, lv_event_t event) {
if (object == btn2 && event == LV_EVENT_CLICKED) {
} else if (object == btn1 && event == LV_EVENT_CLICKED) {
- brightness.Step();
- lv_label_set_text_static(btn1_lvl, brightness.GetIcon());
- settingsController.SetBrightness(brightness.Level());
-
} else if (object == btn3 && event == LV_EVENT_VALUE_CHANGED) {
if (lv_obj_get_state(btn3, LV_BTN_PART_MAIN) & LV_STATE_CHECKED) {
diff --git a/src/displayapp/screens/settings/QuickSettings.h b/src/displayapp/screens/settings/QuickSettings.h
index 7913898..8b47648 100644
--- a/src/displayapp/screens/settings/QuickSettings.h
+++ b/src/displayapp/screens/settings/QuickSettings.h
@@ -4,7 +4,6 @@
#include "displayapp/screens/Screen.h"
#include <lvgl/lvgl.h>
#include "components/datetime/DateTimeController.h"
-#include "components/brightness/BrightnessController.h"
#include "components/motor/MotorController.h"
#include "components/settings/Settings.h"
#include "components/battery/BatteryController.h"
@@ -19,7 +18,6 @@ namespace Pinetime {
QuickSettings(DisplayApp* app,
Pinetime::Controllers::Battery& batteryController,
Controllers::DateTime& dateTimeController,
- Controllers::BrightnessController& brightness,
Controllers::MotorController& motorController,
Pinetime::Controllers::Settings& settingsController);
@@ -32,7 +30,6 @@ namespace Pinetime {
private:
Pinetime::Controllers::Battery& batteryController;
Controllers::DateTime& dateTimeController;
- Controllers::BrightnessController& brightness;
Controllers::MotorController& motorController;
Controllers::Settings& settingsController;
diff --git a/src/displayapp/screens/settings/SettingWakeUp.cpp b/src/displayapp/screens/settings/SettingWakeUp.cpp
deleted file mode 100644
index 8339d9a..0000000
--- a/src/displayapp/screens/settings/SettingWakeUp.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-#include "displayapp/screens/settings/SettingWakeUp.h"
-#include <lvgl/lvgl.h>
-#include "displayapp/DisplayApp.h"
-#include "displayapp/screens/Screen.h"
-#include "displayapp/screens/Symbols.h"
-#include "components/settings/Settings.h"
-
-using namespace Pinetime::Applications::Screens;
-
-namespace {
- static void event_handler(lv_obj_t* obj, lv_event_t event) {
- SettingWakeUp* screen = static_cast<SettingWakeUp*>(obj->user_data);
- screen->UpdateSelected(obj, event);
- }
-}
-
-SettingWakeUp::SettingWakeUp(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController)
- : Screen(app), settingsController {settingsController} {
- ignoringEvents = false;
- lv_obj_t* container1 = lv_cont_create(lv_scr_act(), nullptr);
-
- lv_obj_set_style_local_bg_opa(container1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP);
- lv_obj_set_style_local_pad_all(container1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 10);
- 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_width(container1, LV_HOR_RES - 20);
- lv_obj_set_height(container1, LV_VER_RES - 50);
- lv_cont_set_layout(container1, LV_LAYOUT_COLUMN_LEFT);
-
- lv_obj_t* title = lv_label_create(lv_scr_act(), nullptr);
- lv_label_set_text_static(title, "Wake Up");
- lv_label_set_align(title, LV_LABEL_ALIGN_CENTER);
- lv_obj_align(title, lv_scr_act(), LV_ALIGN_IN_TOP_MID, 15, 15);
-
- lv_obj_t* icon = lv_label_create(lv_scr_act(), nullptr);
- lv_obj_set_style_local_text_color(icon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_ORANGE);
- lv_label_set_text_static(icon, Symbols::eye);
- lv_label_set_align(icon, LV_LABEL_ALIGN_CENTER);
- lv_obj_align(icon, title, LV_ALIGN_OUT_LEFT_MID, -10, 0);
-
- optionsTotal = 0;
- cbOption[optionsTotal] = lv_checkbox_create(container1, nullptr);
- lv_checkbox_set_text_static(cbOption[optionsTotal], " Single Tap");
- cbOption[optionsTotal]->user_data = this;
- lv_obj_set_event_cb(cbOption[optionsTotal], event_handler);
- if (settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::SingleTap)) {
- lv_checkbox_set_checked(cbOption[optionsTotal], true);
- }
- optionsTotal++;
- cbOption[optionsTotal] = lv_checkbox_create(container1, nullptr);
- lv_checkbox_set_text_static(cbOption[optionsTotal], " Double Tap");
- cbOption[optionsTotal]->user_data = this;
- lv_obj_set_event_cb(cbOption[optionsTotal], event_handler);
- if (settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::DoubleTap)) {
- lv_checkbox_set_checked(cbOption[optionsTotal], true);
- }
- optionsTotal++;
- cbOption[optionsTotal] = lv_checkbox_create(container1, nullptr);
- lv_checkbox_set_text_static(cbOption[optionsTotal], " Raise Wrist");
- cbOption[optionsTotal]->user_data = this;
- lv_obj_set_event_cb(cbOption[optionsTotal], event_handler);
- if (settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::RaiseWrist)) {
- lv_checkbox_set_checked(cbOption[optionsTotal], true);
- }
- optionsTotal++;
-}
-
-SettingWakeUp::~SettingWakeUp() {
- lv_obj_clean(lv_scr_act());
- settingsController.SaveSettings();
-}
-
-void SettingWakeUp::UpdateSelected(lv_obj_t* object, lv_event_t event) {
- using WakeUpMode = Pinetime::Controllers::Settings::WakeUpMode;
- if (event == LV_EVENT_VALUE_CHANGED && !ignoringEvents) {
- ignoringEvents = true;
-
- // Find the index of the checkbox that triggered the event
- int index = 0;
- for (; index < optionsTotal; ++index) {
- if (cbOption[index] == object) {
- break;
- }
- }
-
- // Toggle needed wakeup mode
- auto mode = static_cast<WakeUpMode>(index);
- auto currentState = settingsController.isWakeUpModeOn(mode);
- settingsController.setWakeUpMode(mode, !currentState);
-
- // Update checkbox according to current wakeup modes.
- // This is needed because we can have extra logic when setting or unsetting wakeup modes,
- // for example, when setting SingleTap, DoubleTap is unset and vice versa.
- auto modes = settingsController.getWakeUpModes();
- for (int i = 0; i < optionsTotal; ++i) {
- lv_checkbox_set_checked(cbOption[i], modes[i]);
- }
-
- ignoringEvents = false;
- }
-}
diff --git a/src/displayapp/screens/settings/SettingWakeUp.h b/src/displayapp/screens/settings/SettingWakeUp.h
deleted file mode 100644
index cd244ae..0000000
--- a/src/displayapp/screens/settings/SettingWakeUp.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#pragma once
-
-#include <cstdint>
-#include <lvgl/lvgl.h>
-#include "components/settings/Settings.h"
-#include "displayapp/screens/Screen.h"
-
-namespace Pinetime {
-
- namespace Applications {
- namespace Screens {
-
- class SettingWakeUp : public Screen {
- public:
- SettingWakeUp(DisplayApp* app, Pinetime::Controllers::Settings& settingsController);
- ~SettingWakeUp() override;
-
- void UpdateSelected(lv_obj_t* object, lv_event_t event);
-
- private:
- Controllers::Settings& settingsController;
- uint8_t optionsTotal;
- lv_obj_t* cbOption[5];
- // When UpdateSelected is called, it uses lv_checkbox_set_checked,
- // which can cause extra events to be fired,
- // which might trigger UpdateSelected again, causing a loop.
- // This variable is used as a mutex to prevent that.
- bool ignoringEvents;
- };
- }
- }
-}
diff --git a/src/displayapp/screens/settings/Settings.cpp b/src/displayapp/screens/settings/Settings.cpp
index 3d257ae..22666a8 100644
--- a/src/displayapp/screens/settings/Settings.cpp
+++ b/src/displayapp/screens/settings/Settings.cpp
@@ -35,8 +35,8 @@ bool Settings::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
std::unique_ptr<Screen> Settings::CreateScreen1() {
std::array<Screens::List::Applications, 4> applications {{
{Symbols::sun, "Display", Apps::SettingDisplay},
- {Symbols::eye, "Wake Up", Apps::SettingWakeUp},
{Symbols::clock, "Time format", Apps::SettingTimeFormat},
+ {Symbols::none, "None", Apps::None},
{Symbols::none, "None", Apps::None}
}};