mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-04-21 07:28:21 -04:00
According to PurePhone design emergency call window is needed after "SOS" callback at the screen lock. This PR introduce implementation of emergency call window and also refactor in the enter number window. Both windows derives from new number window.
63 lines
2.0 KiB
C++
63 lines
2.0 KiB
C++
// 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 "application-call/ApplicationCall.hpp"
|
|
#include "application-call/widgets/StateIcons.hpp"
|
|
|
|
#include <AppWindow.hpp>
|
|
#include <ContactRecord.hpp>
|
|
#include <country.hpp>
|
|
#include <gui/input/Translator.hpp>
|
|
|
|
#include <phonenumbers/phonenumberutil.h>
|
|
#include <phonenumbers/asyoutypeformatter.h>
|
|
|
|
#include <memory>
|
|
#include <string>
|
|
|
|
namespace gui
|
|
{
|
|
class Label;
|
|
class NumberWindow : public AppWindow
|
|
{
|
|
public:
|
|
using CountryCode = utils::country::Id;
|
|
|
|
NumberWindow(app::Application *app,
|
|
app::EnterNumberWindowInterface *interface,
|
|
std::string windowName = app::window::name_number);
|
|
|
|
auto onInput(const InputEvent &inputEvent) -> bool override;
|
|
[[nodiscard]] auto getEnteredNumber() const noexcept -> const std::string &;
|
|
|
|
void buildInterface() override;
|
|
void destroyInterface() override;
|
|
void initFormatterInput(const std::string &number);
|
|
|
|
protected:
|
|
app::EnterNumberWindowInterface *interface = nullptr;
|
|
gui::Label *numberLabel = nullptr;
|
|
gui::Label *numberDescriptionLabel = nullptr;
|
|
std::string formattedNumber;
|
|
std::string enteredNumber;
|
|
|
|
void setNumberLabel(const std::string &num);
|
|
|
|
void switchFormatter(const std::string &countryCode);
|
|
void addDigit(const std::string::value_type &digit);
|
|
void clearInput();
|
|
|
|
private:
|
|
using PhoneNumberUtil = i18n::phonenumbers::PhoneNumberUtil;
|
|
using Formatter = i18n::phonenumbers::AsYouTypeFormatter;
|
|
|
|
CountryCode defaultCountry = utils::country::defaultCountry;
|
|
CountryCode currentCountry;
|
|
gui::KeyInputMappedTranslation translator;
|
|
PhoneNumberUtil &numberUtil;
|
|
std::unique_ptr<Formatter> formatter;
|
|
};
|
|
} /* namespace gui */
|