--- 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 <secui.h>
#include <settingsinternalcrkeys.h>
+#include "sysapganhandler.h"
#include <AknNotifierController.h>
#include <eikappui.h>
#include <es_enum.h>
@@ -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()
// ----------------------------------------------------------------------------