@@ -24,13 +24,14 @@ SettingShakeThreshold::SettingShakeThreshold(DisplayApp* app,
2424 systemTask {systemTask} {
2525
2626 lv_obj_t * title = lv_label_create (lv_scr_act (), nullptr );
27- lv_label_set_text_static (title, " Shake Threshold " );
27+ lv_label_set_text_static (title, " Wake Sensitivity " );
2828 lv_label_set_align (title, LV_LABEL_ALIGN_CENTER);
2929 lv_obj_align (title, lv_scr_act (), LV_ALIGN_IN_TOP_MID, 0 , 0 );
3030
31+ taskCount = 0 ;
3132
3233 positionArc = lv_arc_create (lv_scr_act (), nullptr );
33- // Why do this?
34+
3435 positionArc->user_data = this ;
3536
3637 lv_obj_set_event_cb (positionArc, event_handler);
@@ -59,6 +60,8 @@ SettingShakeThreshold::SettingShakeThreshold(DisplayApp* app,
5960 }
6061
6162SettingShakeThreshold::~SettingShakeThreshold () {
63+ settingsController.SetShakeThreshold (lv_arc_get_value (positionArc));
64+ lv_task_del (refreshTask);
6265 lv_obj_clean (lv_scr_act ());
6366 settingsController.SaveSettings ();
6467}
@@ -69,8 +72,9 @@ void SettingShakeThreshold::Refresh() {
6972 if ((motionController.currentShakeSpeed ()-200 ) > lv_arc_get_value (positionArc)){
7073 lv_arc_set_value (positionArc,(int16_t )motionController.currentShakeSpeed ()-200 );
7174 }
72- if (taskCount >= 100 ){
75+ if (taskCount >= 50 ){
7376 lv_label_set_text (calLabel, " Calibrate" );
77+ taskCount=0 ;
7478 lv_task_del (refreshTask);
7579 }
7680
@@ -80,11 +84,18 @@ void SettingShakeThreshold::UpdateSelected(lv_obj_t* object, lv_event_t event) {
8084
8185 switch (event) {
8286 case LV_EVENT_PRESSED: {
83- taskCount = 0 ;
84- refreshTask = lv_task_create (RefreshTaskCallback, 100 , LV_TASK_PRIO_MID, this );
85- lv_label_set_text (calLabel, " Shake!!!" );
87+ if (taskCount == 0 ){
88+ refreshTask = lv_task_create (RefreshTaskCallback, 100 , LV_TASK_PRIO_MID, this );
89+ lv_label_set_text (calLabel, " Shake!!!" );
90+ }else {
91+
92+ lv_task_del (refreshTask);
93+ taskCount=0 ;
94+ lv_label_set_text (calLabel, " Calibrate" );
95+ }
8696 break ;
8797 }
98+
8899 case LV_EVENT_VALUE_CHANGED: {
89100 if (object == positionArc) {
90101 settingsController.SetShakeThreshold (lv_arc_get_value (positionArc));
0 commit comments