phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/inc/ccappcommlaunchercontainer.h
branchRCL_3
changeset 58 d4f567ce2e7c
parent 45 34879f5cfc63
child 64 c1e8ba0c2b16
equal deleted inserted replaced
57:2666d9724c76 58:d4f567ce2e7c
    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;
    34 class CSpbContentProvider;
    35 class CSpbContentProvider;
    35 class MCCAViewLauncher;
    36 class MCCAViewLauncher;
    36 class CCCAExtensionFactory;
    37 class CCCAExtensionFactory;
    37 class CCCAppCommLauncherCustomListBox;
    38 class CCCAppCommLauncherCustomListBox;
    38 class CCCaFactoryExtensionNotifier;
    39 class CCCaFactoryExtensionNotifier;
       
    40 class CAknInputBlock;
    39 
    41 
    40 /**
    42 /**
    41  * Class implementing CCAppCommLauncher -container for controls
    43  * Class implementing CCAppCommLauncher -container for controls
    42  *
    44  *
    43  *  @code
    45  *  @code
    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.
   225      * Get the amount of the list box
   228      * Get the amount of the list box
   226      *
   229      *
   227      * @return the amount of the list box.
   230      * @return the amount of the list box.
   228      * @since S60 v5.0
   231      * @since S60 v5.0
   229     */
   232     */
   230     const TInt GetListBoxItemAmount() const;
   233     const TInt GetListBoxItemAmount() const;    
       
   234     
   231 
   235 
   232 private: // New
   236 private: // New
   233 
   237 
   234     /**
   238     /**
   235      * Creates the listbox part and model for it
   239      * Creates the listbox part and model for it
   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
   369      */
   472      */
   370 	CCCaFactoryExtensionNotifier* iFactoryExtensionNotifier;
   473 	CCCaFactoryExtensionNotifier* iFactoryExtensionNotifier;
   371 	
   474 	
   372 	
   475 	
   373 	TBool iLongTap;
   476 	TBool iLongTap;
       
   477 	
       
   478 	/**
       
   479 	 * Owns - Input Blocker
       
   480 	 */
       
   481 	CAknInputBlock* iInputBlocker;
   374     };
   482     };
   375 
   483 
   376 #endif // __CCAPPCOMMALAUNCHERCONTAINER_H
   484 #endif // __CCAPPCOMMALAUNCHERCONTAINER_H
   377 
   485 
   378 // End of File
   486 // End of File