// 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 #include #include namespace gui { class MeditationTimer; class Text; class MeditationTimerWindow : public AppWindow { MeditationTimer *timer = nullptr; Text *meditationInfo = nullptr; bool finished = false; std::chrono::seconds meditationTime{0}; std::chrono::seconds meditationIntervalPeriod{0}; sys::TimerHandle endScreenTimeout; void setWidgetVisible(bool sBar, bool navBar, bool counter); void setVisibleRunning(); void setVisiblePaused(); void setVisiblePreparation(); void setVisibleMeditationEnd(); void invalidate() noexcept; public: explicit MeditationTimerWindow(app::ApplicationCommon *app); auto onInput(const InputEvent &inputEvent) -> bool override; void onBeforeShow(ShowMode mode, SwitchData *data) override; void rebuild() override; void buildInterface() override; void destroyInterface() override; }; } // namespace gui