mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-07-18 12:04:03 -04:00
Call requests on lock screen have to be handled separately to allow only emergency and ICE numbers.
57 lines
1.3 KiB
C++
57 lines
1.3 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 <string>
|
|
#include <memory>
|
|
|
|
#include <at/Result.hpp>
|
|
#include <at/Commands.hpp>
|
|
|
|
#include "service-cellular/requests/Request.hpp"
|
|
|
|
namespace cellular
|
|
{
|
|
void Request::setHandled(bool handled)
|
|
{
|
|
isRequestHandled = handled;
|
|
}
|
|
|
|
bool Request::isHandled() const noexcept
|
|
{
|
|
return isRequestHandled;
|
|
}
|
|
|
|
bool Request::checkModemResponse(const at::Result &result)
|
|
{
|
|
return result.code == at::Result::Code::OK;
|
|
}
|
|
|
|
bool Request::isValid() const noexcept
|
|
{
|
|
return true;
|
|
}
|
|
|
|
std::string Request::buildCommand(at::AT atCommand,
|
|
const std::vector<commandBuilderFunc> &builderFunctions,
|
|
bool trim) const
|
|
{
|
|
if (!isValid()) {
|
|
return std::string();
|
|
}
|
|
|
|
std::string cmd(at::factory(atCommand));
|
|
|
|
auto formatFirst = true;
|
|
for (auto &cmdPart : builderFunctions) {
|
|
auto partStr = cmdPart();
|
|
if (partStr.empty() && trim) {
|
|
break;
|
|
}
|
|
cmd.append(formatFirst ? partStr : "," + partStr);
|
|
formatFirst = false;
|
|
}
|
|
|
|
return cmd;
|
|
}
|
|
}; // namespace cellular
|