diff -r 4bc7b118b3df -r 397d00875918 activityfw/activitydatabase/hsactivitydbserver/src/activityobservertask.cpp --- a/activityfw/activitydatabase/hsactivitydbserver/src/activityobservertask.cpp Fri May 14 16:10:06 2010 +0300 +++ b/activityfw/activitydatabase/hsactivitydbserver/src/activityobservertask.cpp Thu May 27 13:11:12 2010 +0300 @@ -72,10 +72,14 @@ // void CActivityObserverTask::BroadcastReceivedL(const RMessage2& msg) { - if (WaitActivity == mMsg.Function() && - LaunchActivity == msg.Function()) { - TPckgBuf observerdId; - mMsg.ReadL(KRequestAppIdOffset, observerdId); + if(EFalse != mMsg.IsNull()) { + mGlobalStorage.Pop(this);// + mLocalStorage.Pop(this); + delete this; + } else if (WaitActivity == mMsg.Function() && + LaunchActivity == msg.Function()) { + TPckgBuf observerdId; + mMsg.ReadL(KRequestAppIdOffset, observerdId); TPckgBuf requestedId; msg.ReadL(KRequestAppIdOffset, requestedId); @@ -95,6 +99,20 @@ mGlobalStorage.Pop(this); mMsg.Complete(KErrCancel); delete this; + } else if (NotifyChange == mMsg.Function() && + CancelNotify == msg.Function() && + mMsg.Session() == msg.Session()) { + mGlobalStorage.Pop(this); + mMsg.Complete(KErrCancel); + delete this; + } else if(NotifyChange == mMsg.Function() && + (AddActivity == msg.Function() || + UpdateActivity == msg.Function() || + RemoveActivity == msg.Function() || + RemoveApplicationActivities == msg.Function())){ + mMsg.Complete(KErrNone); + mGlobalStorage.Pop(this); + delete this; } }