diff -r 312d2b433792 -r 5e7d68cc22e0 coreapplicationuis/SysAp/Src/SysApLightsController.cpp --- a/coreapplicationuis/SysAp/Src/SysApLightsController.cpp Mon Jun 21 15:51:07 2010 +0300 +++ b/coreapplicationuis/SysAp/Src/SysApLightsController.cpp Thu Jul 15 18:49:38 2010 +0300 @@ -31,6 +31,7 @@ #include "SysApFeatureManager.h" #include "startupdomainpskeys.h" #include +#include // CONSTANTS @@ -1103,9 +1104,17 @@ TInt error = RProperty::Get( KPSUidStartup, KPSGlobalSystemState, state ); if ( error == KErrNone && state == ESwStateCharging ) { - iSysApAppUi.StartChargingBatteryL(); - //To switch on the display - TInt result = HAL::Set( HALData::EDisplayState, 1 ); + TInt value = iSysApAppUi.StateOfProperty( KPSUidHWRMPowerState, KHWRMChargingStatus ); + if (value == EChargingStatusChargingComplete ) + { + iSysApAppUi.StopChargingBatteryL(); + } + else + { + iSysApAppUi.StartChargingBatteryL(); + //To switch on the display + TInt result = HAL::Set( HALData::EDisplayState, 1 ); + } } } else