diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Src/SysApAppUi.cpp --- a/coreapplicationuis/SysAp/Src/SysApAppUi.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/SysAp/Src/SysApAppUi.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -59,6 +59,7 @@ #include #include +#include "sysapganhandler.h" #include #include #include @@ -247,7 +248,8 @@ iSysApAudioRoutingObserver( NULL ), iSysApCenRepCallForwardingObserver( NULL ), iSysApCenRepMsgWaitingObserver( NULL ), - iKeyBoardRepeatCount(-1) + iSysApGanHandler( NULL ), + iKeyBoardRepeatCount(-1) { TRACES( RDebug::Print( _L("CSysApAppUi::CSysApAppUi()") ) ); } @@ -490,6 +492,15 @@ DeactivatePSMifBatteryNotLowL (); + if( iSysApFeatureManager->GanSupported() ) + { + + + RProperty::Define( KPSUidCoreApplicationUIs, KCoreAppUIsGanPropertyGanMode, RProperty::EInt, KAlwaysPassPolicy, KWriteDeviceDataPolicy ); + RProperty::Define( KPSUidCoreApplicationUIs, KCoreAppUIsGanPropertySignalLevel, RProperty::EInt, KAlwaysPassPolicy, KWriteDeviceDataPolicy ); + iSysApGanHandler = CSysApGanHandler::NewL( *this ); + } + TRACES( RDebug::Print( _L("CSysApAppUi::ConstructL: END") ) ); } @@ -570,6 +581,8 @@ delete iSysApStartupController; + delete iSysApGanHandler; + #ifdef RD_MULTIPLE_DRIVE iInsertedMemoryCards.Close(); delete iSysApDriveEjectHandler; @@ -747,6 +760,7 @@ TInt errorCode2 = RProperty::Get( KPSUidStartup, KStartupSecurityCodeQueryStatus, securityQueryState); TRACES( RDebug::Print( _L( "CSysApAppUi::HandleKeyEventL(): Reading value of KCoreAppUIsDisableKeyguard - State Value: %d"),alarmState)); TRACES( RDebug::Print( _L( "CSysApAppUi::HandleKeyEventL(): Reading value of KStartupSecurityCodeQueryStatus - State Value: %d"),securityQueryState)); + TInt callState( StateOfProperty( KPSUidCtsyCallInformation, KCTsyCallState ) ); //Disable keylock if Alarm is active or if a Security code query is active on the display if ( alarmState == ECoreAppUIsDisableKeyguard || securityQueryState == ESecurityQueryActive ) { @@ -754,7 +768,10 @@ } else { - KeyLock().EnableWithoutNote(); + if( callState != EPSCTsyCallStateConnected && !iDeviceLockEnabled) + { + KeyLock().EnableWithoutNote(); + } } } else @@ -1888,8 +1905,11 @@ void CSysApAppUi::UpdateSignalBarsL( const TInt aState ) { TRACES( RDebug::Print( _L("CSysApAppUi::UpdateSignalBarsL aState: %d"), aState ) ); - - if( aState == KAknSignalOffLineMode || (iSysApOfflineModeController->OfflineModeActive() && !iEmergencyCallActive) ) + if( iSysApGanHandler && iSysApGanHandler->IsInGanMode() ) + { + iSignalNotify->SetSignalLevelL( iSysApGanHandler->GanSignalLevel() ); + } + else if( aState == KAknSignalOffLineMode || (iSysApOfflineModeController->OfflineModeActive() && !iEmergencyCallActive) ) { iSignalNotify->SetSignalLevelL( KAknSignalOffLineMode ); } @@ -1942,22 +1962,39 @@ } iSignalNotify->SetWcdmaStateL( EAknSignalWcdmaIndicatorOff ); iSignalNotify->SetHsdpaStateL( EAknSignalHsdpaIndicatorOff); + TRACES( RDebug::Print(_L("CSysApAppUi::SetSignalIndicatorL: gan off" ) ) ); + iSignalNotify->SetUmaStateL( EAknSignalUmaIndicatorOff ); } else { - // The device is in Online Mode - switch ( networkMode ) - { - case ESysApGSM: - SetSignalIndicatorGsmL(); - break; - - case ESysApWCDMA: - SetSignalIndicatorWcdmaL(); - break; - - default: - break; + if( iSysApGanHandler && iSysApGanHandler->IsInGanMode() ) + { + // Enter GAN: set GAN signal bar + SetSignalIndicatorGanL(); + iGanEnabled = ETrue; + } + else + { + if( iGanEnabled ) + { + UpdateSignalBarsL(); + iGanEnabled = EFalse; + } + + // The device is in Online Mode + switch ( networkMode ) + { + case ESysApGSM: + SetSignalIndicatorGsmL(); + break; + + case ESysApWCDMA: + SetSignalIndicatorWcdmaL(); + break; + + default: + break; + } } } } @@ -2209,6 +2246,47 @@ } // ---------------------------------------------------------------------------- +// CSysApAppUi::SetSignalIndicatorGanL() +// ---------------------------------------------------------------------------- +void CSysApAppUi::SetSignalIndicatorGanL() + { + TRACES( RDebug::Print(_L("CSysApAppUi::SetSignalIndicatorGanL: available" ) ) ); + + TInt gprsStatus( 0 ); + gprsStatus = StateOfProperty( KUidSystemCategory, KPSUidGprsStatusValue ); + + TRACES( RDebug::Print( _L("CSysApAppUi::SetSignalIndicatorGanL gprsStatus: %d" ), gprsStatus ) ); + + switch ( gprsStatus ) + { + case EPSGprsContextActive: + iSignalNotify->SetUmaStateL( EAknSignalUmaIndicatorContext ); + break; + + case EPSGprsContextActivating: + iSignalNotify->SetUmaStateL( EAknSignalUmaIndicatorEstablishingContext ); + break; + + case EPSGprsSuspend: + iSignalNotify->SetUmaStateL( EAknSignalUmaIndicatorSuspended ); + break; + + case EPSGprsAttach: + iSignalNotify->SetUmaStateL( EAknSignalUmaIndicatorAttached ); + break; + + case EPSGprsMultibleContextActive: + iSignalNotify->SetUmaStateL( EAknSignalUmaIndicatorMultipdp ); + break; + + case EPSGprsUnattached: + default: + iSignalNotify->SetUmaStateL( EAknSignalUmaIndicatorAvailable ); + break; + } + } + +// ---------------------------------------------------------------------------- // CSysApAppUi::HandleGprsNotesL() // ----------------------------------------------------------------------------