21 // INCLUDES |
21 // INCLUDES |
22 #include "ccappcommlauncherheaders.h" |
22 #include "ccappcommlauncherheaders.h" |
23 #include <Pbk2Commands.hrh> |
23 #include <Pbk2Commands.hrh> |
24 #include "ccappstatuscontrol.h" |
24 #include "ccappstatuscontrol.h" |
25 #include <aknlongtapdetector.h> |
25 #include <aknlongtapdetector.h> |
|
26 #include <akninputblock.h> |
26 |
27 |
27 class CAknsBasicBackgroundControlContext; |
28 class CAknsBasicBackgroundControlContext; |
28 class CAknPreviewPopUpController; |
29 class CAknPreviewPopUpController; |
29 class CCCAppCommLauncherPlugin; |
30 class CCCAppCommLauncherPlugin; |
30 class CCCAppCommLauncherHeaderControl; |
31 class CCCAppCommLauncherHeaderControl; |
50 class CCCAppCommLauncherContainer : |
52 class CCCAppCommLauncherContainer : |
51 public CCCAppViewPluginAknContainer, |
53 public CCCAppViewPluginAknContainer, |
52 public MEikListBoxObserver, |
54 public MEikListBoxObserver, |
53 public MCCAppContactHandlerNotifier, |
55 public MCCAppContactHandlerNotifier, |
54 public MCCAStatusControlObserver, |
56 public MCCAStatusControlObserver, |
55 public MAknLongTapDetectorCallBack |
57 public MAknLongTapDetectorCallBack, |
|
58 public MAknInputBlockCancelHandler |
56 { |
59 { |
57 public: // constructor and destructor |
60 public: // constructor and destructor |
58 |
61 |
59 /** |
62 /** |
60 * CCCAppCommLauncherContainer. |
63 * CCCAppCommLauncherContainer. |
277 /* |
281 /* |
278 * Hides/shows the status control based on Extensionfactory plugins |
282 * Hides/shows the status control based on Extensionfactory plugins |
279 * availability. |
283 * availability. |
280 */ |
284 */ |
281 void DoCheckExtensionFactoryL(); |
285 void DoCheckExtensionFactoryL(); |
|
286 |
|
287 /* |
|
288 * Launches find on map contact action |
|
289 */ |
|
290 void HandleFindOnMapContactActionL(); |
|
291 |
|
292 /* |
|
293 * Launches generic contact action |
|
294 * @param aActionType - Contact Action |
|
295 */ |
|
296 void HandleGenericContactActionL( |
|
297 VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector aActionType ); |
|
298 |
|
299 /* |
|
300 * Used to check whether a Contact has only one number for initiating VoiceCall. |
|
301 * Fills selection to aSelectedField if only one field is possible |
|
302 * Only works with VoiceCall Contact Action Type |
|
303 * |
|
304 * @param aActionType - Contact ActionType. Here it should be EVoiceCallSelector |
|
305 * @param aSelectedField - Data of the selected field. (Phonenumber) |
|
306 * @return - returns ETrue, if more than one field is present for the contact which is capable |
|
307 * of VoiceCall. |
|
308 * In this case we need to show the field selection dialog |
|
309 * wherein the user will choose the number for which he wants to start VoiceCall. |
|
310 * |
|
311 * returns EFalse - Straight Forward. Voice call can be made directly, |
|
312 * since we have only once number for this contact. |
|
313 * The number to which VoiceCall needs to be made is filled in the aSelectedField. |
|
314 * |
|
315 */ |
|
316 TBool IsVoiceCallFieldSelectionAmbiguous( |
|
317 VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector aActionType, |
|
318 TPtrC& aSelectedField ); |
|
319 |
|
320 /* |
|
321 * Returns true if field has only one item |
|
322 * @param CCmsContactField |
|
323 */ |
|
324 TBool HasFieldOnlyOneItem( const CCmsContactField& field ) const; |
|
325 |
|
326 /* |
|
327 * Returns true if field is voice call type |
|
328 * @param CCmsContactField |
|
329 */ |
|
330 TBool IsVoiceCallType( const CCmsContactField& field ) const; |
|
331 |
|
332 /* |
|
333 * Returns true if contact has single address |
|
334 * @param aActionType - Contact ActionType. |
|
335 * @param aHandler - Contact Handler |
|
336 */ |
|
337 TBool HasContactSingleAddress( |
|
338 VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector aActionType, |
|
339 CCCAppCommLauncherContactHandler& aHandler ); |
|
340 |
|
341 |
|
342 /* |
|
343 * Executes contact action service with field selection |
|
344 * |
|
345 * @param aActionType - Contact ActionType. |
|
346 * @param aContactIdentifier - Contact Link |
|
347 * @param aFullName - Contact's Name |
|
348 */ |
|
349 void ExecuteContactActionServiceWithFieldSelectionL( |
|
350 VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector aActionType, |
|
351 TDesC8& aContactIdentifier, |
|
352 TDesC& aFullName ); |
|
353 |
|
354 /* |
|
355 * Executes contact actions service without field selections |
|
356 * |
|
357 * @param aActionType - Contact ActionType. |
|
358 * @param aContactIdentifier - Contact Link |
|
359 * @param aFullName - Contact's Name |
|
360 * @param aSelectedField - Contains the number to which |
|
361 * VoiceCall needs to be established. |
|
362 */ |
|
363 void ExecuteContactActionServiceWithoutFieldSelectionL( |
|
364 VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector aActionType, |
|
365 TDesC8& aContactIdentifier, |
|
366 TDesC& aFullName, |
|
367 TDesC& aSelectedField ); |
|
368 |
|
369 /* |
|
370 * From MAknInputBlockCancelHandler |
|
371 */ |
|
372 void AknInputBlockCancel(); |
|
373 |
|
374 /** |
|
375 * Removes the Input Blocker and makes the contianer regain |
|
376 * user input, key and pen |
|
377 */ |
|
378 void RemoveInputBlocker(); |
|
379 |
|
380 /** |
|
381 * Blocks user input, key and pen, from reaching |
|
382 * container untill the issue of communication is complete |
|
383 */ |
|
384 void SetInputBlockerL(); |
282 |
385 |
283 private: // Constructors |
386 private: // Constructors |
284 |
387 |
285 /** |
388 /** |
286 * ConstructL |
389 * ConstructL |