#pragma once #include #include #include #include #include "displayapp/screens/Screen.h" #include "components/datetime/DateTimeController.h" #include "components/battery/BatteryController.h" #include "components/ble/BleController.h" #include "components/ble/NotificationManager.h" #include "components/heartrate/HeartRateController.h" #include "components/motion/MotionController.h" namespace Pinetime { namespace Controllers { class Settings; class Battery; class Ble; class NotificationManager; } namespace Applications { namespace Screens { class WatchFaceAnalog24 : public Screen { public: WatchFaceAnalog24(DisplayApp* app, Controllers::DateTime& dateTimeController, Controllers::Battery& batteryController, Controllers::Ble& bleController, Controllers::NotificationManager& notificationManager, Controllers::Settings& settingsController, Controllers::HeartRateController& heartRateController, Controllers::MotionController& motionController); ~WatchFaceAnalog24() override; void Refresh() override; private: uint8_t sHour, sMinute; // , sSecond; Pinetime::Controllers::DateTime::Months month; uint8_t day; Pinetime::Controllers::DateTime::Days dayOfWeek; Pinetime::Controllers::DateTime::Months currentMonth = Pinetime::Controllers::DateTime::Months::Unknown; Pinetime::Controllers::DateTime::Days currentDayOfWeek = Pinetime::Controllers::DateTime::Days::Unknown; uint8_t currentDay = 0; DirtyValue batteryPercentRemaining {0}; DirtyValue isCharging {}; DirtyValue bleState {}; DirtyValue bleRadioEnabled {}; DirtyValue> currentDateTime; DirtyValue motionSensorOk {}; DirtyValue stepCount {}; DirtyValue heartbeat {}; DirtyValue heartbeatRunning {}; DirtyValue notificationState {false}; lv_obj_t* hour_body_trace; lv_point_t hour_point_trace[2]; lv_style_t hour_line_style_trace; // lv_obj_t* label_date_day; lv_obj_t* batteryIcon; lv_obj_t* bleIcon; lv_obj_t* heartbeatIcon; lv_obj_t* heartbeatValue; lv_obj_t* stepIcon; lv_obj_t* stepValue; lv_obj_t* notificationIcon; Controllers::DateTime& dateTimeController; Controllers::Battery& batteryController; Controllers::Ble& bleController; Controllers::NotificationManager& notificationManager; Controllers::Settings& settingsController; Controllers::HeartRateController& heartRateController; Controllers::MotionController& motionController; void UpdateClock(); void SetBatteryIcon(); lv_task_t* taskRefresh; }; } } }