diff -r 76883296a0d5 -r 11a052f4b02e coreapplicationuis/powersaveutilities/batindicatorpaneplugin/src/batindicatorpanepluginimpl.cpp --- a/coreapplicationuis/powersaveutilities/batindicatorpaneplugin/src/batindicatorpanepluginimpl.cpp Tue Jul 06 14:26:20 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,293 +0,0 @@ -/* -* Copyright (c) 2007 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: BatIndicatorPanePlugin plugin implementation -* -*/ - - -// INCLUDE FILES -#include // RPropert -#include // BatIndicatorPanePlugin resources -#include // Stringloader -#include -#include -#include -#include // KDC_ECOM_RESOURCE_DIR -#include -#include "batindicatorpanepluginimpl.h" -#include "batindpanepluginprivatecrkeys.h" -#include "bsutil.h" -#include "trace.h" - -// CONSTANTS -_LIT( KIndicatorResourceFile,"z:batindpaneplugin.rsc" ); - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Two-phased constructor. -// --------------------------------------------------------------------------- -// -CBatIndicatorPanePluginImpl* CBatIndicatorPanePluginImpl::NewL( ) - { - FUNC_LOG - - CBatIndicatorPanePluginImpl* self = new( ELeave ) CBatIndicatorPanePluginImpl( ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CBatIndicatorPanePluginImpl::~CBatIndicatorPanePluginImpl() - { - FUNC_LOG - - delete iContentText; - delete iPsmClient; - delete iBatteryStateUtil; - delete iPopupControl; - delete iLinkText; - iResourceLoader.Close(); - } - -// --------------------------------------------------------------------------- -// From MEikCommandObserver -// --------------------------------------------------------------------------- -// -void CBatIndicatorPanePluginImpl::ProcessCommandL( TInt aCommandId ) - { - FUNC_LOG - - if( aCommandId == ELinkFirst ) - { - SetPowerSaveModeEnabled(); - } - } - -// --------------------------------------------------------------------------- -// CBatIndicatorPanePluginImpl::CBatIndicatorPanePluginImpl -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------- -// -CBatIndicatorPanePluginImpl::CBatIndicatorPanePluginImpl( ): - iResourceLoader( *CEikonEnv::Static() ), - iBatIndPanePluginFeatures( 0 ) - { - FUNC_LOG - } - -// --------------------------------------------------------------------------- -// CBatIndicatorPanePluginImpl::ConstructL -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------- -// -void CBatIndicatorPanePluginImpl::ConstructL( ) - { - FUNC_LOG - // Create PSM client - iPsmClient = CPsmClient::NewL( *this ); - - GetFeatures(); - - // Create Battery State Utilities - if( !Supported( KBatIndPanePluginLinkOnly ) ) - { - iBatteryStateUtil = CBSUtil::NewL(); - } - - // Read resource strings - TParse* fp = new( ELeave ) TParse(); - CleanupStack::PushL( fp ); - fp->Set( KIndicatorResourceFile, &KDC_ECOM_RESOURCE_DIR , NULL ); - TFileName filename = fp->FullName(); - iResourceLoader.OpenL( filename ); - CleanupStack::PopAndDestroy( fp ); - } - -// --------------------------------------------------------------------------- -// Shows soft notification. -// --------------------------------------------------------------------------- -// -void CBatIndicatorPanePluginImpl::ShowPreviewPopupL( ) - { - FUNC_LOG - - delete iPopupControl; - iPopupControl = NULL; - - if( iContentText ) - { - iPopupControl = CBatteryPopupControl::NewL( *iContentText, - *iLinkText ); - } - else - { - iPopupControl = CBatteryPopupControl::NewL( KNullDesC, - *iLinkText ); - } - - iPopupControl->SetCommandObserver( *this ); - // Launch - iPopupControl->ShowPopUpL(); - - delete iContentText; - iContentText = NULL; - - delete iLinkText; - iLinkText = NULL; - } - -// --------------------------------------------------------------------------- -// Enables or disables power save mode. -// --------------------------------------------------------------------------- -// -void CBatIndicatorPanePluginImpl::SetPowerSaveModeEnabled( ) - { - FUNC_LOG - // Get PSM state - TInt mode; - TInt err = iPsmClient->PsmSettings().GetCurrentMode( mode ); - - if ( err == KErrNone ) - { - if( mode == EPsmsrvModeNormal || - mode == EPsmsrvPartialMode ) - { - iPsmClient->ChangePowerSaveMode( EPsmsrvModePowerSave ); - } - else - { - iPsmClient->ChangePowerSaveMode( EPsmsrvModeNormal ); - } - } - } - -// --------------------------------------------------------------------------- -// From CAknIndicatorPlugin -// --------------------------------------------------------------------------- -// -void CBatIndicatorPanePluginImpl::HandleIndicatorTapL( const TInt /*aUid*/ ) - { - FUNC_LOG - - delete iContentText; - iContentText = NULL; - - delete iLinkText; - iLinkText = NULL; - - TInt err = KErrNone; - - if ( iBatteryStateUtil ) - { - TInt batteryStatus; - err = RProperty::Get( KPSUidHWRMPowerState, KHWRMBatteryStatus, batteryStatus ); - - if( !err && batteryStatus == EBatteryStatusLow ) - { - iContentText = StringLoader::LoadL( R_QTN_BATTERY_LOW_PREVIEW_POPUP ); - } - else - { - TUint8 batteryCapacity = iBatteryStateUtil->GetBatteryCapacity(); - - iContentText = StringLoader::LoadL( R_QTN_BATTERY_STATUS_POPUP, - batteryCapacity ); - } - } - - // Get PSM state - TInt mode; - TBool psmActive = EFalse; - err = iPsmClient->PsmSettings().GetCurrentMode( mode ); - - if ( err == KErrNone ) - { - psmActive = ( mode == EPsmsrvModePowerSave ); - } - - if ( psmActive ) - { - iLinkText = StringLoader::LoadL( R_QTN_DEACTIVATE_POWER_SAVING ); - } - else - { - iLinkText = StringLoader::LoadL( R_QTN_ACTIVATE_POWER_SAVING ); - } - ShowPreviewPopupL(); - } - -// ---------------------------------------------------------------------------- -// CBatIndicatorPanePluginImpl::GetFeatures() -// ---------------------------------------------------------------------------- -// -void CBatIndicatorPanePluginImpl::GetFeatures( ) - { - FUNC_LOG - - CRepository* repository = NULL; - - TRAPD( err, repository = CRepository::NewL( KCRUidBatIndPanePluginConf ) ); - - if ( err == KErrNone ) - { - err = repository->Get( KBatIndPanePlugin, iBatIndPanePluginFeatures ); - - if ( err != KErrNone || iBatIndPanePluginFeatures < 0 ) // ERROR - { - INFO_1( "CBatIndicatorPanePluginImpl::GetFeatures - Reading features err %d", err ) - iBatIndPanePluginFeatures = 0; - } - } - else - { - INFO_1( "CBatIndicatorPanePluginImpl::GetFeatures: open KCRUidBatIndPanePluginConf failed, err=%d", err ) - } - delete repository; - } - -// ---------------------------------------------------------------------------- -// CBatIndicatorPanePluginImpl::Supported() -// ---------------------------------------------------------------------------- -// -TInt CBatIndicatorPanePluginImpl::Supported( TInt aFeatureId ) - { - FUNC_LOG - return aFeatureId & iBatIndPanePluginFeatures; - } -// --------------------------------------------------------------------------- -// From MPsmClientObserver -// --------------------------------------------------------------------------- -// -void CBatIndicatorPanePluginImpl::PowerSaveModeChanged( const TPsmsrvMode /*aMode*/ ) - { - FUNC_LOG - } - -// --------------------------------------------------------------------------- -// From MPsmClientObserver -// --------------------------------------------------------------------------- -// -void CBatIndicatorPanePluginImpl::PowerSaveModeChangeError( const TInt /*aError*/ ) - { - FUNC_LOG - } -// End of File