~aleteoryx/muditaos

ref: cc0ec423bfc250c7828d2d8c180709a48eb3caa3 muditaos/module-apps/application-settings/models/system/TechnicalInformationRepository.cpp -rw-r--r-- 1.3 KiB
cc0ec423 — Lefucjusz [MOS-1035] Fixes in new alarm window UI flow 2 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
// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "TechnicalInformationRepository.hpp"
#include <service-cellular/ServiceCellular.hpp>
#include <application-settings/ApplicationSettings.hpp>

TechnicalInformationRepository::TechnicalInformationRepository(app::ApplicationCommon *application)
    : app::AsyncCallbackReceiver{application}, application{application}
{}

void TechnicalInformationRepository::readImei(AbstractTechnicalInformationRepository::OnReadCallback readDoneCallback)
{

    std::function<void(const std::string &imei)> callback = [&](const std::string &imei) { imeiStr = imei; };

    auto msg  = std::make_unique<cellular::GetImeiRequest>();
    auto task = app::AsyncRequest::createFromMessage(std::move(msg), ::service::name::cellular);
    auto cb   = [callback, readDoneCallback](auto response) {
        auto result = dynamic_cast<cellular::GetImeiResponse *>(response);
        if (result != nullptr && result->retCode == sys::ReturnCodes::Success) {
            callback(*result->getImei());
        }
        readDoneCallback();
        return true;
    };
    task->execute(this->application, this, cb);
}

std::string TechnicalInformationRepository::getImei()
{
    return imeiStr;
}