From d7779322eb99a6d0e4b102678c3616d33aa2a67a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Jo=C5=84ski?= Date: Wed, 17 Nov 2021 13:50:10 +0100 Subject: [PATCH] [BH-1178] Fix onboarding guidelines Fix onboarding guidelines: - exiting info screen only on specific keypresses - deep press up also activatess info screen - deep press info screen also works on other info screens - fixed Polish deep press json. --- image/assets/lang/Polski.json | 2 +- .../ApplicationBellOnBoarding.cpp | 63 ++++++++++++++----- .../OnBoardingInstructionPromptWindow.cpp | 5 +- 3 files changed, 49 insertions(+), 21 deletions(-) diff --git a/image/assets/lang/Polski.json b/image/assets/lang/Polski.json index e3cecbdbf0843b55350a5e19b659e5cc81d6fc45..ed117f2ab198e403b01e8cb5ebeee1f9ab29e526 100644 --- a/image/assets/lang/Polski.json +++ b/image/assets/lang/Polski.json @@ -624,7 +624,7 @@ "app_bell_onboarding_info_rotate": "Obróć, aby wybrać", "app_bell_onboarding_info_light_click": "Kliknij lekko, aby kontynuować", "app_bell_onboarding_info_deep_click_warning": "Głęboko wciśnięty", - "app_bell_onboarding_info_deep_click_correction": "Bądź bardziej delikatny,

spróbuj
tym razem lekko kliknąć", + "app_bell_onboarding_info_deep_click_correction": "Bądź bardziej delikatny,

spróbuj
tym razem

lekko kliknąć", "app_bell_settings_advanced": "Zaawansowane", "app_bell_settings_time_units": "Czas i jednostki", "app_bell_settings_advanced_temp_scale": "Skala temperatury", diff --git a/products/BellHybrid/apps/application-bell-onboarding/ApplicationBellOnBoarding.cpp b/products/BellHybrid/apps/application-bell-onboarding/ApplicationBellOnBoarding.cpp index bbfb57f05b5edd53a4df9322a6521b21cc54221e..1d4d79ff0392f5b33428dc871494aa926fe28d33 100644 --- a/products/BellHybrid/apps/application-bell-onboarding/ApplicationBellOnBoarding.cpp +++ b/products/BellHybrid/apps/application-bell-onboarding/ApplicationBellOnBoarding.cpp @@ -158,7 +158,8 @@ namespace app auto currentWindow = getCurrentWindow()->getName(); return (currentWindow != gui::name::window::main_window && currentWindow != gui::window::name::finalizeOnBoardingWindow && - currentWindow != gui::window::name::informationOnBoardingWindow); + (currentWindow != gui::window::name::informationOnBoardingWindow || + informationState == OnBoarding::InformationStates::DeepClickWarningInfo)); } void ApplicationBellOnBoarding::startTimerOnWindows() @@ -183,6 +184,8 @@ namespace app informationState = OnBoarding::InformationStates::DeepClickCorrectionInfo; displayInformation(msg->getWindowName()); + } + if (selectedWindowCondition && informationState == OnBoarding::InformationStates::DeepClickCorrectionInfo) { informationState = OnBoarding::InformationStates::RotateInfo; } @@ -201,29 +204,57 @@ namespace app auto inputEvent = static_cast(msgl)->getEvent(); if (isInformationPromptPermittedOnCurrentWindow()) { - startTimerOnWindows(); - if (inputEvent.isKeyRelease(gui::KeyCode::KEY_UP) || inputEvent.isKeyRelease(gui::KeyCode::KEY_DOWN)) { informationState = OnBoarding::InformationStates::LightClickInfo; } - else if (inputEvent.isKeyRelease(gui::KeyCode::KEY_RIGHT)) { + else if (inputEvent.isKeyRelease(gui::KeyCode::KEY_RIGHT) || + inputEvent.isKeyRelease(gui::KeyCode::KEY_LEFT)) { informationState = OnBoarding::InformationStates::DeepClickWarningInfo; - displayInformation(getCurrentWindow()->getName()); + if (getCurrentWindow()->getName() == gui::window::name::informationOnBoardingWindow) { + displayInformation(getPrevWindow()); + } + else { + displayInformation(getCurrentWindow()->getName()); + } } else if (inputEvent.isKeyRelease(gui::KeyCode::KEY_ENTER)) { - informationState = OnBoarding::InformationStates::RotateInfo; + if (informationState == OnBoarding::InformationStates::DeepClickWarningInfo) { + informationPromptTimer.stop(); + informationState = OnBoarding::InformationStates::DeepClickCorrectionInfo; + displayInformation(getPrevWindow()); + } + else { + informationState = OnBoarding::InformationStates::RotateInfo; + } } - - return false; } - - if (inputEvent.isKeyRelease(gui::KeyCode::KEY_ENTER) && - informationState == OnBoarding::InformationStates::DeepClickWarningInfo) { - informationState = OnBoarding::InformationStates::DeepClickCorrectionInfo; - - displayInformation(getPrevWindow()); - informationState = OnBoarding::InformationStates::RotateInfo; - return true; + else { + if (getCurrentWindow()->getName() == gui::window::name::informationOnBoardingWindow) { + switch (informationState) { + case OnBoarding::InformationStates::DeepClickCorrectionInfo: + if (inputEvent.isKeyRelease(gui::KeyCode::KEY_ENTER)) { + switchWindow(getPrevWindow()); + return true; + } + break; + case OnBoarding::InformationStates::LightClickInfo: + if (inputEvent.isKeyRelease(gui::KeyCode::KEY_ENTER)) { + switchWindow(getPrevWindow()); + return true; + } + break; + case OnBoarding::InformationStates::RotateInfo: + if (inputEvent.isKeyRelease(gui::KeyCode::KEY_UP) || + inputEvent.isKeyRelease(gui::KeyCode::KEY_DOWN) || + inputEvent.isKeyRelease(gui::KeyCode::KEY_ENTER)) { + switchWindow(getPrevWindow()); + return true; + } + break; + default: + break; + } + } } return false; diff --git a/products/BellHybrid/apps/application-bell-onboarding/windows/OnBoardingInstructionPromptWindow.cpp b/products/BellHybrid/apps/application-bell-onboarding/windows/OnBoardingInstructionPromptWindow.cpp index c47b65c03f4eed7b6b877a7a311fc88ff5d683f7..bf0622538ca497b62df83e069c4f6deb12947902 100644 --- a/products/BellHybrid/apps/application-bell-onboarding/windows/OnBoardingInstructionPromptWindow.cpp +++ b/products/BellHybrid/apps/application-bell-onboarding/windows/OnBoardingInstructionPromptWindow.cpp @@ -27,10 +27,7 @@ namespace gui bool OnBoardingInstructionPromptWindow::onInput(const InputEvent &inputEvent) { - if (inputEvent.isShortRelease(KeyCode::KEY_ENTER)) { - application->switchWindow(windowToReturn); - return true; - } + // Inputs are handled on Application level return false; } } // namespace gui