44#include " displayapp/screens/Screen.h"
55#include " displayapp/screens/Symbols.h"
66
7-
87using namespace Pinetime ::Applications::Screens;
98
109namespace {
@@ -16,12 +15,9 @@ namespace {
1615
1716SettingShakeThreshold::SettingShakeThreshold (DisplayApp* app,
1817 Controllers::Settings& settingsController,
19- Controllers::MotionController& motionController,
18+ Controllers::MotionController& motionController,
2019 System::SystemTask& systemTask)
21- : Screen(app),
22- settingsController {settingsController},
23- motionController {motionController},
24- systemTask {systemTask} {
20+ : Screen(app), settingsController {settingsController}, motionController {motionController}, systemTask {systemTask} {
2521
2622 lv_obj_t * title = lv_label_create (lv_scr_act (), nullptr );
2723 lv_label_set_text_static (title, " Wake Sensitivity" );
@@ -31,7 +27,7 @@ SettingShakeThreshold::SettingShakeThreshold(DisplayApp* app,
3127 taskCount = 0 ;
3228
3329 positionArc = lv_arc_create (lv_scr_act (), nullptr );
34-
30+
3531 positionArc->user_data = this ;
3632
3733 lv_obj_set_event_cb (positionArc, event_handler);
@@ -56,43 +52,43 @@ SettingShakeThreshold::SettingShakeThreshold(DisplayApp* app,
5652 lv_obj_align (calButton, lv_scr_act (), LV_ALIGN_IN_BOTTOM_MID, 0 , 0 );
5753 calLabel = lv_label_create (calButton, NULL );
5854 lv_label_set_text (calLabel, " Calibrate" );
59-
60- }
55+ }
6156
6257SettingShakeThreshold::~SettingShakeThreshold () {
6358 settingsController.SetShakeThreshold (lv_arc_get_value (positionArc));
64- lv_task_del (refreshTask);
65- lv_obj_clean (lv_scr_act ());
59+ if (taskCount > 0 ) {
60+ lv_task_del (refreshTask);
61+ }
6662 settingsController.SaveSettings ();
63+ lv_obj_clean (lv_scr_act ());
6764}
6865
6966void SettingShakeThreshold::Refresh () {
70-
71- taskCount++; // 100ms Update time so finish @100
72- if ((motionController.currentShakeSpeed ()- 200 ) > lv_arc_get_value (positionArc)){
73- lv_arc_set_value (positionArc,(int16_t )motionController.currentShakeSpeed ()- 200 );
67+
68+ taskCount++; // 100ms Update time so finish @100
69+ if ((motionController.currentShakeSpeed () - 200 ) > lv_arc_get_value (positionArc)) {
70+ lv_arc_set_value (positionArc, (int16_t ) motionController.currentShakeSpeed () - 200 );
7471 }
75- if (taskCount >= 50 ){
72+ if (taskCount >= 50 ) {
7673 lv_label_set_text (calLabel, " Calibrate" );
77- taskCount= 0 ;
74+ taskCount = 0 ;
7875 lv_task_del (refreshTask);
7976 }
80-
8177}
8278
8379void SettingShakeThreshold::UpdateSelected (lv_obj_t * object, lv_event_t event) {
8480
8581 switch (event) {
8682 case LV_EVENT_PRESSED: {
8783 if (object == calButton) {
88- if (taskCount == 0 ){
89- lv_arc_set_value (positionArc,0 );
90- refreshTask = lv_task_create (RefreshTaskCallback, 100 , LV_TASK_PRIO_MID, this );
84+ if (taskCount == 0 ) {
85+ lv_arc_set_value (positionArc, 0 );
86+ refreshTask = lv_task_create (RefreshTaskCallback, LV_DISP_DEF_REFR_PERIOD , LV_TASK_PRIO_MID, this );
9187 lv_label_set_text (calLabel, " Shake!!!" );
92- }else {
93-
88+ } else {
89+
9490 lv_task_del (refreshTask);
95- taskCount= 0 ;
91+ taskCount = 0 ;
9692 lv_label_set_text (calLabel, " Calibrate" );
9793 }
9894 }
0 commit comments