diff -r ae54820ef82c -r 245df5276b97 iaupdate/IAD/backgroundchecker/src/iaupdatebgrefreshtimer.cpp --- a/iaupdate/IAD/backgroundchecker/src/iaupdatebgrefreshtimer.cpp Tue Jul 06 14:23:31 2010 +0300 +++ b/iaupdate/IAD/backgroundchecker/src/iaupdatebgrefreshtimer.cpp Wed Aug 18 09:55:45 2010 +0300 @@ -43,7 +43,6 @@ //MACROS _LIT8( KRefreshFromNetworkDenied, "1" ); _LIT(KIAUpdateLauncherExe, "iaupdatelauncher.exe" ); -_LIT8( KFirstTimeCase, "0" ); //CONSTANTS const TUint KIADUpdateLauncherUid( 0x2001FE2F ); @@ -81,6 +80,8 @@ iSoftNotification = CIAUpdateBGSoftNotification::NewL( this ); + iIndicatorNotifyHandler = CIAUpdateBGNotifyHandler::NewL(); + // loc: initialize localisation text loader /* TBool res = HbTextResolverSymbian::Init(KLocFile, KLocFilePath); @@ -110,6 +111,7 @@ delete iControllerFile; delete iInternalFile; delete iSoftNotification; + delete iIndicatorNotifyHandler; } @@ -119,7 +121,11 @@ void CIAUpdateBGTimer::StartProcessL() { FLOG("[bgchecker] StartProcessL"); - + + // start listening indicator remove + iIndicatorNotifyHandler->StartListeningL( this ); + + iMode = ModeL(); switch ( iMode ) @@ -255,10 +261,16 @@ case ERetryMode: { - // Check if indicator should be shown - + // Should indicator be shown ? + TInt entries = NrOfIndicatorEntries(); + if ( entries ) + { + iSoftNotification->SetNrOfUpdates( entries ); + iSoftNotification->ShowIndicatorL(); + } StartUpdatesCheckingL(); + break; } @@ -445,7 +457,6 @@ return err; } - // ---------------------------------------------------------- // CIAUpdateBGTimer::ModeL() // ---------------------------------------------------------- @@ -466,6 +477,25 @@ return err; } +// ---------------------------------------------------------- +// CIAUpdateBGTimer::NrOfIndicatorEntries() +// ---------------------------------------------------------- +TInt CIAUpdateBGTimer::NrOfIndicatorEntries() + { + iInternalFile->ReadControllerDataL(); + return iInternalFile->NrOfIndicatorEntries(); + } + + +// ---------------------------------------------------------- +// CIAUpdateBGTimer::SetNrOfIndicatorEntriesL() +// ---------------------------------------------------------- +TInt CIAUpdateBGTimer::SetNrOfIndicatorEntriesL( TInt aEntries ) + { + iInternalFile->SetNrOfIndicatorEntries( aEntries ); + TRAPD( err,iInternalFile->WriteControllerDataL() ); + return err; + } // ---------------------------------------------------------- // CIAUpdateBGTimer::RetryTimesL() @@ -1222,7 +1252,9 @@ } else { - //accepted, launch iad + //accepted, clear indicator entries + SetNrOfIndicatorEntriesL( 0 ); + // start IAD StartIaupdateL(); } break; @@ -1386,9 +1418,10 @@ // CleanupStack::PopAndDestroy( titleText ); // CleanupStack::PopAndDestroy( titleText ); - // Set number of updates + // Set number of updates for dialog and internal file iSoftNotification->SetNrOfUpdates( aNrOfUpdates ); - + SetNrOfIndicatorEntriesL( aNrOfUpdates ); + iSoftNotification->ShowNotificationL(); FLOG("[bgchecker] LaunchNotificationL 1"); @@ -1538,8 +1571,27 @@ iSoftNotification = NULL; } + if ( iIndicatorNotifyHandler ) + { + delete iIndicatorNotifyHandler; + iIndicatorNotifyHandler = NULL; + } + CActiveScheduler::Stop(); FLOG("[bgchecker] Shutdown() end"); + } +// --------------------------------------------------------------------------- +// CIAUpdateBGTimer::HandleIndicatorRemoveL() +// --------------------------------------------------------------------------- +// +void CIAUpdateBGTimer::HandleIndicatorRemoveL() + { + // remove indicator from indicator menu + iSoftNotification->RemoveIndicatorL(); + + //clear nr of indicator entries in internal file + SetNrOfIndicatorEntriesL( 0 ); } + // End of file