~aleteoryx/muditaos

ref: bcdaf15ed1560876b4a784f758ead67a7e240968 muditaos/module-apps/locks/widgets/Lock.cpp -rw-r--r-- 1.4 KiB
bcdaf15e — Przemyslaw Brudny [EGD-6740] Availability and Change handled by PhoneLockHandler 4 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "Lock.hpp"
#include <module-utils/log/log.hpp>

namespace locks
{
    void Lock::consumeState() noexcept
    {
        if (lockState == LockState::InputInvalid) {
            lockState = LockState::InputRequired;
        }
        else if (lockState == LockState::NewInputInvalid) {
            lockState = LockState::NewInputRequired;
        }
        else if (lockState == LockState::NewInputConfirmRequired) {
            lockState = LockState::NewInputRequired;
        }
    }

    void Lock::putNextChar(unsigned int c)
    {
        if (maxInputSize > inputValue.size()) {
            inputValue.push_back(c);
        }
        if (canVerify() && autoActivate && onActivatedCallback != nullptr) {
            onActivatedCallback(lockType, inputValue);
        }
    }

    void Lock::popChar()
    {
        if (inputValue.size() > 0) {
            inputValue.pop_back();
        }
    }

    void Lock::clearAttempt() noexcept
    {
        inputValue.clear();
    }

    void Lock::activate()
    {
        if (!onActivatedCallback) {
            LOG_ERROR("Passcode verification callback null");
            return;
        }
        onActivatedCallback(lockType, inputValue);
        clearAttempt();
    }
} // namespace locks