// 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 #include #include #include #include class PhonebookItemData : public gui::SwitchData { public: enum class RequestType { Internal, External }; PhonebookItemData() = default; explicit PhonebookItemData(std::shared_ptr contact, RequestType requestType = RequestType::Internal) : requestType(requestType), contact(std::move(contact)){}; std::shared_ptr getContact() const { return contact; } RequestType getRequestType() const noexcept { return requestType; } private: RequestType requestType = RequestType::Internal; std::shared_ptr contact = nullptr; }; class PhonebookSearchResultsData : public gui::SwitchData { public: PhonebookSearchResultsData() = delete; PhonebookSearchResultsData(std::unique_ptr model) : model(std::move(model)){}; std::unique_ptr consumeSearchResultsModel() { assert(!consumed); consumed = true; return std::move(model); } protected: std::unique_ptr model; bool consumed = false; }; class PhonebookSearchRequest : public gui::SwitchData { public: std::string request = ""; std::shared_ptr> results = nullptr; unsigned int selectedNumber = 0; PhonebookSearchRequest(std::string request, std::shared_ptr> results) : request(std::move(request)), results(std::move(results)) {} PhonebookSearchRequest() = default; std::shared_ptr result = nullptr; }; class PhonebookMultipleNumbersRequest : public gui::SwitchData { public: std::string request = ""; std::shared_ptr record = nullptr; PhonebookMultipleNumbersRequest(std::string request, std::shared_ptr result) : request(std::move(request)), record(std::move(result)) {} }; class PhonebookInputOptionData : public gui::SwitchData { private: gui::Text *inputText; public: explicit PhonebookInputOptionData(gui::Text *inputText) : inputText(inputText) {} gui::Text *getInputText() { return inputText; } };