/* * @file PinLockWindow.hpp * @author Robert Borzecki (robert.borzecki@mudita.com) * @date 19 cze 2019 * @brief * @copyright Copyright (C) 2019 mudita.com * @details */ #ifndef MODULE_APPS_APPLICATION_DESKTOP_WINDOWS_PINLOCKWINDOW_HPP_ #define MODULE_APPS_APPLICATION_DESKTOP_WINDOWS_PINLOCKWINDOW_HPP_ #include "AppWindow.hpp" #include "gui/widgets/Label.hpp" #include "gui/widgets/Image.hpp" #include "gui/widgets/BottomBar.hpp" #include "gui/widgets/TopBar.hpp" namespace gui { class PinLockWindow: public AppWindow { const uint32_t maxPasswordAttempts = 4; enum class State { EnteringPin, WrongPinInfo, PhoneBlocked }; gui::Label* titleLabel = nullptr; std::vector infoLabels; std::vector pinLabels; gui::Image* lockImage = nullptr; gui::Image* infoImage = nullptr; uint32_t remainingAttempts = maxPasswordAttempts; //code of the entered character on specified position uint32_t charValue[4] = {0}; //flag defines number of entered characters uint32_t charCount = 0; //state of the window State state = State::EnteringPin; std::string lockTimeoutApplilcation = ""; //method hides or show widgets and sets bars according to provided state void setVisibleState( const State& state ); public: PinLockWindow( app::Application* app ); virtual ~PinLockWindow(); void onBeforeShow( ShowMode mode, SwitchData* data ) override; bool onInput( const InputEvent& inputEvent ) override; void rebuild() override; void buildInterface() override; void destroyInterface() override; }; } /* namespace gui */ #endif /* MODULE_APPS_APPLICATION_DESKTOP_WINDOWS_PINLOCKWINDOW_HPP_ */