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 // --------------------------------------------------------------------------- |