![Joaquim](/assets/img/avatar_default.png)
new navigation add some color to the apps redesign menus new settings menu new quick settings code clean up size reduction by converting navigation images to font and more...
83 lines
2.6 KiB
C++
83 lines
2.6 KiB
C++
#pragma once
|
|
|
|
#include <lvgl/src/lv_core/lv_obj.h>
|
|
#include <chrono>
|
|
#include <cstdint>
|
|
#include <memory>
|
|
#include "Screen.h"
|
|
#include "ScreenList.h"
|
|
#include "components/datetime/DateTimeController.h"
|
|
|
|
namespace Pinetime {
|
|
namespace Controllers {
|
|
class Settings;
|
|
class Battery;
|
|
class Ble;
|
|
class NotificationManager;
|
|
class HeartRateController;
|
|
}
|
|
|
|
namespace Applications {
|
|
namespace Screens {
|
|
|
|
class WatchFaceDigital : public Screen {
|
|
public:
|
|
WatchFaceDigital(DisplayApp* app,
|
|
Controllers::DateTime& dateTimeController,
|
|
Controllers::Battery& batteryController,
|
|
Controllers::Ble& bleController,
|
|
Controllers::NotificationManager& notificatioManager,
|
|
Controllers::Settings &settingsController,
|
|
Controllers::HeartRateController& heartRateController);
|
|
~WatchFaceDigital() override;
|
|
|
|
bool Refresh() override;
|
|
|
|
|
|
void OnObjectEvent(lv_obj_t *pObj, lv_event_t i);
|
|
private:
|
|
|
|
|
|
char displayedChar[5];
|
|
|
|
uint16_t currentYear = 1970;
|
|
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<int> batteryPercentRemaining {};
|
|
DirtyValue<bool> bleState {};
|
|
DirtyValue<std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds>> currentDateTime{};
|
|
DirtyValue<uint32_t> stepCount {};
|
|
DirtyValue<uint8_t> heartbeat {};
|
|
DirtyValue<bool> heartbeatRunning {};
|
|
DirtyValue<bool> notificationState {};
|
|
|
|
lv_obj_t* label_time;
|
|
lv_obj_t* label_time_ampm;
|
|
lv_obj_t* label_date;
|
|
lv_obj_t* backgroundLabel;
|
|
lv_obj_t* batteryIcon;
|
|
lv_obj_t* bleIcon;
|
|
lv_obj_t* batteryPlug;
|
|
lv_obj_t* heartbeatIcon;
|
|
lv_obj_t* heartbeatValue;
|
|
lv_obj_t* heartbeatBpm;
|
|
lv_obj_t* stepIcon;
|
|
lv_obj_t* stepValue;
|
|
lv_obj_t* notificationIcon;
|
|
|
|
Controllers::DateTime& dateTimeController;
|
|
Controllers::Battery& batteryController;
|
|
Controllers::Ble& bleController;
|
|
Controllers::NotificationManager& notificatioManager;
|
|
Controllers::Settings& settingsController;
|
|
Controllers::HeartRateController& heartRateController;
|
|
|
|
|
|
|
|
};
|
|
}
|
|
}
|
|
}
|