M module-apps/Application.hpp => module-apps/Application.hpp +1 -1
@@ 394,7 394,7 @@ namespace app
std::unique_ptr<settings::Settings> settings;
sys::phone_modes::PhoneMode phoneMode;
- lock::PhoneLockSubject phoneLockSubject;
+ locks::PhoneLockSubject phoneLockSubject;
public:
void handlePhoneLock();
M module-apps/application-desktop/ApplicationDesktop.cpp => module-apps/application-desktop/ApplicationDesktop.cpp +0 -5
@@ 86,11 86,6 @@ namespace app
return actionHandled();
});
- addActionReceiver(app::manager::actions::RequestScreenPasscode, [this](auto &&data) {
- lockHandler.handleScreenPasscodeRequest(std::move(data));
- return actionHandled();
- });
-
addActionReceiver(app::manager::actions::RequestPuk, [this](auto &&data) {
lockHandler.handlePasscodeRequest(locks::Lock::LockType::SimPuk, std::move(data));
return actionHandled();
M module-apps/application-desktop/ApplicationDesktop.hpp => module-apps/application-desktop/ApplicationDesktop.hpp +0 -1
@@ 125,7 125,6 @@ namespace app
manager::actions::RequestPinChange,
manager::actions::RequestPinDisable,
manager::actions::RequestPinEnable,
- manager::actions::RequestScreenPasscode,
manager::actions::UnlockSim,
manager::actions::BlockSim,
manager::actions::ShowMMIResponse,
M module-apps/locks/data/LockMessages.hpp => module-apps/locks/data/LockMessages.hpp +19 -6
@@ 5,30 5,43 @@
#include <Service/Message.hpp>
-namespace lock
+namespace locks
{
class UnlockPhone : public sys::DataMessage
{
public:
- UnlockPhone() : DataMessage{MessageType::MessageTypeUninitialized}
+ UnlockPhone() : DataMessage{}
+ {}
+ };
+
+ class CancelUnlockPhone : public sys::DataMessage
+ {
+ public:
+ CancelUnlockPhone() : DataMessage{}
+ {}
+ };
+
+ class UnlockedPhone : public sys::DataMessage
+ {
+ public:
+ UnlockedPhone() : DataMessage{}
{}
};
class LockPhone : public sys::DataMessage
{
public:
- LockPhone() : DataMessage{MessageType::MessageTypeUninitialized}
+ LockPhone() : DataMessage{}
{}
};
- class LockPhoneInput : public sys::DataMessage
+ class UnLockPhoneInput : public sys::DataMessage
{
private:
std::vector<unsigned int> inputData;
public:
- explicit LockPhoneInput(std::vector<unsigned int> inputData)
- : DataMessage{MessageType::MessageTypeUninitialized}, inputData(std::move(inputData))
+ explicit UnLockPhoneInput(std::vector<unsigned int> inputData) : DataMessage{}, inputData(std::move(inputData))
{}
[[nodiscard]] auto getInputData() const noexcept
M module-apps/locks/handlers/PhoneLockHandler.cpp => module-apps/locks/handlers/PhoneLockHandler.cpp +13 -2
@@ 40,7 40,7 @@ namespace locks
std::make_unique<gui::PopupRequestParams>(gui::popup::ID::PhoneLock));
}
- void PhoneLockHandler::PhoneUnlockAction()
+ void PhoneLockHandler::PhoneUnlockPopupsCloseAction()
{
app::manager::Controller::sendAction(owner,
app::manager::actions::AbortPopup,
@@ 50,6 50,12 @@ namespace locks
std::make_unique<gui::PopupRequestParams>(gui::popup::ID::PhoneLock));
}
+ void PhoneLockHandler::PhoneUnlockAction()
+ {
+ PhoneUnlockPopupsCloseAction();
+ owner->bus.sendMulticast(std::make_shared<locks::UnlockedPhone>(), sys::BusChannel::PhoneLockChanges);
+ }
+
void PhoneLockHandler::PhoneInputRequiredAction()
{
app::manager::Controller::sendAction(
@@ 112,9 118,14 @@ namespace locks
return sys::msgHandled();
}
+ sys::MessagePointer PhoneLockHandler::handleUnlockCancelRequest()
+ {
+ PhoneUnlockPopupsCloseAction();
+ return sys::msgHandled();
+ }
+
bool PhoneLockHandler::isPhoneLocked() const noexcept
{
return !lock.isState(Lock::LockState::Unlocked);
}
-
} // namespace locks
M module-apps/locks/handlers/PhoneLockHandler.hpp => module-apps/locks/handlers/PhoneLockHandler.hpp +2 -0
@@ 21,12 21,14 @@ namespace locks
void PhoneLockAction();
void PhoneUnlockAction();
void PhoneInputRequiredAction();
+ void PhoneUnlockPopupsCloseAction();
public:
explicit PhoneLockHandler(sys::Service *owner);
sys::MessagePointer handleLockRequest();
sys::MessagePointer handleUnlockRequest();
+ sys::MessagePointer handleUnlockCancelRequest();
sys::MessagePointer verifyPhoneLockInput(const std::vector<unsigned int> &inputData);
void enablePhoneLock(bool _phoneLockEnabled);
M module-apps/locks/handlers/PhoneLockSubject.cpp => module-apps/locks/handlers/PhoneLockSubject.cpp +2 -2
@@ 6,7 6,7 @@
#include <service-appmgr/service-appmgr/model/ApplicationManager.hpp>
#include <locks/data/LockMessages.hpp>
-namespace lock
+namespace locks
{
PhoneLockSubject::PhoneLockSubject(sys::Service *owner) : owner{owner}
{
@@ 27,7 27,7 @@ namespace lock
void PhoneLockSubject::verifyInput(const std::vector<unsigned int> &inputData)
{
- owner->bus.sendUnicast(std::make_shared<LockPhoneInput>(inputData),
+ owner->bus.sendUnicast(std::make_shared<UnLockPhoneInput>(inputData),
app::manager::ApplicationManager::ServiceName);
}
} // namespace lock
M module-apps/locks/handlers/PhoneLockSubject.hpp => module-apps/locks/handlers/PhoneLockSubject.hpp +1 -1
@@ 5,7 5,7 @@
#include <module-sys/Service/Service.hpp>
-namespace lock
+namespace locks
{
class PhoneLockSubject
{
M module-apps/locks/handlers/PinLockHandler.cpp => module-apps/locks/handlers/PinLockHandler.cpp +0 -23
@@ 78,29 78,6 @@ namespace gui
}
}
- void PinLockHandler::handleScreenPasscodeRequest(app::manager::actions::ActionParamsPtr &&data) const
- {
- auto params = static_cast<app::manager::actions::ScreenPasscodeParams *>(data.get());
- auto lock =
- std::make_unique<gui::Lock>(Store::GSM::SIM::NONE, Lock::LockState::InputRequired, Lock::LockType::Screen);
-
- if (params->isCancel()) {
- if (app->getCurrentWindow()->getName() == app::window::name::desktop_pin_lock) {
- app->returnToPreviousWindow();
- }
- return;
- }
-
- lock->onActivatedCallback = [this](Lock::LockType type, const std::vector<unsigned int> &data) {
- app->bus.sendUnicast(std::make_shared<sdesktop::passcode::ScreenPasscodeUnlocked>(),
- service::name::service_desktop);
- app->switchWindow(app::window::name::desktop_main_window);
- };
-
- app->switchWindow(
- app::window::name::desktop_pin_lock, gui::ShowMode::GUI_SHOW_INIT, std::make_unique<gui::LockData>(*lock));
- }
-
void PinLockHandler::handlePinChangeRequest(app::manager::actions::ActionParamsPtr &&data)
{
LOG_DEBUG("Handling RequestPinChange action");
M module-apps/locks/handlers/PinLockHandler.hpp => module-apps/locks/handlers/PinLockHandler.hpp +0 -1
@@ 58,7 58,6 @@ namespace gui
void handleSimBlocked(app::manager::actions::ActionParamsPtr &&data);
void handleUnlockSim(app::manager::actions::ActionParamsPtr &&data);
void handleCMEError(app::manager::actions::ActionParamsPtr &&data) const;
- void handleScreenPasscodeRequest(app::manager::actions::ActionParamsPtr &&data) const;
void handlePinChangeRequestFailed();
[[nodiscard]] auto isScreenLocked() const noexcept -> bool
M module-services/service-appmgr/CMakeLists.txt => module-services/service-appmgr/CMakeLists.txt +0 -1
@@ 4,7 4,6 @@ message( "${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}" )
set(SOURCES
ApplicationManifest.cpp
Controller.cpp
- data/UsbActionsParams.cpp
data/SimActionsParams.cpp
data/MmiActionsParams.cpp
data/NotificationsChangedActionsParams.cpp
D module-services/service-appmgr/data/UsbActionsParams.cpp => module-services/service-appmgr/data/UsbActionsParams.cpp +0 -23
@@ 1,23 0,0 @@
-// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
-// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
-
-#include <service-appmgr/data/UsbActionsParams.hpp>
-
-using namespace app::manager::actions;
-
-ScreenPasscodeParams::ScreenPasscodeParams(bool cancel, unsigned int _attempts, std::string _passcodeName)
- : cancel(cancel), attempts{_attempts}, passcodeName{std::move(_passcodeName)}
-{}
-
-unsigned int ScreenPasscodeParams::getAttempts() const noexcept
-{
- return attempts;
-}
-const std::string &ScreenPasscodeParams::getPasscodeName() const noexcept
-{
- return passcodeName;
-}
-bool ScreenPasscodeParams::isCancel() const noexcept
-{
- return cancel;
-}
M module-services/service-appmgr/model/ApplicationManager.cpp => module-services/service-appmgr/model/ApplicationManager.cpp +7 -5
@@ 419,12 419,15 @@ namespace app::manager
handleDBResponse(response);
return sys::msgHandled();
});
- connect(typeid(lock::LockPhone),
+ connect(typeid(locks::LockPhone),
[&](sys::Message *request) -> sys::MessagePointer { return phoneLockHandler.handleLockRequest(); });
- connect(typeid(lock::UnlockPhone),
+ connect(typeid(locks::UnlockPhone),
[&](sys::Message *request) -> sys::MessagePointer { return phoneLockHandler.handleUnlockRequest(); });
- connect(typeid(lock::LockPhoneInput), [&](sys::Message *request) -> sys::MessagePointer {
- auto msg = static_cast<lock::LockPhoneInput *>(request);
+ connect(typeid(locks::CancelUnlockPhone), [&](sys::Message *request) -> sys::MessagePointer {
+ return phoneLockHandler.handleUnlockCancelRequest();
+ });
+ connect(typeid(locks::UnLockPhoneInput), [&](sys::Message *request) -> sys::MessagePointer {
+ auto msg = static_cast<locks::UnLockPhoneInput *>(request);
return phoneLockHandler.verifyPhoneLockInput(msg->getInputData());
});
@@ 443,7 446,6 @@ namespace app::manager
connect(typeid(CellularNotAnEmergencyNotification), convertibleToActionHandler);
connect(typeid(sys::CriticalBatteryLevelNotification), convertibleToActionHandler);
connect(typeid(CellularSmsNoSimRequestMessage), convertibleToActionHandler);
- connect(typeid(sdesktop::passcode::ScreenPasscodeRequest), convertibleToActionHandler);
connect(typeid(CellularSMSRejectedByOfflineNotification), convertibleToActionHandler);
connect(typeid(CellularCallRejectedByOfflineNotification), convertibleToActionHandler);
connect(typeid(sys::TetheringQuestionRequest), convertibleToActionHandler);
M module-services/service-appmgr/service-appmgr/Actions.hpp => module-services/service-appmgr/service-appmgr/Actions.hpp +0 -1
@@ 56,7 56,6 @@ namespace app::manager
DisplayCMEError,
DisplayLowBatteryScreen,
SystemBrownout,
- RequestScreenPasscode,
DisplayLogoAtExit,
SMSRejectedByOfflineNotification,
CallRejectedByOfflineNotification,
D module-services/service-appmgr/service-appmgr/data/UsbActionsParams.hpp => module-services/service-appmgr/service-appmgr/data/UsbActionsParams.hpp +0 -27
@@ 1,27 0,0 @@
-// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
-// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
-
-#pragma once
-
-#include <service-appmgr/service-appmgr/Actions.hpp>
-#include <module-utils/common_data/EventStore.hpp>
-
-namespace app::manager::actions
-{
- /** Action parameters for
- * RequestScreenPasscode
- */
- class ScreenPasscodeParams : public ActionParams
- {
- bool cancel = false;
- unsigned int attempts = 0;
- std::string passcodeName;
-
- public:
- ScreenPasscodeParams(bool cancel, unsigned int _attempts = 0, std::string _passcodeName = "Screen");
-
- [[nodiscard]] unsigned int getAttempts() const noexcept;
- [[nodiscard]] const std::string &getPasscodeName() const noexcept;
- [[nodiscard]] bool isCancel() const noexcept;
- };
-} // namespace app::manager::actions
M module-services/service-desktop/ServiceDesktop.cpp => module-services/service-desktop/ServiceDesktop.cpp +5 -7
@@ 65,6 65,7 @@ ServiceDesktop::ServiceDesktop()
btMsgHandler(std::make_unique<sdesktop::bluetooth::BluetoothMessagesHandler>(this))
{
LOG_INFO("[ServiceDesktop] Initializing");
+ bus.channels.push_back(sys::BusChannel::PhoneLockChanges);
updateOS = std::make_unique<UpdateMuditaOS>(this);
settings = std::make_unique<settings::Settings>(this);
@@ 224,8 225,7 @@ sys::ReturnCodes ServiceDesktop::InitHandler()
LOG_INFO("USB connected with endpoint security enabled. Requesting passcode.");
usbSecurityModel->setEndpointSecurity(EndpointSecurity::Block);
- bus.sendUnicast(std::make_shared<sdesktop::passcode::ScreenPasscodeRequest>(),
- app::manager::ApplicationManager::ServiceName);
+ bus.sendUnicast(std::make_shared<locks::UnlockPhone>(), app::manager::ApplicationManager::ServiceName);
return sys::MessageNone{};
});
@@ 234,7 234,7 @@ sys::ReturnCodes ServiceDesktop::InitHandler()
LOG_INFO("USB disconnected");
if (usbSecurityModel->isSecurityEnabled()) {
LOG_INFO("Enabling secured endpoints.");
- bus.sendUnicast(std::make_shared<sdesktop::passcode::ScreenPasscodeRequest>(true),
+ bus.sendUnicast(std::make_shared<locks::CancelUnlockPhone>(),
app::manager::ApplicationManager::ServiceName);
}
bus.sendUnicast(std::make_shared<sys::TetheringStateRequest>(sys::phone_modes::Tethering::Off),
@@ 258,10 258,8 @@ sys::ReturnCodes ServiceDesktop::InitHandler()
return sys::MessageNone{};
});
- connect(sdesktop::passcode::ScreenPasscodeUnlocked(), [&](sys::Message *msg) {
+ connect(typeid(locks::UnlockedPhone), [&](sys::Message *msg) {
LOG_INFO("Passcode accepted. Enabling endpoints.");
- bus.sendUnicast(std::make_shared<sdesktop::passcode::ScreenPasscodeRequest>(true),
- app::manager::ApplicationManager::ServiceName);
usbSecurityModel->setEndpointSecurity(EndpointSecurity::Allow);
return sys::MessageNone{};
});
@@ 355,7 353,7 @@ void ServiceDesktop::processUSBHandshake(sdesktop::usb::USBHandshake *msg)
if (usbSecurityModel->processHandshake(msg)) {
LOG_DEBUG("Handshake ok. Unlocking.");
- bus.sendUnicast(std::make_shared<sdesktop::passcode::ScreenPasscodeUnlocked>(), service::name::service_desktop);
+ bus.sendUnicast(std::make_shared<locks::UnlockedPhone>(), service::name::service_desktop);
responseContext.setResponseStatus(parserFSM::http::Code::OK);
}
M module-services/service-desktop/endpoints/developerMode/DeveloperModeHelper.cpp => module-services/service-desktop/endpoints/developerMode/DeveloperModeHelper.cpp +1 -1
@@ 115,7 115,7 @@ auto DeveloperModeHelper::processPut(Context &context) -> ProcessResult
else if (body[json::developerMode::usbSecurityStatus].is_string()) {
std::shared_ptr<sys::DataMessage> msg = std::make_shared<sdesktop::usb::USBConfigured>();
if (body[json::developerMode::usbSecurityStatus].string_value() == json::developerMode::usbUnlocked) {
- msg = std::make_shared<sdesktop::passcode::ScreenPasscodeUnlocked>();
+ msg = std::make_shared<locks::UnlockedPhone>();
}
code = toCode(owner->bus.sendUnicast(std::move(msg), "ServiceDesktop"));
}
M module-services/service-desktop/service-desktop/DesktopMessages.hpp => module-services/service-desktop/service-desktop/DesktopMessages.hpp +0 -32
@@ 9,7 9,6 @@
#include <service-appmgr/Actions.hpp>
#include <service-appmgr/messages/ActionRequest.hpp>
#include <service-appmgr/data/SimActionsParams.hpp>
-#include <service-appmgr/data/UsbActionsParams.hpp>
#include <Service/Message.hpp>
#include <MessageType.hpp>
#include <service-desktop/DeveloperModeMessage.hpp>
@@ 148,37 147,6 @@ namespace sdesktop
} // namespace usb
- namespace passcode
- {
- class ScreenPasscodeRequest : public sys::DataMessage, public app::manager::actions::ConvertibleToAction
- {
- static constexpr auto passcodeName = "ScreenPasscode";
-
- public:
- explicit ScreenPasscodeRequest(bool cancel = false)
- : sys::DataMessage(MessageType::ScreenPasscodeRequest), cancel(cancel)
- {}
-
- [[nodiscard]] auto toAction() const -> std::unique_ptr<app::manager::ActionRequest>
- {
- return std::make_unique<app::manager::ActionRequest>(
- sender,
- app::manager::actions::RequestScreenPasscode,
- std::make_unique<app::manager::actions::ScreenPasscodeParams>(cancel));
- }
-
- private:
- bool cancel = false;
- };
-
- class ScreenPasscodeUnlocked : public sys::DataMessage
- {
- public:
- explicit ScreenPasscodeUnlocked() : sys::DataMessage(MessageType::ScreenPasscodeUnlocked)
- {}
- }; // namespace sdesktop
- } // namespace passcode
-
namespace developerMode
{
class AppFocusChangeEvent : public Event
M module-sys/Service/Common.hpp => module-sys/Service/Common.hpp +3 -0
@@ 25,6 25,7 @@ namespace sys
ServiceEvtmgrNotifications,
CalendarNotifications,
PhoneModeChanges,
+ PhoneLockChanges,
};
enum class ServicePriority
@@ 114,6 115,8 @@ inline const char *c_str(sys::BusChannel channel)
return "CalendarNotifications";
case sys::BusChannel::PhoneModeChanges:
return "PhoneModeChanges";
+ case sys::BusChannel::PhoneLockChanges:
+ return "PhoneLockChanges";
}
return "";
}
M source/MessageType.hpp => source/MessageType.hpp +0 -3
@@ 127,9 127,6 @@ enum class MessageType
USBSecurityOff,
USBHandshake,
- ScreenPasscodeRequest,
- ScreenPasscodeUnlocked,
-
// FOTA messages
HttpRequest,
HttpResponse,