diff -r b276298d5729 -r edd621764147 idlefw/plugins/devicestatus/src/aioperatornamepublisher.cpp --- a/idlefw/plugins/devicestatus/src/aioperatornamepublisher.cpp Tue Apr 27 16:57:49 2010 +0300 +++ b/idlefw/plugins/devicestatus/src/aioperatornamepublisher.cpp Tue May 11 16:30:05 2010 +0300 @@ -164,6 +164,13 @@ iBroadcaster = &aBroadcaster; } +void CAiOperatorNamePublisher::RefreshIfActiveL( TBool aClean ) + { + if ( !iSuspended ) + { + RefreshL( aClean ); + } + } void CAiOperatorNamePublisher::RefreshL( TBool aClean ) { @@ -617,7 +624,7 @@ if( !iPeriodic->IsActive() ) { iPeriodic->Start( KCleanOperationDelay, - 0, + KCleanOperationDelay, TCallBack( CleanAndShowPLMNOperationCallback, this ) ); } } @@ -630,13 +637,18 @@ if( self ) { - TRAP_IGNORE - ( - //clean - self->DoCleanOperationL(); - //show PLMN name - self->ShowNetworkIdentityNameL( ETrue ); - ); + self->iPeriodic->Cancel(); + // check if got suspended while timer was active + if ( !self->iSuspended ) + { + TRAP_IGNORE + ( + //clean + self->DoCleanOperationL(); + //show PLMN name + self->ShowNetworkIdentityNameL( ETrue ); + ); + } } return KErrNone; @@ -648,7 +660,6 @@ iPrioritizer->TryToCleanL( *iBroadcaster, EAiDeviceStatusContentNetworkIdentity, EAiServiceProviderName ); - iPeriodic->Cancel(); } @@ -674,7 +685,7 @@ if ( aContentId == EAiDeviceStatusContentNetworkIdentity ) { iSuspended = ETrue; - + iPeriodic->Cancel(); return ETrue; }