idlefw/plugins/mcsplugin/handler/src/mcspluginhandler.cpp
branchRCL_3
changeset 31 8baec10861af
parent 30 a5a39a295112
--- a/idlefw/plugins/mcsplugin/handler/src/mcspluginhandler.cpp	Wed Sep 01 12:22:09 2010 +0100
+++ b/idlefw/plugins/mcsplugin/handler/src/mcspluginhandler.cpp	Tue Sep 14 21:55:16 2010 +0300
@@ -30,6 +30,7 @@
 #include <mcsmenuitem.h>
 #include <mcspluginparamval.h>
 #include <LogsUiCmdStarter.h>
+#include <APGCLI.H>
 
 // User includes
 #include "mcsplugincompletedoperation.h"
@@ -39,10 +40,13 @@
 // Constants
 _LIT( KMenuTypeShortcut, "menu:shortcut" ); ///< Menu folder type.
 _LIT( KMenuAttrParamLogs, "logs:dialed" );
+_LIT( KMenuAttrProfiles, "profiles" );
 
 /** Argument value for parameter*/
 _LIT( KMenuAttrParam, "param" );
 
+const TUid KProfilesAppUid = { 0x100058F8 };
+
 #define KMCSCmailUidValue 0x2001E277
 #define KMCSCmailMailboxDefaultViewIdValue 0x1
 #define KMCSCmailMailboxViewIdValue 0x2
@@ -248,6 +252,27 @@
         {
         LogsUiCmdStarter::CmdStartL( LogsUiCmdStarterConsts::KDialledView() );
         }
+    else if ( param.Find( KMenuAttrProfiles ) != KErrNotFound )
+        {
+        RApaLsSession apaLsSession;
+        User::LeaveIfError( apaLsSession.Connect() );
+        CleanupClosePushL( apaLsSession );
+
+        TApaAppInfo appInfo;
+        TInt retVal = apaLsSession.GetAppInfo( appInfo, KProfilesAppUid );
+
+        if ( retVal == KErrNone )
+            {
+            CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
+            cmdLine->SetExecutableNameL( appInfo.iFullName );
+            cmdLine->SetCommandL( EApaCommandRun );
+            User::LeaveIfError( apaLsSession.StartApp( *cmdLine ) );
+
+            CleanupStack::PopAndDestroy( cmdLine );
+            }
+
+        CleanupStack::PopAndDestroy( &apaLsSession );
+        }
     CleanupStack::PopAndDestroy( sendUi );
     }