// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md #include "SimLockSubject.hpp" #include #include #include namespace locks { SimLockSubject::SimLockSubject(sys::Service *owner) : owner{owner} { if (owner == nullptr) { throw std::invalid_argument{"Subject's owner is invalid"}; } } void SimLockSubject::setSim(cellular::api::SimSlot simSlot) { owner->bus.sendUnicast(std::make_shared(simSlot), service::name::appmgr); } void SimLockSubject::resetSimLockState() { owner->bus.sendUnicast(std::make_shared(), service::name::appmgr); } void SimLockSubject::changeSimPin() { owner->bus.sendUnicast(std::make_shared(), service::name::appmgr); } void SimLockSubject::enableSimPin() { owner->bus.sendUnicast(std::make_shared(), service::name::appmgr); } void SimLockSubject::disableSimPin() { owner->bus.sendUnicast(std::make_shared(), service::name::appmgr); } void SimLockSubject::verifyInput(LockInput inputData) { owner->bus.sendUnicast(std::make_shared(inputData), service::name::appmgr); } void SimLockSubject::unblockSim() { owner->bus.sendUnicast(std::make_shared(), service::name::appmgr); } void SimLockSubject::simSwitched() { owner->bus.sendMulticast(std::make_shared(), sys::BusChannel::PhoneLockChanges); } } // namespace locks