File indexing completed on 2024-05-12 04:45:57

0001 /*
0002     SPDX-FileCopyrightText: 2019 Nicolas Fella <nicolas.fella@gmx.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "lockmanager.h"
0008 
0009 #include <QDebug>
0010 
0011 #if defined(Q_OS_ANDROID)
0012 #include "android/androidlockbackend.h"
0013 #elif (defined Q_OS_LINUX || defined Q_OS_FREEBSD)
0014 #include "linux/solidlockbackend.h"
0015 #endif
0016 
0017 LockManager::LockManager(QObject *parent)
0018     : QObject(parent)
0019     , m_inhibit()
0020 {
0021 #if defined(Q_OS_ANDROID)
0022     m_backend = new AndroidLockBackend(this);
0023 #elif defined(Q_OS_LINUX)
0024     m_backend = new SolidLockBackend(this);
0025 #endif
0026 }
0027 
0028 LockManager::~LockManager() = default;
0029 
0030 void LockManager::toggleInhibitScreenLock(const QString &explanation)
0031 {
0032     if (!m_backend)
0033         return;
0034 
0035     if (m_inhibit) {
0036         m_backend->setInhibitionOff();
0037     } else {
0038         m_backend->setInhibitionOn(explanation);
0039     }
0040     m_inhibit = !m_inhibit;
0041 }
0042 
0043 void LockManager::setInhibitionOff()
0044 {
0045     if (!m_backend)
0046         return;
0047 qDebug() << "Set Inhibition OOFF";
0048     m_backend->setInhibitionOff();
0049 
0050     m_inhibit = false;
0051 }
0052 
0053 void LockManager::setInhibitionOn(const QString &explanation)
0054 {
0055     if (!m_backend)
0056         return;
0057     qDebug() << "Set Inhibition ON";
0058 
0059     m_backend->setInhibitionOn(explanation);
0060 
0061     m_inhibit = true;
0062 }