phoneclientserver/callui/inc/cauiengine/cauidialogs.h
author hgs
Tue, 10 Aug 2010 13:19:41 +0300
changeset 38 bc103bfb69cf
parent 33 8d5d7fcf9b59
permissions -rw-r--r--
201031_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Provides engine implementation for CallUI.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef __CAUIDIALOGS_H__
hgs
parents:
diff changeset
    20
#define __CAUIDIALOGS_H__
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
// Includes
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
#include "phclttypes.h" 
hgs
parents:
diff changeset
    25
#include "cauivoipextension.h" 
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
// Forward declarations
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
class CCaUiEngine;
hgs
parents:
diff changeset
    30
class MCaUiReconnectQueryObserver;
hgs
parents:
diff changeset
    31
class CPhCntMatcher;
hgs
parents:
diff changeset
    32
class CAknGlobalListQuery;
hgs
parents:
diff changeset
    33
class CCaUiGlnActiveObject;
hgs
parents:
diff changeset
    34
class CCaUiReConQueryInformation;
hgs
parents:
diff changeset
    35
class CAknGlobalNote;
hgs
parents:
diff changeset
    36
class CCaUiNoteActiveObject;
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
// Contants
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
// The first item in list query (CCaUiQuery).
hgs
parents:
diff changeset
    42
const TInt KCallUiVoiceCall = 0;
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
// The second item in list query (CCaUiQuery).
hgs
parents:
diff changeset
    45
const TInt KCallUiVideoCall = 1;
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
// The third item in list query (CCaUiQuery).
hgs
parents:
diff changeset
    48
const TInt KCallUiInternetCall = 2;
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
// Priority of the note
hgs
parents:
diff changeset
    51
const TInt KNoVideoSupportNotePriority = 3500;
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
// Timeout for note launch.
hgs
parents:
diff changeset
    54
const TInt KCaUiEngNoteTimeout = 3000000;  // 3s
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
NONSHARABLE_CLASS( CCaUiDialogs )
hgs
parents:
diff changeset
    57
    : public CBase
