// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include #include namespace locks { class UnlockPhone : public sys::DataMessage {}; class UnlockPhoneForMTP : public sys::DataMessage {}; class CancelUnlockPhone : public sys::DataMessage {}; class UnlockedPhone : public sys::DataMessage {}; class LockPhone : public sys::DataMessage {}; class LockedPhone : public sys::DataMessage {}; class EnablePhoneLock : public sys::DataMessage {}; class DisablePhoneLock : public sys::DataMessage {}; class ChangePhoneLock : public sys::DataMessage {}; class SetPhoneLock : public sys::DataMessage {}; class SetConfirmedPhoneLock : public sys::DataMessage {}; class SkipSetPhoneLock : public sys::DataMessage {}; class SkippedSetPhoneLock : public sys::DataMessage {}; class UnlockPhoneInput : public sys::DataMessage { private: std::vector inputData; public: explicit UnlockPhoneInput(std::vector inputData) : inputData(std::move(inputData)) {} [[nodiscard]] auto getInputData() const noexcept { return inputData; } }; class PhoneLockTimeUpdate : public sys::DataMessage { private: std::string formattedTime; bool isFirstData; public: explicit PhoneLockTimeUpdate(std::string formattedTime, bool isFirstData = true) : formattedTime(std::move(formattedTime)), isFirstData(isFirstData) {} [[nodiscard]] const auto &getTime() const noexcept { return formattedTime; } [[nodiscard]] const auto &getIsFirstData() const noexcept { return isFirstData; } }; class NextPhoneUnlockAttemptLockTime : public sys::DataMessage { private: std::time_t nextPhoneUnlockAttemptLockTime; public: explicit NextPhoneUnlockAttemptLockTime(std::time_t nextPhoneUnlockAttemptLockTime) : nextPhoneUnlockAttemptLockTime(nextPhoneUnlockAttemptLockTime) {} [[nodiscard]] const auto &getTime() const noexcept { return nextPhoneUnlockAttemptLockTime; } }; class ExternalUnlockPhone : public UnlockPhoneInput { public: explicit ExternalUnlockPhone(std::vector inputData) : UnlockPhoneInput(std::move(inputData)) {} }; class ExternalPhoneLockAvailabilityChange : public sys::DataMessage { private: bool value = true; public: explicit ExternalPhoneLockAvailabilityChange(bool value) : value(value) {} [[nodiscard]] auto getAvailability() const noexcept { return value; } }; } // namespace locks