~aleteoryx/muditaos

ff36b9882ff1b04208212aaf0bac49365834d9b5 — Tomasz Rybarski 4 years ago a90df3e
[BH-1123] Welcome Screen Update

Additional "Welcome" screen is added to the Onboarding application
M image/assets/lang/Deutsch.json => image/assets/lang/Deutsch.json +1 -0
@@ 606,6 606,7 @@
  "app_bell_settings_time_units_time_message": "Zeit",
  "app_bell_settings_advanced_temp_scale": "Temperaturskala",
  "app_bell_onboarding_finalize": "Gut gemacht!",
  "app_bell_onboarding_welcome": "Willkommen",
  "app_bellmain_home_screen_bottom_desc_dp": "Tief drücken, um zu aktivieren",
  "app_bellmain_home_screen_bottom_desc": "Der nächste Alarm klingelt",
  "app_bellmain_home_screen_bottom_desc_in": "in",

M image/assets/lang/English.json => image/assets/lang/English.json +1 -0
@@ 606,6 606,7 @@
  "app_bell_onboarding_info_deep_click_warning": "<text font='gt_pressura' weight='light' size='38'>You've </text><text font='gt_pressura' weight='regular' size='38'>deep pressed</text>",
  "app_bell_onboarding_info_deep_click_correction": "<text font='gt_pressura' weight='light' size='38'>Be more gentle,<br></br>try </text><text font='gt_pressura' weight='regular' size='38'>light click </text><text font='gt_pressura' weight='light' size='38'>this time</text>",
  "app_bell_onboarding_finalize": "Well done!",
  "app_bell_onboarding_welcome": "Welcome",
  "app_bell_settings_advanced": "Advanced",
  "app_bell_settings_time_units": "Time & units",
  "app_bell_settings_advanced_temp_scale": "Temperature scale",

M image/assets/lang/Espanol.json => image/assets/lang/Espanol.json +1 -0
@@ 614,6 614,7 @@
  "app_bell_onboarding_info_light_click": "<text font='gt_pressura' weight='regular' size='38'>Presiona ligeramente </text><text font='gt_pressura' weight='light' size='38'>para continuar</text>",
  "app_bell_onboarding_info_deep_click_warning": "<text font='gt_pressura' weight='light' size='38'>Has presionado </text><text font='gt_pressura' weight='regular' size='38'>a fondo</text>",
  "app_bell_onboarding_info_deep_click_correction": "<text font='gt_pressura' weight='light' size='38'>Sé más suave, <br></br>intenta </text><text font='gt_pressura' weight='regular' size='38'>presionar ligeramente </text><text font='gt_pressura' weight='light' size='38'>esta vez</text>",
  "app_bell_onboarding_welcome": "Bienvenido",
  "app_bellmain_home_screen_bottom_desc_dp": "Presionar a fondo para activar",
  "app_bellmain_alarm": "Alarma",
  "app_bellmain_power_nap": "Siesta",

M image/assets/lang/Francais.json => image/assets/lang/Francais.json +1 -0
@@ 588,6 588,7 @@
  "app_bell_onboarding_info_light_click": "<text font='gt_pressura' weight='regular' size='38'>Cliquer doucement </text><text font='gt_pressura' weight='light' size='38'>pour continuer</text>",
  "app_bell_onboarding_info_deep_click_warning": "<text font='gt_pressura' weight='light' size='38'>Vous avez </text><text font='gt_pressura' weight='regular' size='38'>appuyé fort</text>",
  "app_bell_onboarding_info_deep_click_correction": "<text font='gt_pressura' weight='light' size='38'>Soyez plus doux, <br></br>essayez </text><text font='gt_pressura' weight='regular' size='38'>de cliquer plus </text><text font='gt_pressura' weight='light' size='38'>légèrement cette fois</text>",
  "app_bell_onboarding_welcome": "Bienvenu",
  "app_bellmain_home_screen_bottom_desc_dp": "Appuyer fort pour activer",
  "app_bellmain_alarm": "Alarme",
  "app_bellmain_background_sounds": "Bruits de fond",

M image/assets/lang/Polski.json => image/assets/lang/Polski.json +1 -0
@@ 625,6 625,7 @@
  "app_bell_onboarding_info_light_click": "<text font='gt_pressura' weight='regular' size='38'>Kliknij lekko, </text><text font='gt_pressura' weight='light' size='38'>aby kontynuować</text>",
  "app_bell_onboarding_info_deep_click_warning": "<text font='gt_pressura' weight='light' size='38'>Głęboko </text><text font='gt_pressura' weight='regular' size='38'>wciśnięty</text>",
  "app_bell_onboarding_info_deep_click_correction": "<text font='gt_pressura' weight='light' size='38'>Bądź bardziej delikatny,<br></br>spróbuj </text><text font='gt_pressura' weight='regular' size='38'>tym razem<br></br></text><text font='gt_pressura' weight='light' size='38'>lekko kliknąć</text>",
  "app_bell_onboarding_welcome": "Witamy",
  "app_bell_settings_advanced": "Zaawansowane",
  "app_bell_settings_time_units": "Czas i jednostki",
  "app_bell_settings_advanced_temp_scale": "Skala temperatury",

