diff --git a/rpm/nemo-qml-plugin-devicelock.spec b/rpm/nemo-qml-plugin-devicelock.spec index 5e4e330..8258aa3 100644 --- a/rpm/nemo-qml-plugin-devicelock.spec +++ b/rpm/nemo-qml-plugin-devicelock.spec @@ -1,6 +1,6 @@ Name: nemo-qml-plugin-devicelock Summary: Device lock plugin for Nemo Mobile -Version: 0.2.1 +Version: 0.2.21 Release: 1 Group: System/Libraries License: LGPLv2.1 diff --git a/src/nemo-devicelock/host/hostauthenticator.cpp b/src/nemo-devicelock/host/hostauthenticator.cpp index ca2a1f4..72c277c 100644 --- a/src/nemo-devicelock/host/hostauthenticator.cpp +++ b/src/nemo-devicelock/host/hostauthenticator.cpp @@ -45,6 +45,7 @@ namespace NemoDeviceLock static const auto authenticatorInterface = QStringLiteral("org.nemomobile.devicelock.client.Authenticator"); static const auto securityCodeInterface = QStringLiteral("org.nemomobile.devicelock.client.SecurityCodeSettings"); +static const auto attemptsRemaining = QStringLiteral("attemptsRemaining"); HostAuthenticatorAdaptor::HostAuthenticatorAdaptor(HostAuthenticator *authenticator) : QDBusAbstractAdaptor(authenticator) @@ -493,6 +494,10 @@ void HostAuthenticator::authorize() void HostAuthenticator::checkCodeFinished(int result) { + const FeedbackFunction feebackFunction = (m_state & EvaluatingFlag) + ? &HostAuthenticationInput::authenticationResumed + : static_cast(&HostAuthenticationInput::feedback); + m_state = State(m_state & ~EvaluatingFlag); switch (m_state) { @@ -500,6 +505,8 @@ void HostAuthenticator::checkCodeFinished(int result) case RequestingPermission: switch (result) { case Evaluating: + authenticationEvaluating(); + m_state = State(m_state | EvaluatingFlag); return; case Success: case SecurityCodeExpired: @@ -528,10 +535,12 @@ void HostAuthenticator::checkCodeFinished(int result) case AuthenticatingForChange: switch (result) { case Evaluating: + authenticationEvaluating(); + m_state = State(m_state | EvaluatingFlag); return; case Success: case SecurityCodeExpired: - enterCodeChangeState(&HostAuthenticationInput::feedback, Authenticator::SecurityCode); + enterCodeChangeState(feebackFunction, Authenticator::SecurityCode); return; case LockedOut: lockedOut(); @@ -544,6 +553,8 @@ void HostAuthenticator::checkCodeFinished(int result) case AuthenticatingForClear: { switch (result) { case Evaluating: + authenticationEvaluating(); + m_state = State(m_state | EvaluatingFlag); return; case Success: if (clearCode(m_currentCode)) { @@ -563,19 +574,21 @@ void HostAuthenticator::checkCodeFinished(int result) return; } - const int attempts = result; const int maximum = maximumAttempts(); + QVariantMap data; if (maximum > 0 && attempts > 0) { - feedback(AuthenticationInput::IncorrectSecurityCode, qMax(0, maximum - attempts)); + data.insert(attemptsRemaining, qMax(0, maximum - attempts)); + (this->*feebackFunction)(AuthenticationInput::IncorrectSecurityCode, data, Authenticator::Methods()); if (attempts >= maximum) { lockedOut(); return; } } else { - feedback(AuthenticationInput::IncorrectSecurityCode, -1); + data.insert(attemptsRemaining, -1); + (this->*feebackFunction)(AuthenticationInput::IncorrectSecurityCode, data, Authenticator::Methods()); } } diff --git a/src/nemo-devicelock/lib.pro b/src/nemo-devicelock/lib.pro index 113fb43..8f645ce 100644 --- a/src/nemo-devicelock/lib.pro +++ b/src/nemo-devicelock/lib.pro @@ -61,6 +61,7 @@ target.path = /usr/lib QMAKE_PKGCONFIG_NAME = nemodevicelock QMAKE_PKGCONFIG_DESCRIPTION = Library for Nemo device lock. QMAKE_PKGCONFIG_LIBDIR = $$target.path +QMAKE_PKGCONFIG_VERSION = $$VERSION QMAKE_PKGCONFIG_INCDIR = /usr/include QMAKE_PKGCONFIG_DESTDIR = pkgconfig QMAKE_PKGCONFIG_VERSION = $$VERSION