~aleteoryx/muditaos

022591a62611a9a92b947940069ddbdad856181f — Tigran Soghbatyan 4 years ago a8884a8
[BH-1213] Fix meditation end window timeout

Set meditation end window timeout to 5s
5s captures entire length of gong audio
M module-apps/apps-common/popups/WindowWithTimer.cpp => module-apps/apps-common/popups/WindowWithTimer.cpp +4 -4
@@ 25,13 25,13 @@ namespace gui
        };
    }

    void WindowWithTimer::resetTimer()
    void WindowWithTimer::resetTimer(const std::chrono::seconds newTimeout)
    {
        timeout = newTimeout;
        if (!popupTimer.isValid()) {
            popupTimer = app::GuiTimerFactory::createSingleShotTimer(application, this, popup::timerName, timeout);
            popupTimer = app::GuiTimerFactory::createSingleShotTimer(application, this, popup::timerName, newTimeout);
        }
        popupTimer.stop();
        popupTimer.start();
        popupTimer.restart(newTimeout);
    }

    void WindowWithTimer::detachTimerIfExists()

M module-apps/apps-common/popups/WindowWithTimer.hpp => module-apps/apps-common/popups/WindowWithTimer.hpp +2 -2
@@ 13,7 13,7 @@ namespace gui
    {
      private:
        sys::TimerHandle popupTimer;
        const std::chrono::milliseconds timeout;
        std::chrono::milliseconds timeout;

      public:
        explicit WindowWithTimer(app::ApplicationCommon *app,


@@ 27,6 27,6 @@ namespace gui

      protected:
        void detachTimerIfExists();
        void resetTimer();
        void resetTimer(const std::chrono::seconds newTimeout = defautTimeout);
    };
} // namespace gui

M products/BellHybrid/apps/application-bell-meditation-timer/presenter/MeditationProgressPresenter.cpp => products/BellHybrid/apps/application-bell-meditation-timer/presenter/MeditationProgressPresenter.cpp +3 -2
@@ 76,8 76,9 @@ namespace app::meditation
    void MeditationProgressPresenter::finish()
    {
        timer->stop();
        app->switchWindow(gui::window::bell_finished::defaultName,
                          gui::BellFinishedWindowData::Factory::create("big_namaste_W_G", "", "", true));
        app->switchWindow(
            gui::window::bell_finished::defaultName,
            gui::BellFinishedWindowData::Factory::create("big_namaste_W_G", "", "", true, endWindowTimeout));
    }

    void MeditationProgressPresenter::onProgressFinished()

M products/BellHybrid/apps/application-bell-meditation-timer/presenter/MeditationProgressPresenter.hpp => products/BellHybrid/apps/application-bell-meditation-timer/presenter/MeditationProgressPresenter.hpp +2 -0
@@ 64,6 64,8 @@ namespace app::meditation
        std::chrono::minutes duration;
        std::chrono::minutes interval;

        static constexpr auto endWindowTimeout = std::chrono::seconds{5};

        void onProgressFinished();
        void onIntervalReached();


M products/BellHybrid/apps/common/include/common/data/BellFinishedWindowSwitchData.hpp => products/BellHybrid/apps/common/include/common/data/BellFinishedWindowSwitchData.hpp +15 -8
@@ 6,6 6,8 @@
#include <SwitchData.hpp>
#include <utf8/UTF8.hpp>

#include <chrono>

namespace gui
{
    struct BellFinishedWindowData : public gui::SwitchData


@@ 13,13 15,15 @@ namespace gui
      public:
        struct Factory
        {
            static std::unique_ptr<BellFinishedWindowData> create(const UTF8 &icon,
                                                                  const std::string &windowToReturn,
                                                                  const UTF8 &text      = "",
                                                                  bool closeApplication = false)
            static std::unique_ptr<BellFinishedWindowData> create(
                const UTF8 &icon,
                const std::string &windowToReturn,
                const UTF8 &text                   = "",
                bool closeApplication              = false,
                const std::chrono::seconds timeout = std::chrono::seconds::zero())
            {
                return std::unique_ptr<BellFinishedWindowData>(
                    new BellFinishedWindowData(icon, windowToReturn, text, closeApplication));
                    new BellFinishedWindowData(icon, windowToReturn, text, closeApplication, timeout));
            }
        };



@@ 27,15 31,18 @@ namespace gui
        std::string windowToReturn;
        UTF8 text{};
        bool closeApplication;
        std::chrono::seconds timeout;

      private:
        BellFinishedWindowData() = default;

        BellFinishedWindowData(const UTF8 &icon,
                               const std::string &windowToReturn,
                               const UTF8 &text      = "",
                               bool closeApplication = false)
            : icon{icon}, windowToReturn{windowToReturn}, text{text}, closeApplication{closeApplication}
                               const UTF8 &text                   = "",
                               bool closeApplication              = false,
                               const std::chrono::seconds timeout = std::chrono::seconds::zero())
            : icon{icon}, windowToReturn{windowToReturn}, text{text}, closeApplication{closeApplication}, timeout{
                                                                                                              timeout}
        {}
    };
} // namespace gui

M products/BellHybrid/apps/common/src/windows/BellFinishedWindow.cpp => products/BellHybrid/apps/common/src/windows/BellFinishedWindow.cpp +3 -0
@@ 63,6 63,9 @@ namespace gui
            icon->resizeItems();
            windowToReturn   = metadata->windowToReturn;
            closeApplication = metadata->closeApplication;
            if (metadata->timeout != std::chrono::seconds::zero()) {
                resetTimer(metadata->timeout);
            }
        }
    }