diff -r aabf2c525e0f -r 9f56a4e1b8ab uifw/AvKon/src/AknSignalIcon.cpp --- 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 #include +#include +#include + #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