phoneclientserver/callui/inc/cauiengine/cauidialogs.h
changeset 33 8d5d7fcf9b59
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/callui/inc/cauiengine/cauidialogs.h	Wed Jul 21 18:26:52 2010 +0300
@@ -0,0 +1,212 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Provides engine implementation for CallUI.
+*
+*/
+
+
+#ifndef __CAUIDIALOGS_H__
+#define __CAUIDIALOGS_H__
+
+// Includes
+
+#include "phclttypes.h" 
+#include "cauivoipextension.h" 
+
+// Forward declarations
+
+class CCaUiEngine;
+class MCaUiReconnectQueryObserver;
+class CPhCntMatcher;
+class CAknGlobalListQuery;
+class CCaUiGlnActiveObject;
+class CCaUiReConQueryInformation;
+class CAknGlobalNote;
+class CCaUiNoteActiveObject;
+
+
+// Contants
+
+// The first item in list query (CCaUiQuery).
+const TInt KCallUiVoiceCall = 0;
+
+// The second item in list query (CCaUiQuery).
+const TInt KCallUiVideoCall = 1;
+
+// The third item in list query (CCaUiQuery).
+const TInt KCallUiInternetCall = 2;
+
+// Priority of the note
+const TInt KNoVideoSupportNotePriority = 3500;
+
+// Timeout for note launch.
+const TInt KCaUiEngNoteTimeout = 3000000;  // 3s
+
+NONSHARABLE_CLASS( CCaUiDialogs )
+    : public CBase
+    {
+    
+    public:
+    
+        /**
+        * Two-phased constructor.
+        * @return an instance of CCaUiDialogs.
+        */
+        static CCaUiDialogs* NewL( CCaUiEngine& aCaUiEngine );
+    
+        /**
+        * Destructor.
+        */
+        virtual ~CCaUiDialogs();
+    
+        /**
+        * Launch a query whether video call will be created with long 
+        * press of Send key
+        * 
+        * @return The selection user made
+        */
+        TInt QueryVideoCallDefaultActionL();
+        
+        /**
+        * Launch a list query asking what type of call the caller wants
+        * to make.
+        * 
+        * @param aCallType The call type chosen by user in query.
+        * @return ETrue if query was successful, EFalse otherwise.
+        */
+        TBool LaunchCreateListQueryL( TPhCltCallType& aCallType );
+        
+        /**
+        * Launch the qtn.tel.no.video.network information note.
+        * 
+        * @see CCaUiEngApi::LaunchNoNetSupNoteL().
+        */
+        void LaunchNoNetSupNoteL();
+        
+        /**
+        * Launch reconnect confirmation query.
+        * 
+        * @see CCaUiEngApi::LaunchReconConfQueryL().
+        * @param aAlias The alias corresponding the number. Can be empty TPtrC.
+        */
+        void LaunchReconConfQueryL( 
+            MCaUiReconnectQueryObserver& aObserver,
+            CPhCntMatcher* aPhCntMatcher,
+            const TPtrC aPhoneNumber,
+            const TBool aIncludeVideoCallOption,
+            const TPtrC aAlias );
+        
+        /**
+        * Cancel reconnect query.
+        * 
+        * @see CCaUiEngApi::CancelReconConfQuery().
+        */
+        void CancelReconConfQuery();
+        
+        /**
+        * Cancel note and reconnect query.
+        * 
+        * @see CCaUiEngApi::CancelNoteAndReconConfQuery().
+        */
+        void CancelNoteAndReconConfQuery();
+        
+        /**
+        * Launch note and reconnect confirmation query.
+        * 
+        * @see CCaUiEngApi::LaunchNoteAndReconConfQueryL().
+        * @param aAlias The alias corresponding the number. Can be empty TPtrC.
+        */
+        void LaunchNoteAndReconConfQueryL( 
+            MCaUiReconnectQueryObserver& aObserver,
+            CPhCntMatcher* aPhCntMatcher,
+            const TPtrC aPhoneNumber,
+            const TBool aIncludeVideoCallOption,
+            const TPtrC aNoteText,
+            const TPtrC aAlias );
+        
+        /**
+        * Check if reconfigure query is ongoing.
+        * @since 3.2
+        * @return TBool, ETrue if query is ongoing 
+        *                EFalse if not ongoing.
+        */
+        TBool IsReconfQueryOngoing();
+        
+        /**
+        * Set reconfigure query is ongoing.
+        * @since 5.0
+        */
+        void SetReconfQueryOngoing( TBool aOngoing );
+    
+    private:
+        
+        /**
+        * C++ default constructor.
+        */
+        CCaUiDialogs( CCaUiEngine& aCaUiEngine );
+        
+        /**
+        * Symbian 2nd phase constructor
+        */
+        void ConstructL();
+        
+        /**
+        * Fill list query items
+        * 
+        * @since 5.0
+        * @param aTextArray
+        * @param aMappingList
+        */
+        void FillListQueryItemsL( 
+            CDesCArray& aTextArray, 
+            CListMappingArray& aMappingList );
+        
+        /**
+        * Handle note expiration call back.
+        * 
+        * @param aAny This pointer.
+        * @return KErrNone if successful, Symbian error code otherwise.
+        */
+        static TInt DoPerformNoteLaunchCallBackL( TAny* aAny );
+        
+    public: // data
+        
+        // tkuuva, create getter/setter
+        //TBool                           iReconfQueryOngoing;
+        
+    private: //data
+        
+        // The reconnect global list query.
+        CAknGlobalListQuery*            iReconListQuery;
+        
+        // The active object to handle reconnect query results.
+        CCaUiGlnActiveObject*           iReconActObject;
+        
+        CCaUiEngine&                    iCaUiEngine;
+        
+        // Owned timer for note launch time-out.
+        CPeriodic*                      iNoteTimer;
+        
+        // Storage for Reconnect query information.
+        CCaUiReConQueryInformation*     iReConQueryInformation;
+        
+        // The qtn.tel.no.video.network note shown to the user.
+        CAknInformationNote*            iInfoNote;
+                
+        // ReconfQuery ongoing flag
+        TBool                           iReconfQueryOngoing;
+        
+    };
+
+#endif // __CAUIDIALOGS_H__