--- a/harvester/common/src/harvestereventmanager.cpp Wed Jun 09 10:09:20 2010 +0300
+++ b/harvester/common/src/harvestereventmanager.cpp Mon Jun 21 16:09:02 2010 +0300
@@ -340,8 +340,6 @@
iRegisteredObservers.AppendL( observerInfo );
- CleanupStack::Pop( observerInfo );
-
// send event if register is coming in the middle of harvesting
for( TInt i = iEventStatuses.Count(); --i >= 0; )
{
@@ -349,13 +347,31 @@
if( CheckObserverType( observerInfo->iObserverType,
eventStatus.iObserverType) )
{
- if( eventStatus.iItemsLeft > 0 )
- {
- TRAP_IGNORE( SendEventL( eventStatus.iObserverType,
- eventStatus.iCurrentState, eventStatus.iItemsLeft ) );
- }
+ TRAP_IGNORE( SendEventL( eventStatus.iObserverType,
+ eventStatus.iCurrentState, eventStatus.iItemsLeft ) );
}
}
+
+ //no events in queue, signal registered client anyways
+ if( !iEventStatuses.Count() )
+ {
+ if(observerInfo->iObserverType & EHEObserverTypeOverall)
+ {
+ SendSingleEvent(*observerInfo, EHEObserverTypeOverall, EHEStateUninitialized, 0);
+ }
+
+ if(observerInfo->iObserverType & EHEObserverTypeMMC)
+ {
+ SendSingleEvent(*observerInfo, EHEObserverTypeMMC, EHEStateUninitialized, 0);
+ }
+
+ if(observerInfo->iObserverType & EHEObserverTypePlaceholder)
+ {
+ SendSingleEvent(*observerInfo, EHEObserverTypePlaceholder, EHEStateUninitialized, 0);
+ }
+ }
+
+ CleanupStack::Pop( observerInfo );
}
EXPORT_C TInt CHarvesterEventManager::UnregisterEventObserver( const RMessage2& aMessage )