|
1 /* |
|
2 * Copyright (c) 2006-2007 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: Handles tutorial mode resources and dialog showing |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 // INCLUDE FILES |
|
20 #include <featmgr.h> |
|
21 |
|
22 #include <avkon.hrh> |
|
23 |
|
24 #include <aknSDData.h> |
|
25 |
|
26 #include <StringLoader.h> |
|
27 |
|
28 #include <vuivoicerecognition.rsg> |
|
29 |
|
30 #include "vuivoicerecognition.hrh" |
|
31 |
|
32 #include "vuicglobalnote.h" |
|
33 |
|
34 #include "rubydebug.h" |
|
35 |
|
36 // ----------------------------------------------------------------------------- |
|
37 // CGlobalNote::NewL |
|
38 // Two-phased constructor. |
|
39 // ----------------------------------------------------------------------------- |
|
40 // |
|
41 CGlobalNote* CGlobalNote::NewL() |
|
42 { |
|
43 CGlobalNote* self = new (ELeave) CGlobalNote(); |
|
44 CleanupStack::PushL( self ); |
|
45 self->ConstructL(); |
|
46 CleanupStack::Pop( self ); |
|
47 return self; |
|
48 } |
|
49 |
|
50 // Destructor |
|
51 CGlobalNote::~CGlobalNote() |
|
52 { |
|
53 RUBY_DEBUG0( "CGlobalNote::~CGlobalNote START" ); |
|
54 |
|
55 TRAP_IGNORE( DismissGlobalNoteL() ); |
|
56 |
|
57 delete iNote; |
|
58 |
|
59 RUBY_DEBUG0( "CGlobalNote::~CGlobalNote EXIT" ); |
|
60 } |
|
61 |
|
62 // ----------------------------------------------------------------------------- |
|
63 // CGlobalNote::DisplayGlobalNoteL |
|
64 // ----------------------------------------------------------------------------- |
|
65 // |
|
66 void CGlobalNote::DisplayGlobalNoteL( TGlobalNoteState aState ) |
|
67 { |
|
68 RUBY_DEBUG_BLOCK( "CGlobalNote::DisplayGlobalNoteL" ); |
|
69 |
|
70 switch( aState ) |
|
71 { |
|
72 case ECallInProgress: |
|
73 DisplayGlobalNoteL( EAknGlobalInformationNote, R_TEXT_CALL_IN_PROGRESS, |
|
74 SecondaryDisplay::ECmdShowCallInProgressNote ); |
|
75 break; |
|
76 |
|
77 case ESystemError: |
|
78 DisplayGlobalNoteL( EAknGlobalErrorNote, R_TEXT_VOICE_SYSTEM_ERROR, |
|
79 SecondaryDisplay::ECmdShowVoiceSystemErrorNote ); |
|
80 break; |
|
81 |
|
82 case ENoTag: |
|
83 DisplayGlobalNoteL( EAknGlobalInformationNote, R_TEXT_VOICE_NO_TAG, |
|
84 SecondaryDisplay::ECmdShowVoiceNoTagNote ); |
|
85 break; |
|
86 |
|
87 case ENoMatchPermanent: |
|
88 DisplayGlobalNoteL( EAknGlobalPermanentNote, R_TEXT_VOICE_NO_MATCHES, |
|
89 SecondaryDisplay::ECmdShowVoiceNoMatchesNote, |
|
90 EMbmAvkonQgn_note_voice, |
|
91 EMbmAvkonQgn_note_voice_mask ); |
|
92 break; |
|
93 |
|
94 case ENotRecognizedPermanent: |
|
95 DisplayGlobalNoteL( EAknGlobalPermanentNote, R_TEXT_VOICE_SYSTEM_ERROR, |
|
96 SecondaryDisplay::ECmdShowVoiceNotRecognizedNote, |
|
97 EMbmAvkonQgn_note_error, |
|
98 EMbmAvkonQgn_note_error_mask ); |
|
99 break; |
|
100 |
|
101 case ENoMemory: |
|
102 DisplayGlobalNoteL( EAknGlobalErrorNote, R_QTN_VC_MEMORY_LOW, |
|
103 SecondaryDisplay::ECmdVoiceNoNote ); |
|
104 break; |
|
105 default: |
|
106 RUBY_ERROR0( "CGlobalNote::DisplayGlobalNoteL - Invalid state" ); |
|
107 break; |
|
108 } |
|
109 } |
|
110 |
|
111 // ----------------------------------------------------------------------------- |
|
112 // CGlobalNote::DismissGlobalNoteL |
|
113 // ----------------------------------------------------------------------------- |
|
114 // |
|
115 void CGlobalNote::DismissGlobalNoteL() |
|
116 { |
|
117 RUBY_DEBUG_BLOCK( "CGlobalNote::DismissGlobalNoteL" ); |
|
118 |
|
119 // Dismiss message dialog |
|
120 iNote->CancelNoteL( iNoteId ); |
|
121 } |
|
122 |
|
123 // ----------------------------------------------------------------------------- |
|
124 // CGlobalNote::CGlobalNote |
|
125 // C++ default constructor can NOT contain any code, that |
|
126 // might leave. |
|
127 // ----------------------------------------------------------------------------- |
|
128 // |
|
129 CGlobalNote::CGlobalNote() |
|
130 { |
|
131 // Nothing |
|
132 } |
|
133 |
|
134 // ----------------------------------------------------------------------------- |
|
135 // CGlobalNote::ConstructL |
|
136 // Symbian 2nd phase constructor can leave. |
|
137 // ----------------------------------------------------------------------------- |
|
138 // |
|
139 void CGlobalNote::ConstructL() |
|
140 { |
|
141 RUBY_DEBUG_BLOCK( "CGlobalNote::ConstructL" ); |
|
142 |
|
143 iNote = CAknGlobalNote::NewL(); |
|
144 } |
|
145 |
|
146 // --------------------------------------------------------- |
|
147 // CGlobalNote::DisplayGlobalNoteL |
|
148 // Displays a global note |
|
149 // --------------------------------------------------------- |
|
150 // |
|
151 void CGlobalNote::DisplayGlobalNoteL( TAknGlobalNoteType aNoteType, |
|
152 TInt aMsgId, |
|
153 SecondaryDisplay::TVUISecondaryDisplayDialogs aDialog, |
|
154 TMifAvkon aIcon, |
|
155 TMifAvkon aIconMask ) |
|
156 { |
|
157 RUBY_DEBUG_BLOCK( "CGlobalNote::DisplayGlobalNoteL" ); |
|
158 |
|
159 HBufC* noteText = StringLoader::LoadLC( aMsgId, CCoeEnv::Static() ); |
|
160 DisplayGlobalNoteL( aNoteType, noteText, aDialog, aIcon, aIconMask ); |
|
161 CleanupStack::PopAndDestroy( noteText ); |
|
162 } |
|
163 |
|
164 |
|
165 // --------------------------------------------------------- |
|
166 // CGlobalNote::DisplayGlobalNoteL |
|
167 // Displays a global note |
|
168 // --------------------------------------------------------- |
|
169 // |
|
170 void CGlobalNote::DisplayGlobalNoteL( TAknGlobalNoteType aNoteType, |
|
171 HBufC* aNoteText, |
|
172 SecondaryDisplay::TVUISecondaryDisplayDialogs aDialog, |
|
173 TMifAvkon aIcon, |
|
174 TMifAvkon aIconMask ) |
|
175 { |
|
176 RUBY_DEBUG_BLOCK( "CGlobalNote::DisplayGlobalNoteL" ); |
|
177 |
|
178 if ( FeatureManager::FeatureSupported( KFeatureIdCoverDisplay ) && |
|
179 aDialog != SecondaryDisplay::ECmdVoiceNoNote ) |
|
180 { |
|
181 CAknSDData* sddata = CAknSDData::NewL( SecondaryDisplay::KCatVoiceUi, |
|
182 aDialog, |
|
183 KNullDesC8 ); |
|
184 iNote->SetSecondaryDisplayData( sddata ); |
|
185 } |
|
186 |
|
187 if ( aIcon && aIconMask ) |
|
188 { |
|
189 iNote->SetGraphic( aIcon, aIconMask ); |
|
190 } |
|
191 |
|
192 iNote->SetTone( EAvkonSIDNoSound ); |
|
193 iNoteId = iNote->ShowNoteL( aNoteType, *aNoteText ); |
|
194 } |
|
195 |
|
196 // End of File |
|
197 |