phonebookui/Phonebook2/Application/src/CPbk2StartupMonitor.cpp
branchRCL_3
changeset 9 0d28c1c5b6dd
parent 0 e686773b3f54
--- a/phonebookui/Phonebook2/Application/src/CPbk2StartupMonitor.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/Application/src/CPbk2StartupMonitor.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -108,6 +108,11 @@
          */
         void Restart();
         
+        /**
+         * Disables wait note if waiter is started.
+         */
+        void DisableWaitNote();
+        
     private: // From CTimer
         void RunL();
         TInt RunError(
@@ -126,6 +131,9 @@
         MPbk2ProcessDecorator* iDecorator;
         /// Is decorator launched
         TBool iStarted;
+        /// Own: There are exception that even if monitor is started
+        /// wait note should not be displayed.
+        TBool iDisplayWaitNote;
     };
 
 // --------------------------------------------------------------------------
@@ -165,6 +173,7 @@
     // the start up monitor.
     // Wait KOneSecond and then launch the wait note without delay.
     After( TTimeIntervalMicroSeconds32( KOneSecond ) );
+    iDisplayWaitNote = ETrue;
     }
 
 // --------------------------------------------------------------------------
@@ -193,6 +202,7 @@
         {
         iDecorator->ProcessStopped();
         }
+    iDisplayWaitNote = ETrue;
     }
 
 // --------------------------------------------------------------------------
@@ -206,6 +216,15 @@
     }
 
 // --------------------------------------------------------------------------
+// CPbk2StartupMonitor::CPbk2StartupWaiter::DisableWaitNote
+// --------------------------------------------------------------------------
+//
+void CPbk2StartupMonitor::CPbk2StartupWaiter::DisableWaitNote()
+    {
+    iDisplayWaitNote = EFalse;
+    }
+
+// --------------------------------------------------------------------------
 // CPbk2StartupMonitor::CPbk2StartupWaiter::RunL
 // --------------------------------------------------------------------------
 //
@@ -218,12 +237,13 @@
 				( R_QTN_FDN_READING_MEMORY_WAIT_NOTE, EFalse );
 		iDecorator->SetObserver(*this);
     	}
-    if( !iStarted ) // don't start twice
+    if( !iStarted && iDisplayWaitNote ) // don't start twice
     	{
 		const TInt dummy = 0; // wait note doesn't care about amount
 		iDecorator->ProcessStartedL(dummy);
 		iStarted = ETrue;
     	}
+    iDisplayWaitNote = ETrue;
     }
 
 // --------------------------------------------------------------------------
@@ -234,6 +254,7 @@
     {
     CCoeEnv::Static()->HandleError(aError);
     iStarted = EFalse;
+    iDisplayWaitNote = ETrue;
     if (iDecorator)
         {
         iDecorator->ProcessStopped();
@@ -834,4 +855,26 @@
     return nativePhoneBookView;
     }
 
+// --------------------------------------------------------------------------
+// CPbk2StartupMonitor::Extension
+// --------------------------------------------------------------------------
+//
+TAny* CPbk2StartupMonitor::StartupMonitorExtension( TUid aExtensionUid )
+    {
+    if( aExtensionUid == KPbk2StartupMonitorExtensionUid )
+        {
+        return static_cast<MPbk2StartupMonitorExtension*>( this );
+        }
+    return NULL;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2StartupMonitor::DisableWaitNote
+// --------------------------------------------------------------------------
+//
+void  CPbk2StartupMonitor::DisableMonitoring()
+    {
+    iWaiter->DisableWaitNote();
+    }
+
 // End of File