1- #include " displayapp/screens/WatchFacePrime .h"
1+ #include " displayapp/screens/WatchFacePrimeTime .h"
22
33#include < lvgl/lvgl.h>
44#include < cstdio>
1818
1919using namespace Pinetime ::Applications::Screens;
2020
21- WatchFacePrime::WatchFacePrime (Controllers::DateTime& dateTimeController,
21+ WatchFacePrimeTime::WatchFacePrimeTime (Controllers::DateTime& dateTimeController,
2222 const Controllers::Battery& batteryController,
2323 const Controllers::Ble& bleController,
2424 const Controllers::AlarmController& alarmController,
@@ -27,7 +27,8 @@ WatchFacePrime::WatchFacePrime(Controllers::DateTime& dateTimeController,
2727 Controllers::HeartRateController& heartRateController,
2828 Controllers::MotionController& motionController,
2929 Controllers::SimpleWeatherService& weatherService,
30- Controllers::MusicService& music)
30+ Controllers::MusicService& music,
31+ Controllers::FS& filesystem)
3132 : currentDateTime {{}},
3233 dateTimeController {dateTimeController},
3334 notificationManager {notificationManager},
@@ -38,6 +39,12 @@ WatchFacePrime::WatchFacePrime(Controllers::DateTime& dateTimeController,
3839 musicService (music),
3940 statusIcons(batteryController, bleController, alarmController) {
4041
42+ lfs_file f = {};
43+ if (filesystem.FileOpen (&f, " /fonts/primetime.bin" , LFS_O_RDONLY) >= 0 ) {
44+ filesystem.FileClose (&f);
45+ font_primetime = lv_font_load (" F:/fonts/primetime.bin" );
46+ }
47+
4148 statusIcons.Create ();
4249
4350 notificationIcon = lv_label_create (lv_scr_act (), nullptr );
@@ -70,7 +77,7 @@ WatchFacePrime::WatchFacePrime(Controllers::DateTime& dateTimeController,
7077 lv_obj_align (label_music, lv_scr_act (), LV_ALIGN_CENTER, 0 , 78 );
7178
7279 label_time = lv_label_create (lv_scr_act (), nullptr );
73- lv_obj_set_style_local_text_font (label_time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &prime );
80+ lv_obj_set_style_local_text_font (label_time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font_primetime );
7481 lv_obj_align (label_time, lv_scr_act (), LV_ALIGN_IN_RIGHT_MID, 0 , 0 );
7582
7683 label_time_ampm = lv_label_create (lv_scr_act (), nullptr );
@@ -101,12 +108,17 @@ WatchFacePrime::WatchFacePrime(Controllers::DateTime& dateTimeController,
101108 Refresh ();
102109}
103110
104- WatchFacePrime ::~WatchFacePrime () {
111+ WatchFacePrimeTime ::~WatchFacePrimeTime () {
105112 lv_task_del (taskRefresh);
113+
114+ if (font_primetime != nullptr ) {
115+ lv_font_free (font_primetime);
116+ }
117+
106118 lv_obj_clean (lv_scr_act ());
107119}
108120
109- void WatchFacePrime ::Refresh () {
121+ void WatchFacePrimeTime ::Refresh () {
110122 statusIcons.Update ();
111123
112124 notificationState = notificationManager.AreNewNotificationsAvailable ();
@@ -219,3 +231,14 @@ void WatchFacePrime::Refresh() {
219231 lv_obj_realign (label_music);
220232 }
221233}
234+
235+ bool WatchFacePrimeTime::IsAvailable (Pinetime::Controllers::FS& filesystem) {
236+ lfs_file file = {};
237+
238+ if (filesystem.FileOpen (&file, " /fonts/primetime.bin" , LFS_O_RDONLY) < 0 ) {
239+ return false ;
240+ }
241+
242+ filesystem.FileClose (&file);
243+ return true ;
244+ }
0 commit comments