mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-10-24 23:48:31 -04:00
This window displays switch button for disabling/enabling pin code for sim card. Its also starting point for changing pin code. Added actions for enabling and disabling pin code for sim card. Added method for checking if pin code is set for sim card.
71 lines
3.0 KiB
C++
71 lines
3.0 KiB
C++
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
|
|
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
#pragma once
|
|
|
|
#include "PinLock.hpp"
|
|
|
|
#include <module-services/service-appmgr/service-appmgr/messages/ActionRequest.hpp>
|
|
#include <module-services/service-appmgr/service-appmgr/Actions.hpp>
|
|
|
|
namespace app
|
|
{
|
|
class ApplicationDesktop;
|
|
}
|
|
|
|
namespace gui
|
|
{
|
|
class PinLockHandler
|
|
{
|
|
app::ApplicationDesktop *app = nullptr;
|
|
gui::PinLock screenLock;
|
|
gui::PinLock simLock;
|
|
bool promptSimLockWindow = true;
|
|
|
|
void handleScreenPin(const std::vector<unsigned int> &pin);
|
|
void handlePasscode(PinLock::LockType type, const std::vector<unsigned int> passcode);
|
|
void handlePasscodeChange(const std::vector<unsigned int> passcode);
|
|
void handleNewPasscodeUnconfirmed(const std::vector<unsigned int> &passcode,
|
|
const std::vector<unsigned int> &pin);
|
|
void handleNewPasscodeConfirmed(PinLock::LockType type,
|
|
const std::vector<unsigned int> &passcode,
|
|
const std::vector<unsigned int> &pin);
|
|
void handleNewPasscodeInvalid(const std::vector<unsigned int> &passcode);
|
|
void handlePasscodeParams(PinLock::LockType type,
|
|
PinLock::LockState state,
|
|
app::manager::actions::ActionParamsPtr &&data);
|
|
void switchToPinLockWindow(
|
|
std::function<void(PinLock::LockType, const std::vector<unsigned int> &)> onLockActivatedCallback);
|
|
void switchToPinLockWindow(
|
|
PinLock::LockState type,
|
|
std::function<void(PinLock::LockType, const std::vector<unsigned int> &)> onLockActivatedCallback);
|
|
|
|
auto getStrongestLock() noexcept -> gui::PinLock &;
|
|
void unlock();
|
|
void setSimLockHandled() noexcept;
|
|
|
|
public:
|
|
PinLockHandler(app::ApplicationDesktop *app);
|
|
|
|
void handlePasscodeRequest(PinLock::LockType type, app::manager::actions::ActionParamsPtr &&data);
|
|
void handlePinChangeRequest(app::manager::actions::ActionParamsPtr &&data);
|
|
void handlePinDisableRequest(app::manager::actions::ActionParamsPtr &&data);
|
|
void handlePinEnableRequest(app::manager::actions::ActionParamsPtr &&data);
|
|
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;
|
|
|
|
[[nodiscard]] auto isScreenLocked() const noexcept -> bool
|
|
{
|
|
return !screenLock.isState(PinLock::LockState::Unlocked);
|
|
}
|
|
[[nodiscard]] auto isScreenBlocked() const noexcept -> bool
|
|
{
|
|
return screenLock.isState(PinLock::LockState::Blocked);
|
|
}
|
|
void lockScreen();
|
|
void unlockScreen();
|
|
};
|
|
} // namespace gui
|