// 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 #include #include class PhonebookItemData : public gui::SwitchData { std::string text; std::shared_ptr contact = nullptr; public: PhonebookItemData() = default; explicit PhonebookItemData(std::shared_ptr contact, const std::string &text = "") : text(text), contact(std::move(contact)){}; std::shared_ptr getContact() const { return contact; } const std::string &getText() const noexcept { return text; } }; class PhonebookSearchQuery : public gui::SwitchData { public: explicit PhonebookSearchQuery(std::string searchQuery) : searchQuery(std::move(searchQuery)){}; const std::string &getQuery() const noexcept { return searchQuery; } protected: std::string searchQuery; }; 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; PhonebookSearchRequest(std::string request, std::shared_ptr> results) : request(std::move(request)), results(std::move(results)) {} PhonebookSearchRequest() = default; std::shared_ptr result = nullptr; };