Files
MuditaOS/module-apps/application-settings/models/system/TechnicalInformationModel.cpp
Marcin Smoczyński bd90e57516 [BH-907] Split utils module into components
Split module-utils into smaller components for better dependency
management. Fix many dependencies throughout the project.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-09-23 15:14:40 +02:00

87 lines
3.4 KiB
C++

// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "TechnicalInformationModel.hpp"
#include <application-settings/widgets/system/TechnicalInformationItem.hpp>
#include <application-settings/widgets/SettingsStyle.hpp>
#include <ListView.hpp>
#include <i18n/i18n.hpp>
#include <product/version.hpp>
TechnicalInformationModel::TechnicalInformationModel(std::unique_ptr<AbstractFactoryData> &&factoryData,
std::unique_ptr<AbstractTechnicalInformationRepository> repository)
: factoryData{std::move(factoryData)}, technicalInformationRepository(std::move(repository))
{
createData();
}
auto TechnicalInformationModel::requestRecordsCount() -> unsigned int
{
return internalData.size();
}
auto TechnicalInformationModel::getMinimalItemSpaceRequired() const -> unsigned int
{
return style::technical_info::height + 2 * style::margins::big;
}
void TechnicalInformationModel::requestRecords(const uint32_t offset, const uint32_t limit)
{
setupModel(offset, limit);
list->onProviderDataUpdate();
}
auto TechnicalInformationModel::getItem(gui::Order order) -> gui::ListItem *
{
return getRecord(order);
}
void TechnicalInformationModel::createData()
{
internalData.push_back(
new gui::TechnicalInformationItem(utils::translate("app_settings_tech_info_model"), factoryData->getModel()));
internalData.push_back(new gui::TechnicalInformationItem(utils::translate("app_settings_tech_info_serial_number"),
factoryData->getSerial()));
internalData.push_back(
new gui::TechnicalInformationItem(utils::translate("app_settings_tech_info_os_version"), std::string(VERSION)));
internalData.push_back(new gui::TechnicalInformationItem(utils::translate("app_settings_tech_info_imei"),
technicalInformationRepository->getImei()));
#if DEVELOPER_SETTINGS_OPTIONS == 1
internalData.push_back(new gui::TechnicalInformationItem(utils::translate("app_settings_tech_info_battery"),
factoryData->getBatteryRev()));
internalData.push_back(new gui::TechnicalInformationItem(utils::translate("app_settings_tech_info_pcb_mb"),
factoryData->getPcb("mb")));
internalData.push_back(new gui::TechnicalInformationItem(utils::translate("app_settings_tech_info_pcb_lm"),
factoryData->getPcb("lm")));
internalData.push_back(new gui::TechnicalInformationItem(utils::translate("app_settings_tech_info_pcb_am"),
factoryData->getPcb("am")));
internalData.push_back(new gui::TechnicalInformationItem(utils::translate("app_settings_tech_info_pcb_um"),
factoryData->getPcb("um")));
#endif // DEVELOPER_SETTINGS_OPTIONS
for (auto item : internalData) {
item->deleteByList = false;
}
}
void TechnicalInformationModel::clearData()
{
list->reset();
eraseInternalData();
}
void TechnicalInformationModel::requestImei(std::function<void()> onImeiReadCallback)
{
technicalInformationRepository->readImei(std::move(onImeiReadCallback));
}