M products/BellHybrid/apps/application-bell-onboarding/ApplicationBellOnBoarding.cpp => products/BellHybrid/apps/application-bell-onboarding/ApplicationBellOnBoarding.cpp +8 -1
@@ 7,6 7,7 @@
#include <windows/OnBoardingLanguageWindow.hpp>
#include <windows/OnBoardingFinalizeWindow.hpp>
#include <windows/OnBoardingSettingsWindow.hpp>
#include <windows/OnBoardingWelcomeWindow.hpp>
#include <windows/OnBoardingInstructionPromptWindow.hpp>

#include <service-appmgr/Constants.hpp>


@@ 60,9 61,14 @@ namespace app
    {
        windowsFactory.attach(gui::name::window::main_window, [this](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::BellWelcomeWindow>(
                app, name, [app]() { app->switchWindow(gui::window::name::onBoardingLanguageWindow); });
                app, name, [app]() { app->switchWindow(gui::window::name::onBoardingWelcomeWindow); });
        });

        windowsFactory.attach(gui::window::name::onBoardingWelcomeWindow,
                              [this](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::OnBoardingWelcomeWindow>(app, name);
                              });

        windowsFactory.attach(
            gui::window::name::onBoardingLanguageWindow, [this](ApplicationCommon *app, const std::string &name) {
                auto presenter = std::make_unique<OnBoarding::OnBoardingLanguageWindowPresenter>(this);


@@ 158,6 164,7 @@ namespace app
        auto currentWindow = getCurrentWindow()->getName();
        return (currentWindow != gui::name::window::main_window &&
                currentWindow != gui::window::name::finalizeOnBoardingWindow &&
                currentWindow != gui::window::name::onBoardingWelcomeWindow &&
                (currentWindow != gui::window::name::informationOnBoardingWindow ||
                 informationState == OnBoarding::InformationStates::DeepClickWarningInfo));
    }

M products/BellHybrid/apps/application-bell-onboarding/CMakeLists.txt => products/BellHybrid/apps/application-bell-onboarding/CMakeLists.txt +2 -0
@@ 17,6 17,7 @@ target_sources(application-bell-onboarding
        windows/OnBoardingSettingsWindow.cpp
        windows/OnBoardingFinalizeWindow.cpp
        windows/OnBoardingInstructionPromptWindow.cpp
        windows/OnBoardingWelcomeWindow.cpp
        presenter/OnBoardingLanguageWindowPresenter.cpp
        presenter/OnBoardingFinalizeWindowPresenter.cpp



@@ 25,6 26,7 @@ target_sources(application-bell-onboarding
        windows/OnBoardingLanguageWindow.hpp
        windows/OnBoardingSettingsWindow.hpp
        windows/OnBoardingInstructionPromptWindow.hpp
        windows/OnBoardingWelcomeWindow.hpp

    PUBLIC
        include/application-bell-onboarding/ApplicationBellOnBoarding.hpp

A products/BellHybrid/apps/application-bell-onboarding/windows/OnBoardingWelcomeWindow.cpp => products/BellHybrid/apps/application-bell-onboarding/windows/OnBoardingWelcomeWindow.cpp +59 -0
@@ 0,0 1,59 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "OnBoardingWelcomeWindow.hpp"
#include "ApplicationBellOnBoarding.hpp"

#include <InputEvent.hpp>
#include <Icon.hpp>
#include <Application.hpp>

namespace gui
{
    OnBoardingWelcomeWindow::OnBoardingWelcomeWindow(app::ApplicationCommon *app, const std::string &name)
        : WindowWithTimer(app, name, displayDuration)
    {
        buildInterface();
    }

    void OnBoardingWelcomeWindow::buildInterface()
    {
        AppWindow::buildInterface();
        buildLayout();
        registerCallbacks();
    }

    void OnBoardingWelcomeWindow::buildLayout()
    {
        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        navBar->setVisible(false);
        icon = new Icon(this, 0, 0, style::window_width, style::window_height, {}, {});
    }

    void OnBoardingWelcomeWindow::registerCallbacks()
    {
        timerCallback = [this](Item &, sys::Timer &timer) {
            application->switchWindow(gui::window::name::onBoardingLanguageWindow);
            return true;
        };
    }

    bool OnBoardingWelcomeWindow::onInput(const InputEvent &inputEvent)
    {
        if (inputEvent.isShortRelease(KeyCode::KEY_ENTER)) {
            application->switchWindow(gui::window::name::onBoardingLanguageWindow);
            return true;
        }
        return false;
    }

    void OnBoardingWelcomeWindow::onBeforeShow(ShowMode mode, SwitchData *data)
    {
        WindowWithTimer::onBeforeShow(mode, data);

        icon->image->set("bell_big_logo", ImageTypeSpecifier::W_G);
        icon->text->setFont(style::window::font::verybiglight);
        icon->text->setText(utils::translate("app_bell_onboarding_welcome"));
    }
} // namespace gui

A products/BellHybrid/apps/application-bell-onboarding/windows/OnBoardingWelcomeWindow.hpp => products/BellHybrid/apps/application-bell-onboarding/windows/OnBoardingWelcomeWindow.hpp +27 -0
@@ 0,0 1,27 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include <apps-common/popups/WindowWithTimer.hpp>

namespace gui
{
    class Icon;

    class OnBoardingWelcomeWindow : public WindowWithTimer
    {
      public:
        OnBoardingWelcomeWindow(app::ApplicationCommon *app, const std::string &name);

      private:
        constexpr static auto displayDuration = std::chrono::seconds{5};
        bool onInput(const InputEvent &inputEvent) override;
        void buildInterface() override;
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        void buildLayout();
        void registerCallbacks();
        Icon *icon{};
    };

} // namespace gui