hgs
parents:
diff changeset
    58
    {
hgs
parents:
diff changeset
    59
    
hgs
parents:
diff changeset
    60
    public:
hgs
parents:
diff changeset
    61
    
hgs
parents:
diff changeset
    62
        /**
hgs
parents:
diff changeset
    63
        * Two-phased constructor.
hgs
parents:
diff changeset
    64
        * @return an instance of CCaUiDialogs.
hgs
parents:
diff changeset
    65
        */
hgs
parents:
diff changeset
    66
        static CCaUiDialogs* NewL( CCaUiEngine& aCaUiEngine );
hgs
parents:
diff changeset
    67
    
hgs
parents:
diff changeset
    68
        /**
hgs
parents:
diff changeset
    69
        * Destructor.
hgs
parents:
diff changeset
    70
        */
hgs
parents:
diff changeset
    71
        virtual ~CCaUiDialogs();
hgs
parents:
diff changeset
    72
    
hgs
parents:
diff changeset
    73
        /**
hgs
parents:
diff changeset
    74
        * Launch a query whether video call will be created with long 
hgs
parents:
diff changeset
    75
        * press of Send key
hgs
parents:
diff changeset
    76
        * 
hgs
parents:
diff changeset
    77
        * @return The selection user made
hgs
parents:
diff changeset
    78
        */
hgs
parents:
diff changeset
    79
        TInt QueryVideoCallDefaultActionL();
hgs
parents:
diff changeset
    80
        
hgs
parents:
diff changeset
    81
        /**
hgs
parents:
diff changeset
    82
        * Launch a list query asking what type of call the caller wants
hgs
parents:
diff changeset
    83
        * to make.
hgs
parents:
diff changeset
    84
        * 
hgs
parents:
diff changeset
    85
        * @param aCallType The call type chosen by user in query.
hgs
parents:
diff changeset
    86
        * @return ETrue if query was successful, EFalse otherwise.
hgs
parents:
diff changeset
    87
        */
hgs
parents:
diff changeset
    88
        TBool LaunchCreateListQueryL( TPhCltCallType& aCallType );
hgs
parents:
diff changeset
    89
        
hgs
parents:
diff changeset
    90
        /**
hgs
parents:
diff changeset
    91
        * Launch the qtn.tel.no.video.network information note.
hgs
parents:
diff changeset
    92
        * 
hgs
parents:
diff changeset
    93
        * @see CCaUiEngApi::LaunchNoNetSupNoteL().
hgs
parents:
diff changeset
    94
        */
hgs
parents:
diff changeset
    95
        void LaunchNoNetSupNoteL();
hgs
parents:
diff changeset
    96
        
hgs
parents:
diff changeset
    97
        /**
hgs
parents:
diff changeset
    98
        * Launch reconnect confirmation query.
hgs
parents:
diff changeset
    99
        * 
hgs
parents:
diff changeset
   100
        * @see CCaUiEngApi::LaunchReconConfQueryL().
hgs
parents:
diff changeset
   101
        * @param aAlias The alias corresponding the number. Can be empty TPtrC.
hgs
parents:
diff changeset
   102
        */
hgs
parents:
diff changeset
   103
        void LaunchReconConfQueryL( 
hgs
parents:
diff changeset
   104
            MCaUiReconnectQueryObserver& aObserver,
hgs
parents:
diff changeset
   105
            CPhCntMatcher* aPhCntMatcher,
hgs
parents:
diff changeset
   106
            const TPtrC aPhoneNumber,
hgs
parents:
diff changeset
   107
            const TBool aIncludeVideoCallOption,
hgs
parents:
diff changeset
   108
            const TPtrC aAlias );
hgs
parents:
diff changeset
   109
        
hgs
parents:
diff changeset
   110
        /**
hgs
parents:
diff changeset
   111
        * Cancel reconnect query.
hgs
parents:
diff changeset
   112
        * 
hgs
parents:
diff changeset
   113
        * @see CCaUiEngApi::CancelReconConfQuery().
hgs
parents:
diff changeset
   114
        */
hgs
parents:
diff changeset
   115
        void CancelReconConfQuery();
hgs
parents:
diff changeset
   116
        
hgs
parents:
diff changeset
   117
        /**
hgs
parents:
diff changeset
   118
        * Cancel note and reconnect query.
hgs
parents:
diff changeset
   119
        * 
hgs
parents:
diff changeset
   120
        * @see CCaUiEngApi::CancelNoteAndReconConfQuery().
hgs
parents:
diff changeset
   121
        */
hgs
parents:
diff changeset
   122
        void CancelNoteAndReconConfQuery();
hgs
parents:
diff changeset
   123
        
hgs
parents:
diff changeset
   124
        /**
hgs
parents:
diff changeset
   125
        * Launch note and reconnect confirmation query.
hgs
parents:
diff changeset
   126
        * 
hgs
parents:
diff changeset
   127
        * @see CCaUiEngApi::LaunchNoteAndReconConfQueryL().
hgs
parents:
diff changeset
   128
        * @param aAlias The alias corresponding the number. Can be empty TPtrC.
hgs
parents:
diff changeset
   129
        */
hgs
parents:
diff changeset
   130
        void LaunchNoteAndReconConfQueryL( 
hgs
parents:
diff changeset
   131
            MCaUiReconnectQueryObserver& aObserver,
hgs
parents:
diff changeset
   132
            CPhCntMatcher* aPhCntMatcher,
hgs
parents:
diff changeset
   133
            const TPtrC aPhoneNumber,
hgs
parents:
diff changeset
   134
            const TBool aIncludeVideoCallOption,
hgs
parents:
diff changeset
   135
            const TPtrC aNoteText,
hgs
parents:
diff changeset
   136
            const TPtrC aAlias );
hgs
parents:
diff changeset
   137
        
hgs
parents:
diff changeset
   138
        /**
hgs
parents:
diff changeset
   139
        * Check if reconfigure query is ongoing.
hgs
parents:
diff changeset
   140
        * @since 3.2
hgs
parents:
diff changeset
   141
        * @return TBool, ETrue if query is ongoing 
hgs
parents:
diff changeset
   142
        *                EFalse if not ongoing.
hgs
parents:
diff changeset
   143
        */
hgs
parents:
diff changeset
   144
        TBool IsReconfQueryOngoing();
hgs
parents:
diff changeset
   145
        
hgs
parents:
diff changeset
   146
        /**
hgs
parents:
diff changeset
   147
        * Set reconfigure query is ongoing.
hgs
parents:
diff changeset
   148
        * @since 5.0
hgs
parents:
diff changeset
   149
        */
hgs
parents:
diff changeset
   150
        void SetReconfQueryOngoing( TBool aOngoing );
hgs
parents:
diff changeset
   151
    
hgs
parents:
diff changeset
   152
    private:
hgs
parents:
diff changeset
   153
        
hgs
parents:
diff changeset
   154
        /**
hgs
parents:
diff changeset
   155
        * C++ default constructor.
hgs
parents:
diff changeset
   156
        */
hgs
parents:
diff changeset
   157
        CCaUiDialogs( CCaUiEngine& aCaUiEngine );
hgs
parents:
diff changeset
   158
        
hgs
parents:
diff changeset
   159
        /**
hgs
parents:
diff changeset
   160
        * Symbian 2nd phase constructor
hgs
parents:
diff changeset
   161
        */
hgs
parents:
diff changeset
   162
        void ConstructL();
hgs
parents:
diff changeset
   163
        
hgs
parents:
diff changeset
   164
        /**
hgs
parents:
diff changeset
   165
        * Fill list query items
hgs
parents:
diff changeset
   166
        * 
hgs
parents:
diff changeset
   167
        * @since 5.0
hgs
parents:
diff changeset
   168
        * @param aTextArray
hgs
parents:
diff changeset
   169
        * @param aMappingList
hgs
parents:
diff changeset
   170
        */
hgs
parents:
diff changeset
   171
        void FillListQueryItemsL( 
hgs
parents:
diff changeset
   172
            CDesCArray& aTextArray, 
hgs
parents:
diff changeset
   173
            CListMappingArray& aMappingList );
hgs
parents:
diff changeset
   174
        
hgs
parents:
diff changeset
   175
        /**
hgs
parents:
diff changeset
   176
        * Handle note expiration call back.
hgs
parents:
diff changeset
   177
        * 
hgs
parents:
diff changeset
   178
        * @param aAny This pointer.
hgs
parents:
diff changeset
   179
        * @return KErrNone if successful, Symbian error code otherwise.
hgs
parents:
diff changeset
   180
        */
hgs
parents:
diff changeset
   181
        static TInt DoPerformNoteLaunchCallBackL( TAny* aAny );
hgs
parents:
diff changeset
   182
        
hgs
parents:
diff changeset
   183
    public: // data
hgs
parents:
diff changeset
   184
        
hgs
parents:
diff changeset
   185
        // tkuuva, create getter/setter
hgs
parents:
diff changeset
   186
        //TBool                           iReconfQueryOngoing;
hgs
parents:
diff changeset
   187
        
hgs
parents:
diff changeset
   188
    private: //data
hgs
parents:
diff changeset
   189
        
hgs
parents:
diff changeset
   190
        // The reconnect global list query.
hgs
parents:
diff changeset
   191
        CAknGlobalListQuery*            iReconListQuery;
hgs
parents:
diff changeset
   192
        
hgs
parents:
diff changeset
   193
        // The active object to handle reconnect query results.
hgs
parents:
diff changeset
   194
        CCaUiGlnActiveObject*           iReconActObject;
hgs
parents:
diff changeset
   195
        
hgs
parents:
diff changeset
   196
        CCaUiEngine&                    iCaUiEngine;
hgs
parents:
diff changeset
   197
        
hgs
parents:
diff changeset
   198
        // Owned timer for note launch time-out.
hgs
parents:
diff changeset
   199
        CPeriodic*                      iNoteTimer;
hgs
parents:
diff changeset
   200
        
hgs
parents:
diff changeset
   201
        // Storage for Reconnect query information.
hgs
parents:
diff changeset
   202
        CCaUiReConQueryInformation*     iReConQueryInformation;
hgs
parents:
diff changeset
   203
        
hgs
parents:
diff changeset
   204
        // The qtn.tel.no.video.network note shown to the user.
hgs
parents:
diff changeset
   205
        CAknInformationNote*            iInfoNote;
hgs
parents:
diff changeset
   206
                
hgs
parents:
diff changeset
   207
        // ReconfQuery ongoing flag
hgs
parents:
diff changeset
   208
        TBool                           iReconfQueryOngoing;
hgs
parents:
diff changeset
   209
        
hgs
parents:
diff changeset
   210
    };
hgs
parents:
diff changeset
   211
hgs
parents:
diff changeset
   212
#endif // __CAUIDIALOGS_H__