~aleteoryx/muditaos

ref: 2e8815bb383fd70f080ae004867de066987a0da0 muditaos/module-apps/application-settings/presenter/system/TechnicalWindowPresenter.hpp -rw-r--r-- 1.4 KiB
2e8815bb — Lefucjusz [MOS-657] Fix contacts list order 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-2021, 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;
};