--- 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;
}