idlefw/plugins/devicestatus/src/aioperatornamepublisher.cpp
branchRCL_3
changeset 19 edd621764147
parent 16 b276298d5729
--- 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;
         }