diff -r 33a5d2bbf6fc -r 73a1feb507fb mmsharing/livecommsui/lcuiengine/src/lcactivitymanager.cpp --- /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 +#include +#include +#include +#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(); + } +}