securitydialogs/AutolockSrv/autolockuseractivityservice/s60/src/autolockuseractivityservice_p.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/AutolockSrv/autolockuseractivityservice/s60/src/autolockuseractivityservice_p.cpp Mon May 03 13:20:16 2010 +0300
@@ -0,0 +1,143 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: autolockuseractivityservice_p.cpp
+*
+*/
+
+#include "autolockuseractivityservice.h"
+#include "autolockuseractivityservice_p.h"
+#include <e32debug.h>
+
+#include <activitymanager.h>
+
+const int lDefaultInactivityPeriod(5);
+
+// ======== LOCAL FUNCTIONS ========
+
+/*!
+ Called as callback to activity event.
+ \param pointer to activity callback object.
+ \retval error code.
+*/
+TInt activityCallback(TAny *ptr)
+{
+ RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+
+ static_cast<AutolockUserActivityServicePrivate *>(ptr)->emitActive();
+ // activity manager doesn't care about the return value,
+ // we return a value indicating 'true' to be elegant (see CIdle)
+ return 1;
+}
+
+/*!
+ Called as callback to inactivity event.
+ \param pointer to inactivity callback object.
+ \retval error code.
+*/
+TInt inactivityCallback(TAny *ptr)
+{
+ RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+
+ static_cast<AutolockUserActivityServicePrivate *>(ptr)->emitNotActive();
+ // activity manager doesn't care about the return value,
+ // we return a value indicating 'true' to be elegant (see CIdle)
+ return 1;
+}
+
+// ======== MEMBER FUNCTIONS ========
+
+/*!
+ Constructor.
+ \param servicePublic public implementation.
+*/
+AutolockUserActivityServicePrivate::AutolockUserActivityServicePrivate(AutolockUserActivityService *servicePublic) :
+ m_q(servicePublic), mActivityManager(0), mInactivityPeriod(lDefaultInactivityPeriod)
+{
+ mActivityManager = CUserActivityManager::NewL(CActive::EPriorityStandard);
+}
+
+/*!
+ Destructor.
+*/
+AutolockUserActivityServicePrivate::~AutolockUserActivityServicePrivate()
+{
+ delete mActivityManager;
+}
+
+/*!
+ Sets the inactivity period after which to emit signal of inactivity.
+ \param seconds after which inactivity is detected.
+*/
+void AutolockUserActivityServicePrivate::setInactivityPeriod(int seconds)
+{
+ RDebug::Printf( "%s %s (%u) seconds=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, seconds );
+
+ mInactivityPeriod = seconds;
+ // activity manager panics if timeout set before start
+ if (isWatching())
+ {
+ mActivityManager->SetInactivityTimeout(TTimeIntervalSeconds(mInactivityPeriod));
+ }
+}
+
+/*!
+ Retrives the current inactivity period setting.
+ \retval inactivity period set.
+*/
+int AutolockUserActivityServicePrivate::inactivityPeriod() const
+{
+ return mInactivityPeriod;
+}
+
+/*!
+ Starts or stops activity manager user activity watching.
+ \param shouldWatch determines if we shoul start watching or stop watching.
+*/
+void AutolockUserActivityServicePrivate::watch(bool shouldWatch)
+{
+ RDebug::Printf( "%s %s (%u) shouldWatch=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, shouldWatch );
+ if (shouldWatch && !isWatching()) {
+ mActivityManager->Start(
+ TTimeIntervalSeconds(mInactivityPeriod),
+ TCallBack(inactivityCallback, this),
+ TCallBack(activityCallback, this));
+ } else if (!shouldWatch && isWatching()) {
+ mActivityManager->Cancel();
+ }
+}
+
+/*!
+ Checks if activity service is currently watching for user activity.
+ \retval true if user acitivity service is active.
+*/
+bool AutolockUserActivityServicePrivate::isWatching() const
+{
+ return mActivityManager && mActivityManager->IsActive();
+}
+
+/*!
+ Emits signal that user is active.
+*/
+void AutolockUserActivityServicePrivate::emitActive() const
+{
+ emit m_q->active();
+}
+
+/*!
+ Emits signal that user is not active.
+*/
+void AutolockUserActivityServicePrivate::emitNotActive() const
+{
+ emit m_q->notActive();
+}