M module-apps/apps-common/locks/data/SimLockMessages.hpp => module-apps/apps-common/locks/data/SimLockMessages.hpp +3 -0
@@ 47,4 47,7 @@ namespace locks
class DisableSimPin : public sys::DataMessage
{};
+ class ResetSimLockState : public sys::DataMessage
+ {};
+
} // namespace locks
M module-apps/apps-common/locks/handlers/SimLockHandler.cpp => module-apps/apps-common/locks/handlers/SimLockHandler.cpp +7 -0
@@ 229,6 229,13 @@ namespace locks
return sys::msgHandled();
}
+ sys::MessagePointer SimLockHandler::handleResetSimLockStateRequest()
+ {
+ lock.lockState = Lock::LockState::Unlocked;
+
+ return sys::msgHandled();
+ }
+
sys::MessagePointer SimLockHandler::handleSimBlockedRequest()
{
setSimInputTypeAction(SimInputTypeAction::Blocked);
M module-apps/apps-common/locks/handlers/SimLockHandler.hpp => module-apps/apps-common/locks/handlers/SimLockHandler.hpp +1 -0
@@ 61,6 61,7 @@ namespace locks
sys::MessagePointer handleSimPinChangeFailedRequest();
sys::MessagePointer handleSimEnableRequest();
sys::MessagePointer handleSimDisableRequest();
+ sys::MessagePointer handleResetSimLockStateRequest();
sys::MessagePointer handleSimBlockedRequest();
sys::MessagePointer handleCMEErrorRequest(unsigned int errorCode);
sys::MessagePointer handleSimUnlockedMessage();
M module-apps/apps-common/locks/handlers/SimLockSubject.cpp => module-apps/apps-common/locks/handlers/SimLockSubject.cpp +5 -0
@@ 21,6 21,11 @@ namespace locks
owner->bus.sendUnicast(std::make_shared<locks::SetSim>(simSlot), service::name::appmgr);
}
+ void SimLockSubject::resetSimLockState()
+ {
+ owner->bus.sendUnicast(std::make_shared<locks::ResetSimLockState>(), service::name::appmgr);
+ }
+
void SimLockSubject::changeSimPin()
{
owner->bus.sendUnicast(std::make_shared<locks::ChangeSimPin>(), service::name::appmgr);
M module-apps/apps-common/locks/handlers/SimLockSubject.hpp => module-apps/apps-common/locks/handlers/SimLockSubject.hpp +1 -0
@@ 19,6 19,7 @@ namespace locks
explicit SimLockSubject(sys::Service *owner);
void setSim(cellular::api::SimSlot simSlot);
+ void resetSimLockState();
void changeSimPin();
void enableSimPin();
void disableSimPin();
M => +1 -0
@@ 87,6 87,7 @@ namespace gui
else if (lock->isState(locks::Lock::LockState::InputInvalid)) {
lock->consumeState();
}
application->getSimLockSubject().resetSimLockState();
application->returnToPreviousWindow();
return true;
}
M products/PurePhone/services/appmgr/ApplicationManager.cpp => products/PurePhone/services/appmgr/ApplicationManager.cpp +3 -0
@@ 239,6 239,9 @@ namespace app::manager
auto msg = static_cast<locks::UnLockSimInput *>(request);
return simLockHandler.verifySimLockInput(msg->getInputData());
});
+ connect(typeid(locks::ResetSimLockState), [&](sys::Message *request) -> sys::MessagePointer {
+ return simLockHandler.handleResetSimLockStateRequest();
+ });
connect(typeid(cellular::msg::notification::SimNeedPuk), [&](sys::Message *request) -> sys::MessagePointer {
auto data = static_cast<cellular::msg::notification::SimNeedPuk *>(request);
if (phoneLockHandler.isPhoneLocked()) {