diff -r 696bfeff199e -r fa1df4b99609 messagingappbase/msgavkon/msgindicatorplugin/src/MsgWaitingObserver.cpp --- a/messagingappbase/msgavkon/msgindicatorplugin/src/MsgWaitingObserver.cpp Thu Jul 15 18:34:37 2010 +0300 +++ b/messagingappbase/msgavkon/msgindicatorplugin/src/MsgWaitingObserver.cpp Thu Aug 19 09:51:11 2010 +0300 @@ -18,6 +18,7 @@ #include +#include #include "MsgWaitingObserver.h" #include "msgindicatorpluginlog.h" #include "msgindicatorpluginimplementation.h" @@ -169,19 +170,21 @@ MSGPLUGINLOGGER_WRITE_FORMAT( "::UpdateIndicatorStatus: Fax count %d", iMsgWaiting.iFaxMsgs ); iMsgWaiting = iMsgWaitingPckg(); - - if(iMsgWaiting.iDisplayStatus & RMobilePhone::KDisplayVoicemailActive) + if(!CheckSupressNotificationSettingL()) { - if ( !iIndicatorPlugin.IsALSSupported() ) - { - MSGPLUGINLOGGER_WRITE( "iIndicatorPlugin.UpdateTextL( EAknIndicatorVoiceMailWaiting )"); - iIndicatorPlugin.UpdateL( EAknIndicatorVoiceMailWaiting ); - } - else - { - MSGPLUGINLOGGER_WRITE( "iIndicatorPlugin.UpdateTextL( EAknIndicatorVoiceMailWaitingOnLine1 )"); - iIndicatorPlugin.UpdateL( EAknIndicatorVoiceMailWaitingOnLine1 ); - } + if(iMsgWaiting.iDisplayStatus & RMobilePhone::KDisplayVoicemailActive) + { + if ( !iIndicatorPlugin.IsALSSupported() ) + { + MSGPLUGINLOGGER_WRITE( "iIndicatorPlugin.UpdateTextL( EAknIndicatorVoiceMailWaiting )"); + iIndicatorPlugin.UpdateL( EAknIndicatorVoiceMailWaiting ); + } + else + { + MSGPLUGINLOGGER_WRITE( "iIndicatorPlugin.UpdateTextL( EAknIndicatorVoiceMailWaitingOnLine1 )"); + iIndicatorPlugin.UpdateL( EAknIndicatorVoiceMailWaitingOnLine1 ); + } + } } if ( iMsgWaiting.iDisplayStatus & RMobilePhone::KDisplayAuxVoicemailActive ) { @@ -194,5 +197,29 @@ iIndicatorPlugin.UpdateL( EAknIndicatorFaxMessage ); } } - +// ------------------------------------------------------------------- +// Check the KMuiuSupressAllNotificationConfiguration value +// ------------------------------------------------------------------- +// +TBool CWaitingObserver::CheckSupressNotificationSettingL() +{ + TBool result = EFalse; + TInt value = 0; + CRepository* repository = NULL; + + TRAPD( err, repository = CRepository::NewL( KCRUidMuiuMessagingConfiguration ) ); + if( err == KErrNone && repository != NULL ) + { + CleanupStack::PushL( repository ); + err = repository->Get( KMuiuSupressAllNotificationConfiguration, value ); + + if(err == KErrNone && (value & KMuiuNotificationSupressedForVoiceMail )) + { + result = ETrue; + } + } + MSGPLUGINLOGGER_WRITE_FORMAT( "CWaitingObserver: SupressNotification %d", result ); + CleanupStack::PopAndDestroy( repository ); + return result; +} // End of File