// 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 class TechnicalWindowContract { public: class View { public: virtual ~View() noexcept = default; virtual void imeiReady() noexcept = 0; }; class Presenter : public app::BasePresenter { public: virtual ~Presenter() noexcept = default; virtual std::shared_ptr getTechnicalInformationProvider() const = 0; virtual void requestImei() = 0; }; }; class TechnicalWindowPresenter : public TechnicalWindowContract::Presenter { public: explicit TechnicalWindowPresenter(app::ApplicationCommon *application, std::shared_ptr technicalInformationProvider); std::shared_ptr getTechnicalInformationProvider() const override; void requestImei() override; private: app::ApplicationCommon *application{}; std::shared_ptr technicalInformationProvider; std::function onImeiReady = nullptr; };