phonebookui/Speeddial/VPbkControlInc/speeddialprivate.h
branchRCL_3
changeset 20 f4a778e096c2
child 21 9da50d567e3c
equal deleted inserted replaced
19:5b6f26637ad3 20:f4a778e096c2
       
     1 /*
       
     2 * Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:     This file contains the definition of CSpdiaDialogs class.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 
       
    21 
       
    22 #ifndef SPEEDDIALPRIVATE_H
       
    23 #define SPEEDDIALPRIVATE_H
       
    24 
       
    25 #include <e32base.h>
       
    26 #include <coecntrl.h>
       
    27 #include <MPbk2ImageOperationObservers.h>
       
    28 #include <MVPbkSingleContactOperationObserver.h>
       
    29 #include <MVPbkContactFindObserver.h>
       
    30 #include <MVPbkContactAttributeManager.h>
       
    31 
       
    32 #include <MVPbkStoreContact.h>
       
    33 #include <AknUtils.h>
       
    34 
       
    35 #include <CPbk2ImageManager.h>
       
    36 #include <MVPbkContactViewObserver.h>
       
    37 
       
    38 #include <AiwCommon.h>
       
    39 #include <AiwContactSelectionDataTypes.h>
       
    40 #include <AiwContactAssignDataTypes.h>
       
    41 
       
    42 #include <MVPbkContactStoreObserver.h>
       
    43 #include <MVPbkContactObserver.h>
       
    44 #include "CVPbkContactManager.h"
       
    45 #include "centralrepository.h"
       
    46 
       
    47 // Forward Declarations
       
    48 class TSpdiaIndexDataVPbk;
       
    49 class CSpdiaGridVPbk;
       
    50 class CAknGrid;
       
    51 class CAknQueryDialog;
       
    52 class CSpdiaGridDlgVPbk;
       
    53 class CVPbkSpeedDialAttribute;
       
    54 class CVPbkContactLinkArray;
       
    55 class TPbk2IconId;
       
    56 class MVPbkContactAttribute;
       
    57 class CAiwServiceHandler;
       
    58 class MRefreshObserver;
       
    59 class TXspIconHelper;
       
    60 
       
    61 const TInt KArraySize =9;
       
    62 //for the timebeing..
       
    63 #define KErrCancelled 0x99
       
    64 
       
    65 NONSHARABLE_CLASS( CSpeedDialPrivate ) : public CCoeControl, public MPbk2ImageGetObserver,
       
    66 										 public MVPbkSingleContactOperationObserver,
       
    67 										 public MVPbkSetAttributeObserver,
       
    68 										 public MVPbkContactFindObserver,
       
    69 										 public MVPbkContactStoreObserver,
       
    70 										 public MAiwNotifyCallback,
       
    71 										 public MVPbkContactObserver
       
    72 										 
       
    73 {
       
    74 public:
       
    75 
       
    76 		enum eSpeedDialState
       
    77 		{
       
    78 			STATE_IDLE = 0,
       
    79 			STATE_INITIAL,
       
    80 			STATE_CONTACTCHANGE,
       
    81 			STATE_ASSIGN,
       
    82 			STATE_REMOVE	
       
    83 		};
       
    84 		
       
    85 		 // The type of the caller application.
       
    86 	    enum TGridUse
       
    87 	    {
       
    88 	    	EGridUse,               // SpeedDial
       
    89 	    	EGridUseAndUpdate,      // PhoneBook
       
    90 	    	EGridNoUse              // PhoneClient
       
    91 	    };
       
    92 			/**
       
    93 	    * Creates a new instace of this class.
       
    94 	    *
       
    95 	    */
       
    96 		IMPORT_C static CSpeedDialPrivate* NewL(CVPbkContactManager* aContactManager);
       
    97 			
       
    98         /**
       
    99         * The number of voice mail returned, if voice mail is assigned.
       
   100         * Note: If the location is empty, required dialog
       
   101         * will be displayed and voice mail will be defined.
       
   102         *
       
   103         * @param aNumber    reference of phone number.
       
   104         * @retunr   EFalse if user cancel or failed.
       
   105         */
       
   106         IMPORT_C TBool VoiceMailL(TDes& aNumber);
       
   107         
       
   108         /**
       
   109         * The number of voice mail returned, if voice mail is assigned.
       
   110         * Note: If the location is empty, required dialog
       
   111         * will be displayed and voice mail will be defined.
       
   112         *
       
   113         * @param aNumber    reference of phone number.
       
   114         * @retunr   EFalse if user cancel or failed.
       
   115         */
       
   116         IMPORT_C TBool ExVoiceMailL(TDes& aNumber);
       
   117         
       
   118         IMPORT_C TBool ExVideoMailL(TDes& aNumber);
       
   119         /**
       
   120         * The value converted into the index of an array from
       
   121         * the location of speeddial is returned.
       
   122         *
       
   123         * @param aDial      a location of speed dial.
       
   124         * @return   the index of a speeddial index data, if not found -1
       
   125         */
       
   126         IMPORT_C TInt Index(TInt aDial) const;
       
   127         
       
   128         /**
       
   129         * The value converted into the the location of speeddial
       
   130         * from index of an array is returned.
       
   131         *
       
   132         * @param aIndex     a index of array.
       
   133         * @return   location of speed dial(1-9), if not found -1
       
   134         */
       
   135         IMPORT_C TInt Number(TInt aIndex) const;
       
   136         
       
   137         /**
       
   138         * Returns the phone number of a speed dial contact.
       
   139         * Note: left and right spaces are removed.
       
   140         *
       
   141         * @param aIndex     a index of array.
       
   142         */
       
   143         IMPORT_C const TDesC& PhoneNumber(TInt aIndex) const;
       
   144         
       
   145           
       
   146         /**
       
   147         * Returns the thumbnail index of a grid array.
       
   148         *
       
   149         * @param aIndex     a index of array.
       
   150         */
       
   151         IMPORT_C TInt ThumbIndex(TInt aIndex) const;
       
   152         
       
   153         /**
       
   154         * Icons, thumbnails and text array for the grid are created.
       
   155         * Note: If a aIndex parameter is set, only the data of the value
       
   156         *       will be set up.
       
   157         * Note: CreateDataL() is used if App to be used is except SD.
       
   158         *
       
   159         * @param aGrid      the grid to set up
       
   160         * @param aIndex     (TInt) if <-1, All values are set up.
       
   161         */
       
   162         IMPORT_C TBool CreateGridDataL(CAknGrid* aGrid, TBool aIndex);
       
   163         
       
   164         /**
       
   165         * The position which a shadow draws is set up.
       
   166         *
       
   167         * @param aRect
       
   168         */
       
   169         IMPORT_C void SetLayout(const TRect& aRect);
       
   170         
       
   171          /**
       
   172         * Returns the position of voice mail box
       
   173         */
       
   174         IMPORT_C TInt VMBoxPosition() const;
       
   175         IMPORT_C TInt VdoMBoxPosition() const;
       
   176               
       
   177         /**
       
   178         * Returns the icon index of grid array.
       
   179         */
       
   180         IMPORT_C TInt SpdIconIndex(TInt aIndex) const;
       
   181 				
       
   182 		/**
       
   183         */
       
   184 		IMPORT_C void DeleteIconArray();
       
   185 		
       
   186 		/** 
       
   187         */
       
   188 		IMPORT_C void ReloadIconArray();
       
   189 		
       
   190 		
       
   191 		IMPORT_C CArrayPtr<CGulIcon>* IconArray() const;
       
   192 		
       
   193 		
       
   194 		IMPORT_C TInt VoiceMailType();
       
   195 		
       
   196 		/**
       
   197         * Returns last error.
       
   198         */
       
   199 		IMPORT_C TInt GetSpdCtrlLastError();
       
   200 		       
       
   201         /**
       
   202         * Draw this control
       
   203         */
       
   204         void Draw(const TRect& aRect) const;
       
   205         
       
   206         /**
       
   207         * Set size for the skin background context.
       
   208         */
       
   209         void SizeChanged();
       
   210         
       
   211         /**
       
   212         * Passes skin information when needed.
       
   213         **/
       
   214         TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
       
   215                         
       
   216         
       
   217         /**
       
   218         * Creates a grid itemArray.
       
   219         * Note: It calls, when using a grid except SDM.
       
   220         *
       
   221         * @param aGrid      the grid to set up
       
   222         * @param aUpdate    updates in an event.
       
   223         */
       
   224         TBool CreateDataL(const CAknGrid& aGrid);
       
   225         
       
   226       
       
   227       	IMPORT_C void SetUpdateFlag(TBool aFlag);
       
   228     	IMPORT_C TBool UpdateFlag();
       
   229     	IMPORT_C  void SetState(eSpeedDialState);
       
   230     	IMPORT_C  eSpeedDialState State();
       
   231     	IMPORT_C  TGridUse GridStatus();
       
   232     	IMPORT_C  void SetGridStatus(TGridUse aStatus);
       
   233     	
       
   234         /**
       
   235         * Returns type of the phone number.
       
   236         */
       
   237         IMPORT_C TInt NumberType(TInt aIndex) const;
       
   238         
       
   239         
       
   240         IMPORT_C MVPbkStoreContact* Contact(TInt aIndex);
       
   241         
       
   242         IMPORT_C HBufC* ContactTitleL( MVPbkBaseContact* aContact, TBool aUnnamed = ETrue);
       
   243         
       
   244 		
       
   245 		/**
       
   246         * Thumbnail's shadow is drawn.
       
   247         *
       
   248         * @param aGc    window gc
       
   249         */
       
   250         void DrawShadow(CWindowGc& aGc) const;
       
   251         
       
   252        	/**
       
   253         * Internal rutine to check if pop up has to be shown
       
   254         * to enable the One-Key-Dialling setting.
       
   255         * @return   bool value of one key calling status on or off.
       
   256         */
       
   257        IMPORT_C  TBool CheckingIfPopUpNeededL( );
       
   258         
       
   259        /*********************************************************
       
   260  		********** MVPbkContactFindObserver APIs ****************
       
   261  		*********************************************************/
       
   262         
       
   263         void FindCompleteL(MVPbkContactLinkArray* aResults);
       
   264         void FindFailed(TInt aError);
       
   265         
       
   266         
       
   267          /********************************************************
       
   268  		 ********** MPbk2ImageGetObserver APIs *******************
       
   269  		 *********************************************************/
       
   270        	
       
   271        	/**
       
   272     	 * Called when image loading is completed.
       
   273          *
       
   274          * @param aOperation    The completed operation.
       
   275          * @param aBitmap       The loaded bitmap. Callee is responsible of
       
   276          *                      the bitmap.
       
   277          */
       
   278          void Pbk2ImageGetComplete(
       
   279                  MPbk2ImageOperation& aOperation,
       
   280                  CFbsBitmap* aBitmap ) ;
       
   281  
       
   282          /**
       
   283           * Called if the image loading fails.
       
   284           *
       
   285           * @param aOperation    The failed operation.
       
   286           * @param aError        Error code of the failure.
       
   287           */
       
   288          void Pbk2ImageGetFailed(
       
   289                  MPbk2ImageOperation& aOperation,
       
   290                  TInt aError );
       
   291         
       
   292         /*********************************************************
       
   293  		 ****** MVPbkSetAttributeObserver APIs *******************
       
   294  		 *********************************************************/
       
   295         
       
   296         /**
       
   297         * Attribute operation completed.
       
   298         * @param aOperation    Contact operation that was completed.
       
   299         */
       
   300         void AttributeOperationComplete(
       
   301              MVPbkContactOperationBase& aOperation) ;
       
   302              
       
   303         /**
       
   304         * Attribute operation failed.
       
   305         * @param aOperation    Contact operation that failed.
       
   306         * @param aError        Error code.
       
   307         */
       
   308          void AttributeOperationFailed(
       
   309              MVPbkContactOperationBase& aOperation, TInt aError) ;
       
   310 
       
   311 		 /*********************************************************
       
   312  		 ****** MVPbkSingleContactOperationObserver APIs **********
       
   313  		 **********************************************************/
       
   314                         
       
   315     	/* Called when operation is completed.
       
   316       	*
       
   317       	* @param aOperation the completed operation.
       
   318       	* @param aContact  the contact returned by the operation.
       
   319       	*                  Client must take the ownership immediately.
       
   320       	*
       
   321       	*                  !!! NOTICE !!!
       
   322       	*                  If you use Cleanupstack for MVPbkStoreContact
       
   323       	*                  Use MVPbkStoreContact::PushL or
       
   324       	*                  CleanupDeletePushL from e32base.h.
       
   325       	*                  (Do Not Use CleanupStack::PushL(TAny*) because
       
   326       	*                  then the virtual destructor of the M-class
       
   327       	*                  won't be called when the object is deleted).
       
   328       	*/
       
   329       void VPbkSingleContactOperationComplete(
       
   330              MVPbkContactOperationBase& aOperation,
       
   331              MVPbkStoreContact* aContact);
       
   332 
       
   333          /**
       
   334           * Called if the operation fails.
       
   335           *
       
   336           * @param aOperation    the failed operation.
       
   337           * @param aError        error code of the failure.
       
   338           */
       
   339          void VPbkSingleContactOperationFailed(
       
   340                  MVPbkContactOperationBase& aOperation, 
       
   341                  TInt aError);
       
   342  		
       
   343  	   /**********************************************************
       
   344  		**************** MAiwNotifyCallback APIs******************
       
   345  		**********************************************************/
       
   346         TInt HandleNotifyL(
       
   347 		        TInt aCmdId,
       
   348 		        TInt aEventId,
       
   349 		        CAiwGenericParamList& aEventParamList,
       
   350 		        const CAiwGenericParamList& aInParamList);
       
   351 		
       
   352 	   /**********************************************************
       
   353  		**************** MAiwNotifyCallback APIs******************
       
   354  		**********************************************************/       
       
   355         void StoreReady(MVPbkContactStore& aContactStore);
       
   356         void StoreUnavailable(MVPbkContactStore& aContactStore, TInt aReason);
       
   357         void HandleStoreEventL(
       
   358                 MVPbkContactStore& aContactStore, 
       
   359                 TVPbkContactStoreEvent aStoreEvent);
       
   360                 
       
   361    	   /**********************************************************
       
   362  		**************** MVPbkContactObserver APIs****************
       
   363  		**********************************************************/               
       
   364         void ContactOperationCompleted(TContactOpResult aResult);
       
   365         void ContactOperationFailed(TContactOp aOpCode, TInt aErrorCode, 
       
   366         							TBool aErrorNotified);
       
   367  		/**********************************************************
       
   368  		 ********************* Public APIs*************************
       
   369  		 **********************************************************/
       
   370 	
       
   371 		/**
       
   372 	    * Shows a selection grid dialog for assigning a speed dial.
       
   373 	    * After selecting the index from the grid, speed dial will be set for
       
   374 	    * the given contact.
       
   375 	    *
       
   376 	    * @param aContactLink Contact link pointing to contact and field.
       
   377 	    * @param aIndex On return contains the index where speed dial was assigned to.
       
   378 	    * @return ETrue if all dialgs were accepted.
       
   379 	    */
       
   380        	IMPORT_C TInt ShowAssign( MVPbkContactLink& aContactLink, TInt& aIndex );
       
   381 	 	/**
       
   382 	    * Shows necessary dialog(s) to assign a contact to the given speed dial
       
   383 	    * index. After accepting the dialogs and selecting the contact, speed dial
       
   384 	    * will be set to the given index.
       
   385 	    *
       
   386 	    * @param aIndex Speed dial index.
       
   387 	    * @param aContactLink On return contains the contact, for which the speed dial was assigned to.
       
   388 	    * @return ETrue if all dialgs were accepted.
       
   389 	    */
       
   390 	    IMPORT_C TInt ShowAssign( TInt aIndex, MVPbkContactLink*& aContactLink );
       
   391 	    
       
   392 	    /**
       
   393 	    * Shows necessary dialog(s) to remove a speed dial from the given index. 
       
   394 	    * After accepting the dialog(s), speed dial will be removed from the index. 
       
   395 	    *
       
   396 	    * @param aIndex Index of the speed dial to be removed.
       
   397 	    * @return ETrue if all dialgos were accepted.
       
   398 	    */
       
   399 	    IMPORT_C TInt ShowRemove( TInt aIndex );
       
   400 	    
       
   401 	    /**
       
   402         * Method is used to notify the cancel event
       
   403         * 
       
   404         * @return  KErrNone if Cancel is successful.
       
   405         */
       
   406 	    IMPORT_C TBool Cancel();
       
   407 	    /**
       
   408         * D'tor
       
   409         * 
       
   410         */
       
   411 	        
       
   412 	    IMPORT_C ~CSpeedDialPrivate();
       
   413 	    /**
       
   414         * Retirves the Email Field attribute value
       
   415         * 
       
   416         */
       
   417 	          
       
   418 	    IMPORT_C HBufC* EMail(MVPbkStoreContact* aContact);
       
   419         /**
       
   420         * GetWait,monitors the Asynchronous behaviour upon client side
       
   421         * 
       
   422         */
       
   423         
       
   424         IMPORT_C CActiveSchedulerWait* GetWait();
       
   425 
       
   426         /**
       
   427          * Set the refresh observer.
       
   428          * @param aObserver   the observer for refreshment.
       
   429          */
       
   430         IMPORT_C void SetRefreshObserver( MRefreshObserver* aObserver );
       
   431         
       
   432         /**
       
   433          * Set Current Grid Index
       
   434          * @param aCurrentGridIndex the current grid index.
       
   435          */
       
   436         IMPORT_C void SetCurrentGridIndex( TInt aCurrentGridIndex );
       
   437         
       
   438         /**
       
   439          * Set Current iGrid and iIconArray as Null
       
   440          */        
       
   441         IMPORT_C void SetGridDataAsNull();
       
   442 private:
       
   443 
       
   444         /**
       
   445         * Index data are initialized.
       
   446         */
       
   447         void InitIndexDataL();
       
   448         
       
   449         /**
       
   450         * Creates Item's descriptor for Grid.
       
   451         *
       
   452         * @param aSdmData   reference to the data currently used.
       
   453         * @returen  a buffer containing the descriptor text.
       
   454         */
       
   455         HBufC* CreateItemDescriptorLC(const TSpdiaIndexDataVPbk& aSdmData);
       
   456                  
       
   457                           
       
   458         /**
       
   459         * A descriptor is added to a text.
       
   460         *
       
   461         * @param aSdmData   reference to the data currently used.
       
   462         * @param aText      the text for storing
       
   463         */
       
   464         void AppendTextL(const TSpdiaIndexDataVPbk& aSdmData, TPtr& aText);
       
   465         
       
   466   
       
   467                         
       
   468         /**
       
   469         * Operations to a CPbk2ImageManager are set.
       
   470         * Note: call GetImageAsyncL().
       
   471         */
       
   472         void SetOperationsL();
       
   473         
       
   474         /**
       
   475         * Updates data set to match index of the owned index data array.
       
   476         */
       
   477         TBool UpdateIndexDataL(TInt aIndex);
       
   478         
       
   479         /**
       
   480         * Creates icon data for SDM control data by the data of parameters.
       
   481         *
       
   482         * @param aIndex             a index of array.
       
   483         * @param aSdmData           reference to the data currently used.
       
   484         * @param aSetUpdateThumb    thumbnail load start parameter set in index data
       
   485         */
       
   486         TBool CreateIndexIconL(TInt aIndex, TSpdiaIndexDataVPbk& aSdmData,
       
   487                             TBool aSetUpdateThumb);
       
   488                             
       
   489         /**
       
   490         * The position on the array that a grid uses from
       
   491         * an item and a phone number is returned.
       
   492         *
       
   493         * @param aItem      contacd item
       
   494         * @param aDial      phone number
       
   495         */
       
   496         //TInt IconPositionL( TInt aDial, TInt& aFieldId);
       
   497         
       
   498         /**
       
   499         * Speeddial index data is changed by the data of parameters.
       
   500         *
       
   501         * @param aIndex     a index of array.
       
   502         * @param aSdmData   reference to the data currently used.
       
   503         */
       
   504         void ChangeIndexDataL(TInt aIndex, const TSpdiaIndexDataVPbk& aSdmData);
       
   505         
       
   506         /**
       
   507         * Searches icon of grid array for a match.
       
   508         *
       
   509         * @param aId     phone book icon id to match to.
       
   510         * @return   the matching index, -1 if not found.
       
   511         */
       
   512       
       
   513       	TInt FindIconIndex( TInt aId, MVPbkStoreContactField* aField );
       
   514 
       
   515 
       
   516 		/**
       
   517         * Gets Item's descriptor for Grid.
       
   518         *
       
   519         * @param aIndex     a index of array.
       
   520         * @param aSdmData   reference to the data currently used.
       
   521         * @return   a buffer containing the descriptor text.
       
   522         */
       
   523         HBufC* ItemDescriptorLC(TInt aIndex, const TSpdiaIndexDataVPbk& aSdmData);       
       
   524         
       
   525         /**
       
   526         * The data of items are added to an array.
       
   527         *
       
   528         * @param aArray
       
   529         */
       
   530         void SetItemDataL(CDesCArray& aArray);
       
   531         
       
   532         /**
       
   533         * Show note when the contact is in using.
       
   534         *
       
   535         * @param aResourceId    reaource id of the string to prompt.
       
   536         */
       
   537         void ShowNoteL( TInt aResourceId );
       
   538         
       
   539 		/**
       
   540         * From MContactDbObserver, Handles an event of type aEventType.
       
   541         */
       
   542   //      void HandleDatabaseEventL(TContactDbObserverEvent aEvent);
       
   543         
       
   544          /*********************************************************
       
   545  		 * 				Thumb operations 						  *
       
   546  		 **********************************************************/
       
   547                
       
   548         /**
       
   549         * Gets actual size of thumbnial to be drawn.
       
   550         * @return  size of thumbnail.
       
   551         */
       
   552         
       
   553         TSize GetThumbnailSize();
       
   554         /**
       
   555         * Returns the thumbnail type.
       
   556         *
       
   557         * @param aIndex     a index of array.
       
   558         */
       
   559         TInt ThumbType(TInt aIndex) const;
       
   560                        
       
   561         /**
       
   562         * Returns the thumbnail size.
       
   563         *
       
   564         * @param aIndex     a index of array.
       
   565         */
       
   566         TSize ThumbSize(TInt aIndex) const;
       
   567         
       
   568         /**
       
   569         * Returns the type from a size of thumbnail.
       
   570         *
       
   571         * @param aSize  a thumbnail size
       
   572         */
       
   573         TInt ConvThumbType(const TSize& aSize) const; 
       
   574         
       
   575         /**
       
   576         * The descriptor for thumbnail is added.
       
   577         *
       
   578         * @param aSdmData           reference to the data currently used.
       
   579         * @param aText
       
   580         * @param aFixedLocation
       
   581         */
       
   582         void AppendThumbnail(const TSpdiaIndexDataVPbk& aSdmData,
       
   583                             TPtr& aText,
       
   584                             TBool aFixedLocation);
       
   585                                           
       
   586                             
       
   587 	    /*********************************************************
       
   588 		*					Construction 						 *
       
   589 		**********************************************************/   
       
   590         CSpeedDialPrivate(CVPbkContactManager* aContactManager);
       
   591     	void ConstructL();
       
   592     	
       
   593     	/**
       
   594         * A text array that a grid has is erased.
       
   595         */
       
   596         void ResetArray();
       
   597     	
       
   598     	/**
       
   599         * Speeddial index data is set by the data of parameters.
       
   600         *
       
   601         * @param aIndex     a index of array.
       
   602         * @param aSdmData   reference to the data currently used.
       
   603         */
       
   604         void SetIndexDataL(TInt aIndex, TSpdiaIndexDataVPbk& aSdmData);
       
   605         
       
   606         TInt HasImageOperation(MPbk2ImageOperation& aOperation);
       
   607         
       
   608         TInt  HasOperation(MVPbkContactOperationBase* aContactOpertion);
       
   609         
       
   610         TBool CheckSpaceBelowCriticalLevelL();
       
   611         
       
   612         void ExecuteSingleEntryFetchL(TInt aIndex,
       
   613         TAiwSingleEntrySelectionDataV2 aData,
       
   614         const TDesC& aUri1 = KNullDesC );
       
   615         
       
   616         void ExecuteSingleEntryAssignL(TInt aIndex,
       
   617         AiwContactAssign::TAiwContactAttributeAssignDataV1 aData);
       
   618     
       
   619     	TInt SetIconArrayL(CArrayPtrFlat<CGulIcon>* aArray);
       
   620     	TInt CreateIndexIconsL( CArrayPtrFlat<CGulIcon>* aArray );
       
   621     	void InitializeArray();
       
   622     	void CreateFieldIconsL(CArrayPtrFlat<CGulIcon>* aArray);
       
   623     	
       
   624     	TBool AssignSpeedDialL(TInt aIndex);
       
   625     	TBool RemoveSpeedDialL(TInt aIndex);
       
   626     	
       
   627     	void SetSpeedDialIndexL(MVPbkStoreContact* aContact);
       
   628     	void Wait();
       
   629         void WaitFetchMail();
       
   630     	void Release();
       
   631         void ReleaseFetchMail();
       
   632     	
       
   633     	void SetDetails(TInt aIndex);
       
   634     	
       
   635     	// Change to TInt from TBool for more value
       
   636     	TInt FindInSpeedDialContacts(MVPbkContactLink* aContactLink);
       
   637     	// TBool FindInSpeedDialContacts(MVPbkContactLink* aContactLink);
       
   638     	
       
   639     	TBool CheckContactAssignedFromPhoneBookL(MVPbkContactLink* aContactLink);
       
   640     	
       
   641     	TBool ShowAssignL( MVPbkContactLink& aContactLink, TInt& aIndex );
       
   642 	    TBool ShowAssignL( TInt aIndex, MVPbkContactLink*& aContactLink );
       
   643 	    TBool ShowRemoveL( TInt aIndex );
       
   644 	    
       
   645 	    void InitBmpArray();
       
   646     	    
       
   647 	private:
       
   648 		void Pbk2ImageGetCompleteL(
       
   649                  MPbk2ImageOperation& aOperation,
       
   650                  CFbsBitmap* aBitmap ) ;
       
   651                  
       
   652         void ReplaceNonGraphicCharacters(TDes& aText, TText aChar);
       
   653  	
       
   654  	private:
       
   655  	
       
   656     TGridUse iGridUsed;
       
   657     CArrayPtrFlat<CGulIcon>* iIconArray;
       
   658     TAknLayoutRect icellLayout[KArraySize];
       
   659     CArrayFixFlat<TAknLayoutRect>* iShadowLayout;     // owned by this
       
   660     CAknsBasicBackgroundControlContext* iBgContext;
       
   661     
       
   662     TInt iCurrentIndex;
       
   663     TInt iType;
       
   664     TInt iError;
       
   665     TInt iSdmCount;                             // Grid cell count(Row * col)
       
   666     TBool iSaveDlg;
       
   667     TBool iPopupDialog;
       
   668 	CAknQueryDialog* iSaveChangesDialog;
       
   669 	CSpdiaGridDlgVPbk* iGridDlg; 
       
   670 	TBuf<254> iBmpPath;
       
   671 	TBool iBooleanVarForAddingDialogVariation;
       
   672 	TInt    iFileOffset;
       
   673 	
       
   674 	RArray<TAknsItemID>*iDialSkinBmp;
       
   675 	RArray<TAknsItemID>*iSkinIcons;
       
   676 
       
   677 	/* Member variables added for migration */
       
   678 	CVPbkContactManager* iContactManager;
       
   679     MVPbkContactAttributeManager* iAttributeManager;
       
   680     CPbk2ImageManager* iImageManager;
       
   681     
       
   682     const MVPbkContactLink* iContactLink;
       
   683     MVPbkStoreContact *iContact;
       
   684     MVPbkContactLinkArray* iContactLinkArray;
       
   685     const MVPbkFieldType* iThumbNailFieldType;
       
   686     
       
   687     CVPbkSpeedDialAttribute* iSpeedDial;
       
   688     
       
   689     eSpeedDialState iState;
       
   690     
       
   691     TBool iRetrieveComplete;
       
   692     TBool iOperationComplete;
       
   693     TBool iFetchmailComplete;
       
   694     TBool iFetchAll;
       
   695     TBool iUpdateFlag;
       
   696     TBool iFetchmail;
       
   697         
       
   698 	CAknGrid* iGrid;	 
       
   699 	CArrayFixFlat<TSpdiaIndexDataVPbk>* iSdmArray;  // owned by this
       
   700 	CPbk2ImageManager* aImageManager;
       
   701 	CActiveSchedulerWait *iWait;
       
   702     CActiveSchedulerWait *iWaitFetchmail;
       
   703 	CAknQueryDialog* iQueryDialog;       
       
   704 	CRepository*  ivmbxvariation;
       
   705 	CRepository* ivmbxkey2;
       
   706 	TInt iVmbxkeypos;
       
   707 	TInt iVmbxsupported;
       
   708 	TBool iShowAssignCalled;
       
   709 	
       
   710 	TUint iDialBmp[9];
       
   711 	TUint iDialBmpMask[9];
       
   712     TUint iDialHindiBmp[9];
       
   713     TUint iDialHindiBmpMask[9];
       
   714     HBufC* iMail;
       
   715     TInt iVideoMail;
       
   716     CAiwServiceHandler* iServiceHandler;
       
   717 
       
   718     MRefreshObserver* iRefreshObserver;
       
   719     TBool iCancelFlag;
       
   720 
       
   721     CAknQueryDialog* iRemoveConfirmQueryDialog;
       
   722     
       
   723     RArray<TXspIconHelper> ixspIconInfoArray;
       
   724     
       
   725 };
       
   726 
       
   727 
       
   728 #endif //SPEEDDIALPRIVATE_H