--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/livecommsui/lcuiengine/src/lcactivitymanager.cpp Tue Aug 31 15:12:07 2010 +0300
@@ -0,0 +1,138 @@
+/*
+* 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:
+*
+*/
+
+// INCLUDES
+#include <e32base.h>
+#include <centralrepository.h>
+#include <hwrmlightdomaincrkeys.h>
+#include <QtCore>
+#include "lcactivitymanager.h"
+#include "lclogger.h"
+
+
+const int lcDefaultInactivityTimeout = 5; //timeout in seconds, used if fetching
+ //value from cenrep fails
+const int lcInvalidTimerId = -1;
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+LcActivityManager::LcActivityManager() :
+ mTimerId(lcInvalidTimerId)
+{
+ if (initInactivityTimeout() != 0) {
+ mInactivityTimeout = lcDefaultInactivityTimeout;
+ }
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+LcActivityManager::~LcActivityManager()
+{
+ stopTimer();
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LcActivityManager::enableActivitySimulation(bool enable)
+{
+ if (enable) {
+ restartTimer();
+ } else {
+ stopTimer();
+ }
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+bool LcActivityManager::isActivitySimulationEnabled()
+{
+ return (mTimerId != lcInvalidTimerId);
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+int LcActivityManager::initInactivityTimeout()
+{
+ CRepository* repository = 0;
+ TRAPD(err, repository = CRepository::NewL(KCRUidLightSettings));
+ if (err == KErrNone) {
+ // Let's fetching display light timeout value (in seconds )
+ TInt displayTimeOut(0);
+ err = repository->Get(KDisplayLightsTimeout, displayTimeOut);
+ if (displayTimeOut > 2) {
+ //taking away 2 seconds just in case, to ensure we keep
+ //simulating user activity frequently enough
+ displayTimeOut -= 2;
+ }
+ mInactivityTimeout = displayTimeOut;
+ }
+ delete repository;
+ return err;
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LcActivityManager::stopTimer()
+{
+ if (mTimerId != lcInvalidTimerId) {
+ killTimer(mTimerId);
+ mTimerId = lcInvalidTimerId;
+ }
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LcActivityManager::restartTimer()
+{
+ stopTimer();
+
+ int timeLeftInSeconds = mInactivityTimeout - User::InactivityTime().Int();
+ if ( timeLeftInSeconds < 1 ) {
+ User::ResetInactivityTime();
+ timeLeftInSeconds = mInactivityTimeout;
+ }
+
+ LC_QDEBUG_2( "livecomms [UI] -> LcActivityManager::startTimer(), interval: ", timeLeftInSeconds);
+
+ mTimerId = startTimer(timeLeftInSeconds*1000);
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LcActivityManager::timerEvent(QTimerEvent* event)
+{
+ if (event->timerId() == mTimerId) {
+ LC_QDEBUG( "livecomms [UI] -> LcActivityManager::timerEvent()" );
+ restartTimer();
+ }
+}