phonebookui/Phonebook2/xSPExtensionManager/src/CxSPViewActivator.cpp
branchRCL_3
changeset 58 d4f567ce2e7c
parent 0 e686773b3f54
child 64 c1e8ba0c2b16
--- a/phonebookui/Phonebook2/xSPExtensionManager/src/CxSPViewActivator.cpp	Thu Jul 15 18:22:55 2010 +0300
+++ b/phonebookui/Phonebook2/xSPExtensionManager/src/CxSPViewActivator.cpp	Thu Aug 19 09:41:07 2010 +0300
@@ -21,6 +21,7 @@
 #include "CxSPViewActivator.h"
 #include <CxSPViewData.h>
 #include "CxSPViewInfo.h"
+#include <Pbk2ViewId.hrh>
 
 
 // System includes
@@ -137,17 +138,34 @@
             newViewId = viewID;
             }
     
-        aMessage.Complete(err);
+        // If err is KErrNone or KErrNotFound, complete client's request with KErrNone. 
+        // The reason is even if client passed an invalid view id to xsp server, 
+        // the server will launch phonebook namelist view instead. 
+        if ( KErrNone == err || KErrNotFound == err )
+        	{
+            aMessage.Complete( KErrNone );
+        	}
+        else
+        	{
+            aMessage.Complete( err );
+        	}
     
-        if(err == KErrNone)
+        if( err == KErrNone )
             {
             // Make view id
-            const TVwsViewId viewId(TUid::Uid(KUid), TUid::Uid(newViewId));
+            const TVwsViewId viewId( TUid::Uid( KUid ), TUid::Uid( newViewId ) );
             // Activate the view
             static_cast<CAknViewAppUi*>(CCoeEnv::Static()->AppUi())->ActivateViewL(
                                                         viewId, CPbk2ViewState::Uid(), *paramBuf);
             }
-    
+        else if ( err == KErrNotFound )
+        	{
+            // Activate phonebook namelist view if valid view id can't be found
+            const TVwsViewId viewId( TUid::Uid( KUid ), TUid::Uid( EPbk2NamesListViewId ) );
+            static_cast<CAknViewAppUi*>( CCoeEnv::Static()->AppUi() )->ActivateViewL(
+                                                        viewId, CPbk2ViewState::Uid(), *paramBuf );        
+        	}
+        
         CleanupStack::PopAndDestroy();  // paramBuf;
         }
     }