--- a/uifw/AvKon/src/AknSignalIcon.cpp Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/AknSignalIcon.cpp Mon Mar 15 12:41:34 2010 +0200
@@ -24,6 +24,9 @@
#include <avkon.mbg>
#include <AknTasHook.h>
+#include <AvkonInternalCRKeys.h>
+#include <centralrepository.h>
+
#include "AknSignalIcon.h"
#include "aknconsts.h"
#include "AknUtils.h"
@@ -162,6 +165,93 @@
return iColorIndex;
}
+void CAknSignalIcon::LoadATTIconL(TInt aIconState,
+ TInt aIconColorIndex )
+ {
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ CFbsBitmap* bitmap = NULL;
+ CFbsBitmap* mask = NULL;
+
+ switch ( aIconState )
+ {
+ case EAknSignalHsdpaIndicatorAvailable:
+ AknsUtils::CreateColorIconL( skin,
+ KAknsIIDQgnIndiSignalWcdmaIcon,
+ KAknsIIDQsnIconColors,
+ aIconColorIndex,
+ bitmap,
+ mask,
+ AknIconUtils::AvkonIconFileName(),
+ EMbmAvkonQgn_indi_signal_wcdma_icon,
+ EMbmAvkonQgn_indi_signal_wcdma_icon_mask,
+ KRgbGray );
+ break;
+ case EAknSignalHsdpaIndicatorAttached:
+ case EAknSignalHsdpaIndicatorEstablishingContext:
+ AknsUtils::CreateColorIconL( skin,
+ KAknsIIDQgnIndiSignalWcdmaAttach,
+ KAknsIIDQsnIconColors,
+ aIconColorIndex,
+ bitmap,
+ mask,
+ AknIconUtils::AvkonIconFileName(),
+ EMbmAvkonQgn_indi_signal_wcdma_attach,
+ EMbmAvkonQgn_indi_signal_wcdma_attach_mask,
+ KRgbGray );
+ break;
+ case EAknSignalHsdpaIndicatorContext:
+ AknsUtils::CreateColorIconL( skin,
+ KAknsIIDQgnIndiSignalWcdmaContext,
+ KAknsIIDQsnIconColors,
+ aIconColorIndex,
+ bitmap,
+ mask,
+ AknIconUtils::AvkonIconFileName(),
+ EMbmAvkonQgn_indi_signal_wcdma_context,
+ EMbmAvkonQgn_indi_signal_wcdma_context_mask,
+ KRgbGray );
+ break;
+ case EAknSignalHsdpaIndicatorMultipdp:
+ AknsUtils::CreateColorIconL( skin,
+ KAknsIIDQgnIndiSignalWcdmaMultipdp,
+ KAknsIIDQsnIconColors,
+ aIconColorIndex,
+ bitmap,
+ mask,
+ AknIconUtils::AvkonIconFileName(),
+ EMbmAvkonQgn_indi_signal_wcdma_multipdp,
+ EMbmAvkonQgn_indi_signal_wcdma_multipdp_mask,
+ KRgbGray );
+ break;
+ case EAknSignalHsdpaIndicatorSuspended:
+ AknsUtils::CreateColorIconL( skin,
+ KAknsIIDQgnIndiSignalWcdmaSuspended,
+ KAknsIIDQsnIconColors,
+ aIconColorIndex,
+ bitmap,
+ mask,
+ AknIconUtils::AvkonIconFileName(),
+ EMbmAvkonQgn_indi_signal_wcdma_suspended,
+ EMbmAvkonQgn_indi_signal_wcdma_suspended_mask,
+ KRgbGray );
+ break;
+ }
+ if ( bitmap )
+ {
+ delete iSignalIcon;
+ iSignalIcon = bitmap;
+ AknIconUtils::SetSize( iSignalIcon, Size() );
+ }
+
+ if ( mask )
+ {
+ delete iSignalIconMask;
+ iSignalIconMask = mask;
+ }
+
+ iIconState = aIconState;
+ iColorIndex = aIconColorIndex;
+ }
// ---------------------------------------------------------------------------
// CAknSignalIcon::LoadIconL
// ---------------------------------------------------------------------------
@@ -182,6 +272,8 @@
CFbsBitmap* bitmap = NULL;
CFbsBitmap* mask = NULL;
+ TBool isHsdpa = ( aIconState >= EAknSignalHsdpaIndicatorAvailable
+ && aIconState <= EAknSignalHsdpaIndicatorMultipdp );
if ( iOffLine )
{
// Offline mode is not an actual signal state in the signal icon
@@ -200,6 +292,11 @@
}
else
{
+ if( iATTEnable && isHsdpa)
+ {
+ LoadATTIconL( aIconState, aIconColorIndex );
+ return;
+ }
switch( aIconState )
{
// Old legacy GPRS icons.
@@ -678,6 +775,17 @@
//
void CAknSignalIcon::ConstructL()
{
+ CRepository* repo = CRepository::NewL( KCRUidAvkon );
+
+ TInt aTTEnabled = EFalse;
+ iATTEnable = EFalse;
+ TInt crErr = repo->Get( KAknATTSignalIconEnable, aTTEnabled );
+ if ( crErr == KErrNone )
+ {
+ iATTEnable = aTTEnabled;
+ }
+ delete repo;
+ repo = NULL;
}
// End of File