~aleteoryx/muditaos

ref: fe708cdf31392bc009227c63ceb091ac450d6a78 muditaos/module-apps/application-settings/presenter/system/TechnicalWindowPresenter.hpp -rw-r--r-- 1.4 KiB
fe708cdf — Adam Wulkiewicz [MOS-670] Change clang-format AlwaysBreakTemplateDeclarations to Yes 3 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// 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 <application-settings/models/system/TechnicalInformationModel.hpp>

#include <BasePresenter.hpp>
#include <ListItemProvider.hpp>

class TechnicalWindowContract
{
  public:
    class View
    {
      public:
        virtual ~View() noexcept          = default;
        virtual void imeiReady() noexcept = 0;
    };
    class Presenter : public app::BasePresenter<TechnicalWindowContract::View>
    {
      public:
        virtual ~Presenter() noexcept = default;

        virtual std::shared_ptr<gui::ListItemProvider> getTechnicalInformationProvider() const = 0;
        virtual void requestImei()                                                             = 0;
    };
};

class TechnicalWindowPresenter : public TechnicalWindowContract::Presenter
{
  public:
    explicit TechnicalWindowPresenter(app::ApplicationCommon *application,
                                      std::shared_ptr<TechnicalInformationModel> technicalInformationProvider);

    std::shared_ptr<gui::ListItemProvider> getTechnicalInformationProvider() const override;
    void requestImei() override;

  private:
    app::ApplicationCommon *application{};
    std::shared_ptr<TechnicalInformationModel> technicalInformationProvider;
    std::function<void()> onImeiReady = nullptr;
};