~aleteoryx/muditaos

26e43bdfd743318b28087d152b02557b16b6aca2 — Lefucjusz 1 year, 2 months ago 791492f
[BH-2073] Fix invalid accusative form in Meditation

Fix of the issue that abandoning meditation
by clicking back will result in displaying
meditation session summary with invalid
accusative form in Polish.
M harmony_changelog.md => harmony_changelog.md +1 -0
@@ 4,6 4,7 @@

### Fixed
* Fixed message shown when entering alarm sound list after deleting selected alarm file
* Fixed invalid accusative form in meditation summary in Polish

### Added
* Added label with the name of the application on the countdown screens

M products/BellHybrid/apps/application-bell-meditation-timer/presenter/MeditationProgressPresenter.cpp => products/BellHybrid/apps/application-bell-meditation-timer/presenter/MeditationProgressPresenter.cpp +20 -29
@@ 4,11 4,11 @@
#include "MeditationTimer.hpp"
#include "MeditationCommon.hpp"
#include "MeditationProgressPresenter.hpp"
#include "MeditationTimerWindow.hpp"
#include "models/ChimeInterval.hpp"
#include "models/Statistics.hpp"

#include <common/models/TimeModel.hpp>
#include <common/windows/BellFinishedWindow.hpp>
#include <audio/AudioMessage.hpp>
#include <service-db/Settings.hpp>
#include <LanguageUtils.hpp>


@@ 86,38 86,12 @@ namespace app::meditation

    void MeditationProgressPresenter::abandon()
    {
        timer->stop();
        const auto elapsed     = std::chrono::duration_cast<std::chrono::minutes>(timer->getElapsed());
        const auto summaryText = utils::translate("app_meditation_summary") + std::to_string(elapsed.count()) + " " +
                                 utils::language::getCorrectMinutesNumeralForm(elapsed.count());

        addMeditationEntry(elapsed);

        app->switchWindow(
            gui::window::bell_finished::defaultName,
            gui::BellFinishedWindowData::Factory::create("big_namaste_W_G",
                                                         "MeditationTimerWindow",
                                                         summaryText,
                                                         gui::BellFinishedWindowData::ExitBehaviour::SwitchWindow,
                                                         endWindowTimeout));
        onMeditationEnd(gui::BellFinishedWindowData::ExitBehaviour::SwitchWindow);
    }

    void MeditationProgressPresenter::finish()
    {
        timer->stop();
        const auto elapsed     = std::chrono::duration_cast<std::chrono::minutes>(timer->getElapsed());
        const auto summaryText = utils::translate("app_meditation_summary") + std::to_string(elapsed.count()) + " " +
                                 utils::language::getCorrectMinutesAccusativeForm(elapsed.count());

        addMeditationEntry(elapsed);

        app->switchWindow(
            gui::window::bell_finished::defaultName,
            gui::BellFinishedWindowData::Factory::create("big_namaste_W_G",
                                                         "",
                                                         summaryText,
                                                         gui::BellFinishedWindowData::ExitBehaviour::ReturnToHomescreen,
                                                         endWindowTimeout));
        onMeditationEnd(gui::BellFinishedWindowData::ExitBehaviour::ReturnToHomescreen);
    }

    void MeditationProgressPresenter::onBeforeShow()


@@ 158,4 132,21 @@ namespace app::meditation
            statisticsModel.addEntry(elapsed);
        }
    }

    void MeditationProgressPresenter::onMeditationEnd(gui::BellFinishedWindowData::ExitBehaviour exitBehaviour)
    {
        using ExitBehaviour = gui::BellFinishedWindowData::ExitBehaviour;

        timer->stop();
        const auto elapsed      = std::chrono::duration_cast<std::chrono::minutes>(timer->getElapsed());
        const auto &summaryText = utils::translate("app_meditation_summary") + std::to_string(elapsed.count()) + " " +
                                  utils::language::getCorrectMinutesAccusativeForm(elapsed.count());

        addMeditationEntry(elapsed);

        const auto &windowToReturn = (exitBehaviour == ExitBehaviour::SwitchWindow) ? MeditationTimerWindow::name : "";
        app->switchWindow(gui::window::bell_finished::defaultName,
                          gui::BellFinishedWindowData::Factory::create(
                              "big_namaste_W_G", windowToReturn, summaryText, exitBehaviour, endWindowTimeout));
    }
} // namespace app::meditation

M products/BellHybrid/apps/application-bell-meditation-timer/presenter/MeditationProgressPresenter.hpp => products/BellHybrid/apps/application-bell-meditation-timer/presenter/MeditationProgressPresenter.hpp +2 -0
@@ 6,6 6,7 @@
#include <apps-common/ApplicationCommon.hpp>
#include <apps-common/BasePresenter.hpp>
#include <apps-common/widgets/TimerWithCallbacks.hpp>
#include <common/windows/BellFinishedWindow.hpp>
#include <time/time_locale.hpp>

#include <memory>


@@ 103,5 104,6 @@ namespace app::meditation
        void onIntervalReached();

        void addMeditationEntry(std::chrono::minutes elapsed);
        void onMeditationEnd(gui::BellFinishedWindowData::ExitBehaviour exitBehaviour);
    };
} // namespace app::meditation