@@ -225,11 +225,11 @@ class HomeScreen : public UIScreen {
225225 }
226226
227227 bool handleInput (char c) override {
228- if (c == KEY_LEFT) {
228+ if (c == KEY_LEFT || c == KEY_PREV ) {
229229 _page = (_page + HomePage::Count - 1 ) % HomePage::Count;
230230 return true ;
231231 }
232- if (c == KEY_RIGHT || c == KEY_SELECT ) {
232+ if (c == KEY_NEXT || c == KEY_RIGHT ) {
233233 _page = (_page + 1 ) % HomePage::Count;
234234 if (_page == HomePage::RECENT) {
235235 _task->showAlert (" Recent adverts" , 800 );
@@ -331,7 +331,7 @@ class MsgPreviewScreen : public UIScreen {
331331 }
332332
333333 bool handleInput (char c) override {
334- if (c == KEY_SELECT || c == KEY_RIGHT) {
334+ if (c == KEY_NEXT || c == KEY_RIGHT) {
335335 num_unread--;
336336 if (num_unread == 0 ) {
337337 _task->gotoHomeScreen ();
@@ -494,9 +494,13 @@ void UITask::loop() {
494494#if defined(PIN_USER_BTN)
495495 int ev = user_btn.check ();
496496 if (ev == BUTTON_EVENT_CLICK) {
497- c = checkDisplayOn (KEY_SELECT );
497+ c = checkDisplayOn (KEY_NEXT );
498498 } else if (ev == BUTTON_EVENT_LONG_PRESS) {
499499 c = handleLongPress (KEY_ENTER);
500+ } else if (ev == BUTTON_EVENT_DOUBLE_CLICK) {
501+ c = handleDoubleClick (KEY_PREV);
502+ } else if (ev == BUTTON_EVENT_TRIPLE_CLICK) {
503+ c = handleTripleClick (KEY_SELECT);
500504 }
501505#endif
502506#if defined(WIO_TRACKER_L1)
@@ -516,9 +520,13 @@ void UITask::loop() {
516520#if defined(PIN_USER_BTN_ANA)
517521 ev = analog_btn.check ();
518522 if (ev == BUTTON_EVENT_CLICK) {
519- c = checkDisplayOn (KEY_SELECT );
523+ c = checkDisplayOn (KEY_NEXT );
520524 } else if (ev == BUTTON_EVENT_LONG_PRESS) {
521525 c = handleLongPress (KEY_ENTER);
526+ } else if (ev == BUTTON_EVENT_DOUBLE_CLICK) {
527+ c = handleDoubleClick (KEY_PREV);
528+ } else if (ev == BUTTON_EVENT_TRIPLE_CLICK) {
529+ c = handleTripleClick (KEY_SELECT);
522530 }
523531#endif
524532#if defined(DISP_BACKLIGHT) && defined(BACKLIGHT_BTN)
@@ -615,20 +623,53 @@ char UITask::handleLongPress(char c) {
615623 return c;
616624}
617625
618- /*
619- void UITask::handleButtonTriplePress() {
620- MESH_DEBUG_PRINTLN("UITask: triple press triggered");
621- // Toggle buzzer quiet mode
626+ char UITask::handleDoubleClick (char c) {
627+ MESH_DEBUG_PRINTLN (" UITask: double click triggered" );
628+ checkDisplayOn (c);
629+ return c;
630+ }
631+
632+ char UITask::handleTripleClick (char c) {
633+ MESH_DEBUG_PRINTLN (" UITask: triple click triggered" );
634+ checkDisplayOn (c);
635+ toggleBuzzer ();
636+ c = 0 ;
637+ return c;
638+ }
639+
640+ void UITask::toggleGPS () {
641+ if (_sensors != NULL ) {
642+ // toggle GPS on/off
643+ int num = _sensors->getNumSettings ();
644+ for (int i = 0 ; i < num; i++) {
645+ if (strcmp (_sensors->getSettingName (i), " gps" ) == 0 ) {
646+ if (strcmp (_sensors->getSettingValue (i), " 1" ) == 0 ) {
647+ _sensors->setSettingValue (" gps" , " 0" );
648+ soundBuzzer (UIEventType::ack);
649+ showAlert (" GPS: Disabled" , 800 );
650+ } else {
651+ _sensors->setSettingValue (" gps" , " 1" );
652+ soundBuzzer (UIEventType::ack);
653+ showAlert (" GPS: Enabled" , 800 );
654+ }
655+ _next_refresh = 0 ;
656+ break ;
657+ }
658+ }
659+ }
660+ }
661+
662+ void UITask::toggleBuzzer () {
663+ // Toggle buzzer quiet mode
622664 #ifdef PIN_BUZZER
623665 if (buzzer.isQuiet ()) {
624666 buzzer.quiet (false );
625667 soundBuzzer (UIEventType::ack);
626- showAlert("Buzzer: ON", 600 );
668+ showAlert (" Buzzer: ON" , 800 );
627669 } else {
628670 buzzer.quiet (true );
629- showAlert("Buzzer: OFF", 600 );
671+ showAlert (" Buzzer: OFF" , 800 );
630672 }
631673 _next_refresh = 0 ; // trigger refresh
632674 #endif
633675}
634- */
0 commit comments