// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include "AlarmOptionsItem.hpp" #include #include #include namespace gui { class AlarmRRuleOptionsItem : public AlarmOptionsItem, public app::alarmClock::AlarmRRuleItem { private: app::ApplicationCommon *app = nullptr; std::function navBarTemporaryMode = nullptr; std::function navBarRestoreFromTemporaryMode = nullptr; using RRule = app::alarmClock::AlarmRRulePresenter::RRuleOptions; std::vector> rRuleOptions = { {RRule::Never, utils::translate("app_alarm_clock_repeat_never")}, {RRule::Everyday, utils::translate("app_alarm_clock_repeat_everyday")}, {RRule::Weekdays, utils::translate("app_alarm_clock_repeat_week_days")}, {RRule::Custom, utils::translate("app_alarm_clock_repeat_custom")}}; [[nodiscard]] RRule getRRuleOption(const std::string &selectedOption); void checkCustomOption(const std::string &selectedOption); void printOptions(); public: explicit AlarmRRuleOptionsItem(app::ApplicationCommon *app, const std::string &description, std::shared_ptr presenter, std::function navBarTemporaryMode = nullptr, std::function navBarRestoreFromTemporaryMode = nullptr); }; } /* namespace gui */