@@ -9,11 +9,6 @@ static void lv_update_task(struct _lv_task_t* task) {
99 user_data->UpdateScreen ();
1010}
1111
12- static void lv_anim_task (struct _lv_task_t * task) {
13- auto user_data = static_cast <BatteryInfo*>(task->user_data );
14- user_data->UpdateAnim ();
15- }
16-
1712BatteryInfo::BatteryInfo (Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Battery& batteryController)
1813 : Screen(app), batteryController {batteryController} {
1914
@@ -24,12 +19,12 @@ BatteryInfo::BatteryInfo(Pinetime::Applications::DisplayApp* app, Pinetime::Cont
2419 lv_obj_set_size (charging_bar, 200 , 15 );
2520 lv_bar_set_range (charging_bar, 0 , 100 );
2621 lv_obj_align (charging_bar, nullptr , LV_ALIGN_CENTER, 0 , 10 );
27- lv_bar_set_anim_time (charging_bar, 2000 );
22+ lv_bar_set_anim_time (charging_bar, 1000 );
2823 lv_obj_set_style_local_radius (charging_bar, LV_BAR_PART_BG, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
2924 lv_obj_set_style_local_bg_color (charging_bar, LV_BAR_PART_BG, LV_STATE_DEFAULT, lv_color_hex (0x222222 ));
3025 lv_obj_set_style_local_bg_opa (charging_bar, LV_BAR_PART_BG, LV_STATE_DEFAULT, LV_OPA_100);
3126 lv_obj_set_style_local_bg_color (charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, lv_color_hex (0xFF0000 ));
32- lv_bar_set_value (charging_bar, batteryPercent, LV_ANIM_OFF );
27+ lv_bar_set_value (charging_bar, batteryPercent, LV_ANIM_ON );
3328
3429 status = lv_label_create (lv_scr_act (), nullptr );
3530 lv_label_set_text_static (status, " Reading Battery status" );
@@ -58,40 +53,15 @@ BatteryInfo::BatteryInfo(Pinetime::Applications::DisplayApp* app, Pinetime::Cont
5853 lv_obj_set_pos (backgroundLabel, 0 , 0 );
5954 lv_label_set_text_static (backgroundLabel, " " );
6055
61- taskUpdate = lv_task_create (lv_update_task, 500000 , LV_TASK_PRIO_LOW, this );
62- taskAnim = lv_task_create (lv_anim_task, 1000 , LV_TASK_PRIO_LOW, this );
56+ taskUpdate = lv_task_create (lv_update_task, 5000 , LV_TASK_PRIO_LOW, this );
6357 UpdateScreen ();
6458}
6559
6660BatteryInfo::~BatteryInfo () {
6761 lv_task_del (taskUpdate);
68- lv_task_del (taskAnim);
6962 lv_obj_clean (lv_scr_act ());
7063}
7164
72- void BatteryInfo::UpdateAnim () {
73- batteryPercent = batteryController.PercentRemaining ();
74-
75- if (batteryPercent >= 0 ) {
76- if (batteryController.IsCharging () and batteryPercent < 100 ) {
77- animation += 1 ;
78- if (animation >= 100 ) {
79- animation = 0 ;
80- }
81-
82- } else {
83- if (animation > batteryPercent) {
84- animation--;
85- }
86- if (animation < batteryPercent) {
87- animation++;
88- }
89- }
90-
91- lv_bar_set_value (charging_bar, animation, LV_ANIM_OFF);
92- }
93- }
94-
9565void BatteryInfo::UpdateScreen () {
9666
9767 batteryController.Update ();
@@ -123,9 +93,9 @@ void BatteryInfo::UpdateScreen() {
12393
12494 lv_obj_align (status, charging_bar, LV_ALIGN_OUT_BOTTOM_MID, 0 , 20 );
12595 lv_label_set_text_fmt (voltage, " %1i.%02i volts" , batteryVoltage / 1000 , batteryVoltage % 1000 / 10 );
96+ lv_bar_set_value (charging_bar, batteryPercent, LV_ANIM_ON);
12697}
12798
12899bool BatteryInfo::Refresh () {
129-
130100 return running;
131101}
0 commit comments