Beispiel #1
0
void DeviceLock::checkDisplayState(MeeGo::QmDisplayState::DisplayState state)
{
    int lockingDelay = lockingGConfItem->value(-1).toInt();
    if (lockingDelay == 0 && state == MeeGo::QmDisplayState::DisplayState::Off && qmLocks->getState(MeeGo::QmLocks::TouchAndKeyboard) == MeeGo::QmLocks::Locked) {
        // Immediate locking enabled and the display is off: lock
        setState(Locked);
    } else if (state == MeeGo::QmDisplayState::DisplayState::Off) {
        setStateAndSetupLockTimer();
    } else if (monoTime.tv_sec) {
        struct timeval compareTime;
        tv_get_monotime(&compareTime);
        if (lockingDelay*60 < tv_diff_in_s(&compareTime, &monoTime)) {
            setState(Locked);
        }
    }
}
Beispiel #2
0
void DeviceLock::setupLockTimer()
{
    if (deviceLockState == Locked) {
        // Device already locked: stop the timer
        lockTimer->stop();
        monoTime.tv_sec = 0;
    } else {
        if (lockingDelay <= 0 || (m_activity == MeeGo::QmActivity::Active && m_displayState != MeeGo::QmDisplayState::DisplayState::Off)) {
            // Locking disabled or device active: stop the timer
            lockTimer->stop();
            monoTime.tv_sec = 0;
        } else if (!isCallActive && !monoTime.tv_sec && m_activity == MeeGo::QmActivity::Inactive) {
            // Locking in N minutes enabled and device inactive: start the timer
            lockTimer->start(lockingDelay * 60 * 1000);
            tv_get_monotime(&monoTime);
        }
    }
}
Beispiel #3
0
void DeviceLock::setupLockTimer()
{
    if (deviceLockState == Locked) {
        // Device already locked: stop the timer
        lockTimer->stop();
        monoTime.tv_sec = 0;
    } else {
        int lockingDelay = lockingGConfItem->value(-1).toInt();
        if (lockingDelay <= 0 || qmActivity->get() == MeeGo::QmActivity::Active) {
            // Locking disabled or device active: stop the timer
            lockTimer->stop();
            monoTime.tv_sec = 0;
        } else {
            // Locking in N minutes enabled and device inactive: start the timer
            lockTimer->start(lockingDelay * 60 * 1000);
            tv_get_monotime(&monoTime);
        }
    }
}
Beispiel #4
0
void DeviceLock::handleDisplayStateChanged(MeeGo::QmDisplayState::DisplayState state)
{
    if (state == m_displayState)
        return;

    m_displayState = state;

    if (lockingDelay == 0 && state == MeeGo::QmDisplayState::DisplayState::Off
            && !isCallActive) {
        // Immediate locking enabled and the display is off and not in call: lock
        setState(Locked);
    } else if (state == MeeGo::QmDisplayState::DisplayState::Off) {
        setStateAndSetupLockTimer();
    } else if (monoTime.tv_sec && lockingDelay > 0) {
        struct timeval compareTime;
        tv_get_monotime(&compareTime);
        if (lockingDelay*60 < tv_diff_in_s(&compareTime, &monoTime)) {
            setState(Locked);
        }
        setupLockTimer();
    }
}