hsappkeyhandler/src/hsappkeyplugin.cpp
changeset 107 b34d53f6acdf
parent 102 8b8b34fa9751
child 112 dbfb5e38438b
equal deleted inserted replaced
106:e78d6e055a5b 107:b34d53f6acdf
    22 #include <apgcli.h>
    22 #include <apgcli.h>
    23 #include <e32property.h>
    23 #include <e32property.h>
    24 #include <hb/hbcore/hbdevicedialogsymbian.h>
    24 #include <hb/hbcore/hbdevicedialogsymbian.h>
    25 #include <hb/hbcore/hbsymbianvariant.h> 
    25 #include <hb/hbcore/hbsymbianvariant.h> 
    26 #include <tspropertydefs.h>
    26 #include <tspropertydefs.h>
       
    27 #include <afactivitylauncher.h>
       
    28 #include <homescreendomainpskeys.h>
    27 #include "hsappkeyplugin.h"
    29 #include "hsappkeyplugin.h"
    28 
    30 
    29 const TUid KHSAppUid  = { 0x20022F35 };
    31 _LIT(KHsActivactionUri, "appto://20022F35?activityname=HsIdleView");
       
    32 _LIT(KAppLibActivactionUri, "appto://20022F35?activityname=AppLibMainView");
    30 _LIT(KTsPluginName, "com.nokia.taskswitcher.tsdevicedialogplugin/1.0");
    33 _LIT(KTsPluginName, "com.nokia.taskswitcher.tsdevicedialogplugin/1.0");
    31 
    34 
    32 
    35 
    33 // ======== MEMBER FUNCTIONS ========
    36 // ======== MEMBER FUNCTIONS ========
    34 
    37 
   130 // ---------------------------------------------------------------------------
   133 // ---------------------------------------------------------------------------
   131 // 
   134 // 
   132 // ---------------------------------------------------------------------------
   135 // ---------------------------------------------------------------------------
   133 //
   136 //
   134 void CHsAppKeyPlugin::HandleShortPressL()
   137 void CHsAppKeyPlugin::HandleShortPressL()
   135 {    
   138 {   
   136     RWsSession& ws = iEikEnv->WsSession();
   139     RApaLsSession apaLsSession;
   137     TApaTaskList appList(ws);
   140     CleanupClosePushL(apaLsSession);
   138     TApaTask task = appList.FindApp(KHSAppUid);
   141     User::LeaveIfError(apaLsSession.Connect());
   139 
   142     CAfActivityLauncher *activityEnabler = 
   140     if (task.Exists()) {
   143         CAfActivityLauncher::NewLC(apaLsSession, 
   141         task.BringToForeground();
   144                                    iEikEnv->WsSession());
   142     } else {        
   145     TInt state(0);
   143         RApaLsSession apaLsSession;
   146     RProperty::Get(KHsCategoryUid, KHsCategoryStateKey, state);
   144         User::LeaveIfError(apaLsSession.Connect());
   147     if (state == EHomeScreenIdleState) {
   145         CleanupClosePushL(apaLsSession);
   148         activityEnabler->launchActivityL(KAppLibActivactionUri);
   146         
   149     } else {
   147         TApaAppInfo appInfo;
   150         activityEnabler->launchActivityL(KHsActivactionUri);
   148         apaLsSession.GetAppInfo(appInfo, KHSAppUid );
   151     }    
   149         
   152     CleanupStack::PopAndDestroy(activityEnabler);
   150         CApaCommandLine *cmdLine = CApaCommandLine::NewLC();
   153     CleanupStack::PopAndDestroy(&apaLsSession);
   151         cmdLine->SetExecutableNameL(appInfo.iFullName);
       
   152         User::LeaveIfError( apaLsSession.StartApp(*cmdLine));
       
   153     
       
   154         CleanupStack::PopAndDestroy(cmdLine);
       
   155         CleanupStack::PopAndDestroy(&apaLsSession);
       
   156     }
       
   157     delete mDialog;
   154     delete mDialog;
   158     mDialog =0;
   155     mDialog =0;
   159 }
   156 }
   160 
   157 
   161 // ---------------------------------------------------------------------------
   158 // ---------------------------------------------------------------------------