activityfw/activitydatabase/hsactivitydbserver/src/activityobservertask.cpp
changeset 80 397d00875918
parent 73 4bc7b118b3df
child 83 156f692b1687
--- 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<TInt> 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<TInt> observerdId;
+               mMsg.ReadL(KRequestAppIdOffset, observerdId);
 
         TPckgBuf<TInt> 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;
     }
 }