|
1 /* |
|
2 * Copyright (c) 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: Contains functions to show notes in UI |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 |
|
20 // INCLUDE FILES |
|
21 #include <e32base.h> |
|
22 #include <ImumUtils.rsg> |
|
23 #include <StringLoader.h> // StringLoader |
|
24 #include <aknnotewrappers.h> // CAknConfirmationNote |
|
25 #include <aknclearer.h> // CAknLocalScreenClearer |
|
26 |
|
27 #include "ImumInternalApiImpl.h" |
|
28 #include "ImumInSettingsData.h" |
|
29 #include "ImumInMailboxUtilitiesImpl.h" |
|
30 #include "IMSSettingsNoteUi.h" |
|
31 #include "EmailUtils.H" |
|
32 #include "IMASPageIds.hrh" |
|
33 #include "ImumPanic.h" |
|
34 #include "IMSSettingsBaseUi.h" |
|
35 #include "ImumUtilsLogging.h" |
|
36 #include "EmailFeatureUtils.h" |
|
37 #include "muiuflagger.h" |
|
38 |
|
39 // EXTERNAL DATA STRUCTURES |
|
40 // EXTERNAL FUNCTION PROTOTYPES |
|
41 // CONSTANTS |
|
42 // MACROS |
|
43 // LOCAL CONSTANTS AND MACROS |
|
44 // MODULE DATA STRUCTURES |
|
45 // LOCAL FUNCTION PROTOTYPES |
|
46 // FORWARD DECLARATIONS |
|
47 |
|
48 // ============================ MEMBER FUNCTIONS =============================== |
|
49 |
|
50 // ---------------------------------------------------------------------------- |
|
51 // CIMSSettingsNoteUi::CIMSSettingsNoteUi() |
|
52 // ---------------------------------------------------------------------------- |
|
53 // |
|
54 CIMSSettingsNoteUi::CIMSSettingsNoteUi( |
|
55 CImumInternalApiImpl& aMailboxApi, |
|
56 CIMSSettingsBaseUI& aDialog ) |
|
57 : |
|
58 iDialog( aDialog ), |
|
59 iMailboxApi( aMailboxApi ) |
|
60 { |
|
61 IMUM_CONTEXT( CIMSSettingsNoteUi::CIMSSettingsNoteUi, 0, KLogUi ); |
|
62 |
|
63 } |
|
64 |
|
65 // ---------------------------------------------------------------------------- |
|
66 // CIMSSettingsNoteUi::~CIMSSettingsNoteUi() |
|
67 // ---------------------------------------------------------------------------- |
|
68 // |
|
69 CIMSSettingsNoteUi::~CIMSSettingsNoteUi() |
|
70 { |
|
71 IMUM_CONTEXT( CIMSSettingsNoteUi::~CIMSSettingsNoteUi, 0, KLogUi ); |
|
72 |
|
73 } |
|
74 |
|
75 // ---------------------------------------------------------------------------- |
|
76 // CIMSSettingsNoteUi::ConstructL() |
|
77 // ---------------------------------------------------------------------------- |
|
78 // |
|
79 void CIMSSettingsNoteUi::ConstructL() |
|
80 { |
|
81 IMUM_CONTEXT( CIMSSettingsNoteUi::ConstructL, 0, KLogUi ); |
|
82 |
|
83 } |
|
84 |
|
85 // ---------------------------------------------------------------------------- |
|
86 // CIMSSettingsNoteUi::NewL() |
|
87 // ---------------------------------------------------------------------------- |
|
88 // |
|
89 CIMSSettingsNoteUi* CIMSSettingsNoteUi::NewL( |
|
90 CImumInternalApiImpl& aMailboxApi, |
|
91 CIMSSettingsBaseUI& aDialog ) |
|
92 { |
|
93 IMUM_STATIC_CONTEXT( CIMSSettingsNoteUi::NewL, 0, utils, KLogUi ); |
|
94 |
|
95 CIMSSettingsNoteUi* self = NewLC( aMailboxApi, aDialog ); |
|
96 CleanupStack::Pop( self ); |
|
97 |
|
98 return self; |
|
99 } |
|
100 |
|
101 // ---------------------------------------------------------------------------- |
|
102 // CIMSSettingsNoteUi::NewLC() |
|
103 // ---------------------------------------------------------------------------- |
|
104 // |
|
105 CIMSSettingsNoteUi* CIMSSettingsNoteUi::NewLC( |
|
106 CImumInternalApiImpl& aMailboxApi, |
|
107 CIMSSettingsBaseUI& aDialog ) |
|
108 { |
|
109 IMUM_STATIC_CONTEXT( CIMSSettingsNoteUi::NewLC, 0, utils, KLogUi ); |
|
110 |
|
111 CIMSSettingsNoteUi* self = |
|
112 new ( ELeave ) CIMSSettingsNoteUi( aMailboxApi, aDialog ); |
|
113 CleanupStack::PushL( self ); |
|
114 |
|
115 return self; |
|
116 } |
|
117 |
|
118 /****************************************************************************** |
|
119 |
|
120 STATIC FUNCTIONS |
|
121 |
|
122 ******************************************************************************/ |
|
123 |
|
124 // ---------------------------------------------------------------------------- |
|
125 // CIMSSettingsNoteUi::MakeStringLC() |
|
126 // ---------------------------------------------------------------------------- |
|
127 // |
|
128 HBufC* CIMSSettingsNoteUi::MakeStringLC( const TUint aTextResource ) |
|
129 { |
|
130 IMUM_STATIC_CONTEXT( CIMSSettingsNoteUi::MakeStringLC, 0, utils, KLogUi ); |
|
131 |
|
132 HBufC* prompt = StringLoader::LoadL( aTextResource ); |
|
133 CleanupStack::PushL( prompt ); |
|
134 |
|
135 return prompt; |
|
136 } |
|
137 |
|
138 // ---------------------------------------------------------------------------- |
|
139 // CIMSSettingsNoteUi::MakeString() |
|
140 // ---------------------------------------------------------------------------- |
|
141 // |
|
142 void CIMSSettingsNoteUi::MakeString( |
|
143 TDes& aDest, |
|
144 TInt aResourceId, |
|
145 TInt aValue ) |
|
146 { |
|
147 IMUM_STATIC_CONTEXT( CIMSSettingsNoteUi::MakeString, 0, utils, KLogUi ); |
|
148 |
|
149 // To minimize stack usage, use callers buffer to make the string instead |
|
150 // of using StringLoader::Format() and temporary buffer. |
|
151 |
|
152 // Read format string from resource |
|
153 aDest.Zero(); |
|
154 StringLoader::Load( aDest, aResourceId ); |
|
155 |
|
156 // Convert integer to text representation |
|
157 TBuf<sizeof(TInt) * 4> subs; // CSI: 47 # For conversion. |
|
158 subs.AppendNum( aValue ); |
|
159 |
|
160 // Replace tag with supplied int |
|
161 _LIT(KTag, "%N"); |
|
162 MakeString( aDest, KTag, subs ); |
|
163 } |
|
164 |
|
165 // ---------------------------------------------------------------------------- |
|
166 // CIMSSettingsNoteUi::MakeString() |
|
167 // ---------------------------------------------------------------------------- |
|
168 // |
|
169 void CIMSSettingsNoteUi::MakeStringL( |
|
170 TDes& aDest, |
|
171 TInt aResourceId, |
|
172 const TDesC& aSubs ) |
|
173 { |
|
174 IMUM_STATIC_CONTEXT( CIMSSettingsNoteUi::MakeString, 0, utils, KLogUi ); |
|
175 |
|
176 HBufC* statusText = StringLoader::LoadL( |
|
177 aResourceId, |
|
178 aSubs,CCoeEnv::Static() ); |
|
179 aDest.Copy(statusText->Des()); |
|
180 delete statusText; |
|
181 } |
|
182 |
|
183 // ---------------------------------------------------------------------------- |
|
184 // CIMSSettingsNoteUi::MakeString() |
|
185 // ---------------------------------------------------------------------------- |
|
186 // |
|
187 void CIMSSettingsNoteUi::MakeString( |
|
188 TDes& aDest, |
|
189 const TDesC& aTag, |
|
190 const TDesC& aSubs ) |
|
191 { |
|
192 IMUM_STATIC_CONTEXT( CIMSSettingsNoteUi::MakeString, 0, utils, KLogUi ); |
|
193 |
|
194 // To minimize stack usage, use callers buffer to make the string instead |
|
195 // of using StringLoader::Format() and temporary buffer. |
|
196 |
|
197 // Replace tag with supplied text |
|
198 TInt pos = aDest.Find( aTag ); |
|
199 if ( pos != KErrNotFound) |
|
200 { |
|
201 aDest.Delete( pos, aTag.Length() ); |
|
202 TInt room = aDest.MaxLength() - aDest.Length(); |
|
203 TInt insertLen = aSubs.Length() <= room ? aSubs.Length():room; |
|
204 const TPtrC replacement( aSubs.Ptr(), insertLen ); |
|
205 aDest.Insert( pos, replacement ); |
|
206 } |
|
207 } |
|
208 |
|
209 // ---------------------------------------------------------------------------- |
|
210 // CIMSSettingsNoteUi::ShowQuery |
|
211 // ---------------------------------------------------------------------------- |
|
212 // |
|
213 EXPORT_C TInt CIMSSettingsNoteUi::ShowQueryL( |
|
214 const TUint aTextResource, |
|
215 const TInt aDialogResource, |
|
216 const TBool& aClearBackground, |
|
217 const CAknQueryDialog::TTone aTone ) |
|
218 { |
|
219 IMUM_STATIC_CONTEXT( CIMSSettingsNoteUi::ShowQueryL, 0, utils, KLogUi ); |
|
220 |
|
221 // Get text to be shown |
|
222 HBufC* prompt = MakeStringLC( aTextResource ); |
|
223 |
|
224 // Create dialog and execute the dialog |
|
225 TInt result = CIMSSettingsNoteUi::ShowQueryL( |
|
226 prompt->Des(), aDialogResource, aClearBackground, aTone ); |
|
227 |
|
228 CleanupStack::PopAndDestroy( prompt ); |
|
229 |
|
230 return result; |
|
231 } |
|
232 |
|
233 // ---------------------------------------------------------------------------- |
|
234 // CIMSSettingsNoteUi::ShowQuery |
|
235 // ---------------------------------------------------------------------------- |
|
236 // |
|
237 EXPORT_C TInt CIMSSettingsNoteUi::ShowQueryL( |
|
238 const TDesC& aText, |
|
239 const TInt aDialogResource, |
|
240 const TBool& aClearBackground, |
|
241 const CAknQueryDialog::TTone aTone ) |
|
242 { |
|
243 IMUM_STATIC_CONTEXT( CIMSSettingsNoteUi::ShowQueryL, 0, utils, KLogUi ); |
|
244 |
|
245 CAknLocalScreenClearer* localScreenClearer = NULL; |
|
246 if ( aClearBackground ) |
|
247 { |
|
248 localScreenClearer = CAknLocalScreenClearer::NewL( EFalse ); |
|
249 CleanupStack::PushL( localScreenClearer ); |
|
250 CEikonEnv::Static()->EikAppUi()->AddToStackL( |
|
251 localScreenClearer, ECoeStackPriorityDefault, |
|
252 ECoeStackFlagRefusesAllKeys|ECoeStackFlagRefusesFocus ); |
|
253 CleanupStack::PushL( TCleanupItem( &ScreenClearerCleanupOperation, |
|
254 localScreenClearer ) ); |
|
255 } |
|
256 |
|
257 // Create dialog and execute the dialog |
|
258 CAknQueryDialog* dlg = CAknQueryDialog::NewL( aTone ); |
|
259 TInt button = dlg->ExecuteLD( aDialogResource, aText ); |
|
260 |
|
261 if ( aClearBackground ) |
|
262 { |
|
263 CleanupStack::PopAndDestroy(); // CSI: 47 # TCleanupItem |
|
264 CleanupStack::PopAndDestroy( localScreenClearer ); |
|
265 localScreenClearer = NULL; |
|
266 } |
|
267 |
|
268 return button; |
|
269 } |
|
270 |
|
271 // ---------------------------------------------------------------------------- |
|
272 // CIMSSettingsNoteUi::ScreenClearerCleanupOperation |
|
273 // ---------------------------------------------------------------------------- |
|
274 // |
|
275 void CIMSSettingsNoteUi::ScreenClearerCleanupOperation( TAny* aScreenClearer ) |
|
276 { |
|
277 CEikonEnv::Static()->EikAppUi()->RemoveFromStack( |
|
278 static_cast<CAknLocalScreenClearer*>( aScreenClearer ) ); |
|
279 } |
|
280 |
|
281 // ---------------------------------------------------------------------------- |
|
282 // CIMSSettingsNoteUi::ShowNoteL |
|
283 // ---------------------------------------------------------------------------- |
|
284 // |
|
285 EXPORT_C void CIMSSettingsNoteUi::ShowNoteL( |
|
286 const TUint aResource, |
|
287 const TIMSNotes& aNoteType, |
|
288 const TBool aNoteWaiting ) |
|
289 { |
|
290 IMUM_STATIC_CONTEXT( CIMSSettingsNoteUi::ShowNoteL, 0, utils, KLogUi ); |
|
291 |
|
292 // Get text to be shown |
|
293 HBufC* prompt = MakeStringLC( aResource ); |
|
294 |
|
295 // Show the note |
|
296 CIMSSettingsNoteUi::ShowNoteL( *prompt, aNoteType, aNoteWaiting ); |
|
297 |
|
298 CleanupStack::PopAndDestroy( prompt ); |
|
299 } |
|
300 |
|
301 // ---------------------------------------------------------------------------- |
|
302 // CIMSSettingsNoteUi::ShowNoteL |
|
303 // ---------------------------------------------------------------------------- |
|
304 // |
|
305 EXPORT_C void CIMSSettingsNoteUi::ShowNoteL( |
|
306 const TDesC& aText, |
|
307 const TIMSNotes& aNoteType, |
|
308 const TBool aNoteWaiting ) |
|
309 { |
|
310 IMUM_STATIC_CONTEXT( CIMSSettingsNoteUi::ShowNoteL, 0, utils, KLogUi ); |
|
311 |
|
312 CAknResourceNoteDialog* note = NewNoteL( aNoteType, aNoteWaiting ); |
|
313 |
|
314 // Show the note |
|
315 note->ExecuteLD( aText ); |
|
316 } |
|
317 |
|
318 // ---------------------------------------------------------------------------- |
|
319 // CIMSSettingsNoteUi::ShowNoteL |
|
320 // ---------------------------------------------------------------------------- |
|
321 // |
|
322 EXPORT_C void CIMSSettingsNoteUi::ShowNoteL( |
|
323 TUint aResource, |
|
324 TIMSNotes aNoteType, |
|
325 TBool aNoteWaiting, |
|
326 TInt aTimeOut ) |
|
327 { |
|
328 IMUM_STATIC_CONTEXT( CIMSSettingsNoteUi::ShowNoteL, 0, utils, KLogUi ); |
|
329 |
|
330 // Get text to be shown |
|
331 HBufC* prompt = MakeStringLC( aResource ); |
|
332 |
|
333 CAknResourceNoteDialog* note = NewNoteL( aNoteType, aNoteWaiting ); |
|
334 note->SetTimeout( static_cast<CAknNoteDialog::TTimeout>( aTimeOut ) ); |
|
335 |
|
336 // Show the note |
|
337 note->ExecuteLD( *prompt ); |
|
338 |
|
339 CleanupStack::PopAndDestroy( prompt ); |
|
340 } |
|
341 |
|
342 /****************************************************************************** |
|
343 |
|
344 Error note ui |
|
345 |
|
346 ******************************************************************************/ |
|
347 |
|
348 // ---------------------------------------------------------------------------- |
|
349 // CIMSSettingsNoteUi::ShowDialog() |
|
350 // ---------------------------------------------------------------------------- |
|
351 // |
|
352 TMuiuPageEventResult CIMSSettingsNoteUi::ShowDialog( |
|
353 const CMuiuSettingBase& aBaseItem, |
|
354 const TIMSErrors aError, |
|
355 const TDesC& aNewText ) |
|
356 { |
|
357 IMUM_CONTEXT( CIMSSettingsNoteUi::ShowDialog, 0, KLogUi ); |
|
358 |
|
359 TMuiuPageEventResult result = EMuiuPageEventResultApproved; |
|
360 TRAP_IGNORE( result = SelectDialogL( aBaseItem, aError, aNewText ) ); |
|
361 /*TRAPD( err, |
|
362 // Show error note based on the id |
|
363 switch ( aBaseItem.iItemId.iUid ) |
|
364 { |
|
365 case EIMAWProtocol: |
|
366 result = ShowProtocolErrorNoteL( aError ); |
|
367 return result; |
|
368 |
|
369 case EIMASOutgoingEmailAddress: |
|
370 case EIMAWEmailAddress: |
|
371 case EIMASUserReplyTo: |
|
372 result = ShowEmailAddressErrorNoteL( aError ); |
|
373 return result; |
|
374 |
|
375 case EIMAWReceivingServer: |
|
376 case EIMAWSendingServer: |
|
377 case EIMASIncomingMailServer: |
|
378 case EIMASOutgoingMailServer: |
|
379 result = ShowServerErrorNoteL( aError ); |
|
380 return result; |
|
381 |
|
382 case EIMAWIap: |
|
383 result = ShowIapErrorNoteL( aError ); |
|
384 return result; |
|
385 |
|
386 case EIMAWMailboxName: |
|
387 result = ShowWizMailboxNameErrorNoteL( aError ); |
|
388 return result; |
|
389 |
|
390 case EIMASIncomingMailboxName: |
|
391 result = ShowSetMailboxNameErrorNoteL( aError, aNewText ); |
|
392 return result; |
|
393 |
|
394 case EIMASIncomingProtocol: |
|
395 result = ShowProtocolReadOnlyErrorNoteL( aError ); |
|
396 return result; |
|
397 |
|
398 case EIMASMailNotifications: |
|
399 case EIMASAORolling: |
|
400 result = ShowAlwaysOnlineErrorNoteL( aError ); |
|
401 return result; |
|
402 |
|
403 case EIMASIncomingUserPwd: |
|
404 case EIMASIncomingUserName: |
|
405 result = ShowAlwaysOnlineRemovalQueryL( aError ); |
|
406 return result; |
|
407 |
|
408 case EIMASLimitInbox: |
|
409 case EIMASLimitFolders: |
|
410 result = ShowFetchLimitErrorNoteL( aError ); |
|
411 return result; |
|
412 |
|
413 default: |
|
414 break; |
|
415 } |
|
416 );*/ |
|
417 |
|
418 return result; |
|
419 } |
|
420 |
|
421 // ---------------------------------------------------------------------------- |
|
422 // CIMSSettingsNoteUi::SelectDialogL() |
|
423 // ---------------------------------------------------------------------------- |
|
424 // |
|
425 TMuiuPageEventResult CIMSSettingsNoteUi::SelectDialogL( |
|
426 const CMuiuSettingBase& aBaseItem, |
|
427 const TIMSErrors aError, |
|
428 const TDesC& aNewText ) |
|
429 { |
|
430 // Show error note based on the id |
|
431 switch ( aBaseItem.iItemId.iUid ) |
|
432 { |
|
433 case EIMAWProtocol: |
|
434 return ShowProtocolErrorNoteL( aError ); |
|
435 |
|
436 case EIMASOutgoingEmailAddress: |
|
437 case EIMAWEmailAddress: |
|
438 case EIMASUserReplyTo: |
|
439 return ShowEmailAddressErrorNoteL( aError ); |
|
440 |
|
441 case EIMAWReceivingServer: |
|
442 case EIMAWSendingServer: |
|
443 case EIMASIncomingMailServer: |
|
444 case EIMASOutgoingMailServer: |
|
445 return ShowServerErrorNoteL( aError ); |
|
446 |
|
447 case EIMAWIap: |
|
448 return ShowIapErrorNoteL( aError ); |
|
449 |
|
450 case EIMAWMailboxName: |
|
451 return ShowWizMailboxNameErrorNoteL( aError ); |
|
452 |
|
453 case EIMASIncomingMailboxName: |
|
454 return ShowSetMailboxNameErrorNoteL( aError, aNewText ); |
|
455 |
|
456 case EIMASIncomingProtocol: |
|
457 return ShowProtocolReadOnlyErrorNoteL( aError ); |
|
458 |
|
459 case EIMASMailNotifications: |
|
460 case EIMASAORolling: |
|
461 return ShowAlwaysOnlineErrorNoteL( aError ); |
|
462 |
|
463 case EIMASIncomingUserPwd: |
|
464 case EIMASIncomingUserName: |
|
465 return ShowAlwaysOnlineRemovalQueryL( aError ); |
|
466 |
|
467 case EIMASLimitInbox: |
|
468 case EIMASLimitFolders: |
|
469 return ShowFetchLimitErrorNoteL( aError ); |
|
470 |
|
471 default: |
|
472 break; |
|
473 } |
|
474 |
|
475 return EMuiuPageEventResultApproved; |
|
476 } |
|
477 |
|
478 // ---------------------------------------------------------------------------- |
|
479 // CIMSSettingsNoteUi::ShowProtocolErrorNoteL() |
|
480 // ---------------------------------------------------------------------------- |
|
481 // |
|
482 TMuiuPageEventResult CIMSSettingsNoteUi::ShowProtocolErrorNoteL( |
|
483 const TIMSErrors aError ) |
|
484 { |
|
485 IMUM_CONTEXT( CIMSSettingsNoteUi::ShowProtocolErrorNoteL, 0, KLogUi ); |
|
486 |
|
487 switch ( aError ) |
|
488 { |
|
489 case EIMSItemEmpty: |
|
490 CIMSSettingsNoteUi::ShowQueryL( |
|
491 R_IMUM_WIZARD_INSERT_PROTOCOL, |
|
492 R_EMAIL_INFORMATION_QUERY, |
|
493 ETrue ); |
|
494 return EMuiuPageEventResultDisapproved; |
|
495 |
|
496 default: |
|
497 break; |
|
498 } |
|
499 |
|
500 return EMuiuPageEventResultApproved; |
|
501 } |
|
502 |
|
503 // ---------------------------------------------------------------------------- |
|
504 // CIMSSettingsNoteUi::ShowEmailAddressErrorNoteL() |
|
505 // ---------------------------------------------------------------------------- |
|
506 // |
|
507 TMuiuPageEventResult CIMSSettingsNoteUi::ShowEmailAddressErrorNoteL( |
|
508 const TIMSErrors aError ) |
|
509 { |
|
510 IMUM_CONTEXT( CIMSSettingsNoteUi::ShowEmailAddressErrorNoteL, 0, KLogUi ); |
|
511 |
|
512 // Show notes |
|
513 switch ( aError ) |
|
514 { |
|
515 // Incorrect |
|
516 case EIMSItemInvalid: |
|
517 CIMSSettingsNoteUi::ShowNoteL( |
|
518 R_IMUM_EDIT_OWN_EMAIL_ADDRESS_ERROR_TEXT, |
|
519 EIMSInformationNote, ETrue ); |
|
520 return EMuiuPageEventResultDisapproved; |
|
521 |
|
522 // Not typed |
|
523 case EIMSItemEmpty: |
|
524 CIMSSettingsNoteUi::ShowQueryL( |
|
525 R_IMUM_WIZARD_INSERT_EMAIL, |
|
526 R_EMAIL_INFORMATION_QUERY, |
|
527 ETrue ); |
|
528 return EMuiuPageEventResultDisapproved; |
|
529 |
|
530 default: |
|
531 break; |
|
532 } |
|
533 |
|
534 return EMuiuPageEventResultApproved; |
|
535 } |
|
536 |
|
537 // ---------------------------------------------------------------------------- |
|
538 // CIMSSettingsNoteUi::ShowServerErrorNoteL() |
|
539 // ---------------------------------------------------------------------------- |
|
540 // |
|
541 TMuiuPageEventResult CIMSSettingsNoteUi::ShowServerErrorNoteL( |
|
542 const TIMSErrors aError ) |
|
543 { |
|
544 IMUM_CONTEXT( CIMSSettingsNoteUi::ShowServerErrorNoteL, 0, KLogUi ); |
|
545 |
|
546 switch ( aError ) |
|
547 { |
|
548 case EIMSNoError: |
|
549 return EMuiuPageEventResultApproved; |
|
550 |
|
551 default: |
|
552 break; |
|
553 } |
|
554 |
|
555 CIMSSettingsNoteUi::ShowQueryL( |
|
556 R_IMUM_WIZARD_INSERT_SERVER_ADDRESS, |
|
557 R_EMAIL_INFORMATION_QUERY, |
|
558 ETrue ); |
|
559 return EMuiuPageEventResultDisapproved; |
|
560 } |
|
561 |
|
562 // ---------------------------------------------------------------------------- |
|
563 // CIMSSettingsNoteUi::ShowIapErrorNoteL() |
|
564 // ---------------------------------------------------------------------------- |
|
565 // |
|
566 TMuiuPageEventResult CIMSSettingsNoteUi::ShowIapErrorNoteL( |
|
567 const TIMSErrors aError ) |
|
568 { |
|
569 IMUM_CONTEXT( CIMSSettingsNoteUi::ShowIapErrorNoteL, 0, KLogUi ); |
|
570 |
|
571 switch ( aError ) |
|
572 { |
|
573 case EIMSNoError: |
|
574 return EMuiuPageEventResultApproved; |
|
575 |
|
576 default: |
|
577 break; |
|
578 } |
|
579 |
|
580 return EMuiuPageEventResultDisapproved; |
|
581 } |
|
582 |
|
583 // ---------------------------------------------------------------------------- |
|
584 // CIMSSettingsNoteUi::ShowWizMailboxNameErrorNoteL() |
|
585 // ---------------------------------------------------------------------------- |
|
586 // |
|
587 TMuiuPageEventResult CIMSSettingsNoteUi::ShowWizMailboxNameErrorNoteL( |
|
588 const TIMSErrors aError ) |
|
589 { |
|
590 IMUM_CONTEXT( CIMSSettingsNoteUi::ShowWizMailboxNameErrorNoteL, 0, KLogUi ); |
|
591 |
|
592 switch ( aError ) |
|
593 { |
|
594 case EIMSMailboxNameEmpty: |
|
595 CIMSSettingsNoteUi::ShowQueryL( |
|
596 R_MBXS_SETTINGS_MAIL_NEWBOX_NAME_QRY, |
|
597 R_EMAIL_INFORMATION_QUERY, |
|
598 ETrue ); |
|
599 return EMuiuPageEventResultDisapproved; |
|
600 |
|
601 case EIMSMailboxNameExists: |
|
602 CIMSSettingsNoteUi::ShowQueryL( |
|
603 R_MBXS_SETTINGS_MAIL_NEWBOX_RENAME_QRY, |
|
604 R_EMAIL_INFORMATION_QUERY, |
|
605 ETrue ); |
|
606 return EMuiuPageEventResultDisapproved; |
|
607 |
|
608 default: |
|
609 break; |
|
610 } |
|
611 |
|
612 return EMuiuPageEventResultApproved; |
|
613 } |
|
614 |
|
615 // ---------------------------------------------------------------------------- |
|
616 // CIMSSettingsNoteUi::ShowMailboxAlreadyExistsErrorNoteL() |
|
617 // ---------------------------------------------------------------------------- |
|
618 // |
|
619 TBool CIMSSettingsNoteUi::ShowMailboxAlreadyExistsErrorNoteL( |
|
620 const TDesC& aMailboxName ) |
|
621 { |
|
622 IMUM_CONTEXT( CIMSSettingsNoteUi::ShowMailboxAlreadyExistsErrorNoteL, 0, KLogUi ); |
|
623 |
|
624 TMuiuSettingsText query; |
|
625 MakeStringL( query, R_IMUM_SETTINGS_RENAME_QUERY, aMailboxName ); |
|
626 |
|
627 return ShowQueryL( query, R_EMAIL_CONFIRMATION_QUERY, ETrue ); |
|
628 } |
|
629 |
|
630 // ---------------------------------------------------------------------------- |
|
631 // CIMSSettingsNoteUi::ShowSetMailboxNameErrorNoteL() |
|
632 // ---------------------------------------------------------------------------- |
|
633 // |
|
634 TMuiuPageEventResult CIMSSettingsNoteUi::ShowSetMailboxNameErrorNoteL( |
|
635 const TIMSErrors aError, |
|
636 const TDesC& aMailboxName ) |
|
637 { |
|
638 IMUM_CONTEXT( CIMSSettingsNoteUi::ShowSetMailboxNameErrorNoteL, 0, KLogUi ); |
|
639 |
|
640 switch ( aError ) |
|
641 { |
|
642 case EIMSMailboxNameEmpty: |
|
643 CIMSSettingsNoteUi::ShowQueryL( |
|
644 R_MBXS_SETTINGS_MAIL_NEWBOX_NAME_QRY, |
|
645 R_EMAIL_INFORMATION_QUERY, |
|
646 ETrue ); |
|
647 return EMuiuPageEventResultDisapproved; |
|
648 |
|
649 case EIMSMailboxNameExists: |
|
650 return ShowMailboxAlreadyExistsErrorNoteL( aMailboxName ) ? |
|
651 EMuiuPageEventResultDisapproved : EMuiuPageEventResultCancel; |
|
652 |
|
653 default: |
|
654 break; |
|
655 } |
|
656 |
|
657 return EMuiuPageEventResultApproved; |
|
658 |
|
659 } |
|
660 |
|
661 // ---------------------------------------------------------------------------- |
|
662 // CIMSSettingsNoteUi::ShowProtocolReadOnlyErrorNoteL() |
|
663 // ---------------------------------------------------------------------------- |
|
664 // |
|
665 TMuiuPageEventResult CIMSSettingsNoteUi::ShowProtocolReadOnlyErrorNoteL( |
|
666 const TIMSErrors aError ) |
|
667 { |
|
668 IMUM_CONTEXT( CIMSSettingsNoteUi::ShowProtocolReadOnlyErrorNoteL, 0, KLogUi ); |
|
669 |
|
670 switch ( aError ) |
|
671 { |
|
672 case EIMSItemInvalid: |
|
673 CIMSSettingsNoteUi::ShowNoteL( |
|
674 R_IMUM_EDIT_PROTOCOL_ERROR_TEXT, EIMSErrorNote, EFalse ); |
|
675 return EMuiuPageEventResultCancel; |
|
676 |
|
677 default: |
|
678 break; |
|
679 } |
|
680 |
|
681 return EMuiuPageEventResultApproved; |
|
682 } |
|
683 |
|
684 // ---------------------------------------------------------------------------- |
|
685 // CIMSSettingsNoteUi::ShowAlwaysOnlineErrorNoteL() |
|
686 // ---------------------------------------------------------------------------- |
|
687 // |
|
688 TMuiuPageEventResult CIMSSettingsNoteUi::ShowAlwaysOnlineErrorNoteL( |
|
689 const TIMSErrors aError ) |
|
690 { |
|
691 IMUM_CONTEXT( CIMSSettingsNoteUi::ShowAlwaysOnlineErrorNoteL, 0, KLogUi ); |
|
692 |
|
693 switch ( aError ) |
|
694 { |
|
695 // Access point is set to always ask |
|
696 case EIMSAoAlwaysAsk: |
|
697 CIMSSettingsNoteUi::ShowQueryL( |
|
698 R_MCE_SETTINGS_ALWAYS_DEFINE_AP, |
|
699 R_EMAIL_INFORMATION_QUERY, |
|
700 ETrue ); |
|
701 return EMuiuPageEventResultCancel; |
|
702 |
|
703 // Access point prompts password |
|
704 case EIMSAoIAPPassword: |
|
705 CIMSSettingsNoteUi::ShowQueryL( |
|
706 R_MCE_SETTINGS_ALWAYS_PROMPTACC, |
|
707 R_EMAIL_INFORMATION_QUERY, |
|
708 ETrue ); |
|
709 return EMuiuPageEventResultCancel; |
|
710 |
|
711 // No username or password |
|
712 case EIMSAoNoLogin: |
|
713 CIMSSettingsNoteUi::ShowQueryL( |
|
714 R_IMUM_SETTINGS_ALWAYS_PROMPTMAIL_SRVR_PSWD, |
|
715 R_EMAIL_INFORMATION_QUERY, |
|
716 ETrue ); |
|
717 return EMuiuPageEventResultCancel; |
|
718 |
|
719 // Always online is on |
|
720 case EIMSOmaEmnAoOn: |
|
721 CIMSSettingsNoteUi::ShowQueryL( |
|
722 R_MBXS_SETTINGS_AOL_OFF_QRY, |
|
723 R_EMAIL_INFORMATION_QUERY, |
|
724 ETrue ); |
|
725 return EMuiuPageEventResultCancel; |
|
726 |
|
727 // OMA emn is on |
|
728 case EIMSAoOmaEmnOn: |
|
729 CIMSSettingsNoteUi::ShowQueryL( |
|
730 R_MBXS_SETTINGS_OMA_OFF_QRY, |
|
731 R_EMAIL_INFORMATION_QUERY, |
|
732 ETrue ); |
|
733 return EMuiuPageEventResultCancel; |
|
734 |
|
735 // Too many always online mailboxes |
|
736 case EIMSAoManyAlwaysOnline: |
|
737 CIMSSettingsNoteUi::ShowQueryL( |
|
738 R_MCE_SETTINGS_ALWAYS_MAXLIMIT, R_EMAIL_INFORMATION_QUERY ); |
|
739 return EMuiuPageEventResultCancel; |
|
740 |
|
741 // If fetch limit is something else than all, query user |
|
742 case EIMSAoFetchNotAccepted: |
|
743 if ( iMailboxApi.Flags().LF( EmailFeatureAlwaysonlineHeaders ) ) |
|
744 { |
|
745 return CIMSSettingsNoteUi::ShowQueryL( |
|
746 R_MCE_SETTINGS_MAIL_ALL_MAILS_FET2, |
|
747 R_EMAIL_CONFIRMATION_QUERY, |
|
748 ETrue ) ? |
|
749 EMuiuPageEventResultApproved : EMuiuPageEventResultCancel; |
|
750 } |
|
751 break; |
|
752 // Access Point type is CSD |
|
753 case EIMSAoIapTypeCSD: |
|
754 return ShowAoCsdIapError(); |
|
755 |
|
756 // Leave occurred |
|
757 case EIMSItemInvalid: |
|
758 return EMuiuPageEventResultCancel; |
|
759 |
|
760 default: |
|
761 break; |
|
762 } |
|
763 |
|
764 return EMuiuPageEventResultApproved; |
|
765 } |
|
766 |
|
767 // ---------------------------------------------------------------------------- |
|
768 // CIMSSettingsNoteUi::ShowAoCsdIapError() |
|
769 // ---------------------------------------------------------------------------- |
|
770 // |
|
771 TMuiuPageEventResult CIMSSettingsNoteUi::ShowAoCsdIapError() |
|
772 { |
|
773 IMUM_CONTEXT( CIMSSettingsNoteUi::ShowAoCsdIapError, 0, KLogUi ); |
|
774 |
|
775 TMsvEntry mailbox; |
|
776 // Get the mailbox |
|
777 TRAP_IGNORE( mailbox = iMailboxApi.MailboxUtilitiesL().GetMailboxEntryL( |
|
778 iDialog.CurrentMailboxId(), |
|
779 MImumInMailboxUtilities::ERequestReceiving ) ); |
|
780 |
|
781 TMuiuSettingsText infonote; |
|
782 TRAP_IGNORE( MakeStringL( infonote, R_MCE_AUTO_CONN_INCORRECT_AP, |
|
783 mailbox.iDetails ) ); |
|
784 |
|
785 // Show the text to user |
|
786 TRAP_IGNORE( CIMSSettingsNoteUi::ShowQueryL( |
|
787 infonote, R_EMAIL_INFORMATION_QUERY, ETrue ) ); |
|
788 |
|
789 return EMuiuPageEventResultCancel; |
|
790 } |
|
791 |
|
792 // ---------------------------------------------------------------------------- |
|
793 // CIMSSettingsNoteUi::ShowFetchLimitErrorNoteL() |
|
794 // ---------------------------------------------------------------------------- |
|
795 // |
|
796 TMuiuPageEventResult CIMSSettingsNoteUi::ShowFetchLimitErrorNoteL( |
|
797 const TIMSErrors aError ) |
|
798 { |
|
799 IMUM_CONTEXT( CIMSSettingsNoteUi::ShowFetchLimitErrorNoteL, 0, KLogUi ); |
|
800 |
|
801 switch ( aError ) |
|
802 { |
|
803 case EIMSItemInvalid: |
|
804 if ( iMailboxApi.Flags().LF( EmailFeatureAlwaysonlineHeaders ) ) |
|
805 { |
|
806 CIMSSettingsNoteUi::ShowQueryL( |
|
807 R_MCE_SETTINGS_MAIL_ALL_MAILS_FET, |
|
808 R_EMAIL_INFORMATION_QUERY, |
|
809 ETrue ); |
|
810 return EMuiuPageEventResultDisapproved; |
|
811 } |
|
812 break; |
|
813 default: |
|
814 break; |
|
815 } |
|
816 |
|
817 return EMuiuPageEventResultApproved; |
|
818 } |
|
819 |
|
820 // ---------------------------------------------------------------------------- |
|
821 // CIMSSettingsNoteUi::ShowAlwaysOnlineRemovalQueryL() |
|
822 // ---------------------------------------------------------------------------- |
|
823 // |
|
824 TMuiuPageEventResult CIMSSettingsNoteUi::ShowAlwaysOnlineRemovalQueryL( |
|
825 const TIMSErrors aError ) |
|
826 { |
|
827 IMUM_CONTEXT( CIMSSettingsNoteUi::ShowAlwaysOnlineRemovalQueryL, 0, KLogUi ); |
|
828 |
|
829 switch ( aError ) |
|
830 { |
|
831 // Indicate to the user, that it's unwise to remove login information |
|
832 case EIMSAoNoLogin: |
|
833 return CIMSSettingsNoteUi::ShowQueryL( |
|
834 R_MCE_ALWAYS_CHANGEPROMPT, |
|
835 R_EMAIL_CONFIRMATION_QUERY, |
|
836 ETrue ) ? |
|
837 EMuiuPageEventResultApproved : EMuiuPageEventResultCancel; |
|
838 |
|
839 default: |
|
840 break; |
|
841 } |
|
842 |
|
843 return EMuiuPageEventResultApproved; |
|
844 } |
|
845 |
|
846 // ----------------------------------------------------------------------------- |
|
847 // CIMSSettingsNoteUi::ShowPopupLC |
|
848 // ----------------------------------------------------------------------------- |
|
849 // |
|
850 CAknInfoPopupNoteController* CIMSSettingsNoteUi::ShowPopupLC( |
|
851 const TInt aResource, |
|
852 const TInt aAfterMs, |
|
853 const TInt aPopupVisibleTimeMs ) |
|
854 { |
|
855 IMUM_STATIC_CONTEXT( CIMSSettingsNoteUi::ShowPopupLC, 0, utils, KLogUi ); |
|
856 |
|
857 CAknInfoPopupNoteController* noteDialog = |
|
858 CAknInfoPopupNoteController::NewL(); |
|
859 CleanupStack::PushL( noteDialog ); |
|
860 noteDialog->SetTimePopupInView( aPopupVisibleTimeMs ); |
|
861 HBufC* prompt = StringLoader::LoadL( aResource ); |
|
862 CleanupStack::PushL( prompt ); |
|
863 noteDialog->SetTextL( prompt->Des() ); |
|
864 CleanupStack::PopAndDestroy( prompt ); |
|
865 noteDialog->SetTimeDelayBeforeShow( aAfterMs ); |
|
866 noteDialog->ShowInfoPopupNote(); |
|
867 return noteDialog; |
|
868 } |
|
869 |
|
870 |
|
871 // ----------------------------------------------------------------------------- |
|
872 // CIMSSettingsNoteUi::ShowPopupL |
|
873 // ----------------------------------------------------------------------------- |
|
874 // |
|
875 CAknInfoPopupNoteController* CIMSSettingsNoteUi::ShowPopupL( |
|
876 const TInt aResource, |
|
877 const TInt aAfterMilliSeconds, |
|
878 const TInt aPopupVisibleTime ) |
|
879 { |
|
880 IMUM_STATIC_CONTEXT( CIMSSettingsNoteUi::ShowPopupL, 0, utils, KLogUi ); |
|
881 |
|
882 CAknInfoPopupNoteController* noteDialog = ShowPopupLC( |
|
883 aResource, aAfterMilliSeconds, aPopupVisibleTime ); |
|
884 CleanupStack::Pop( noteDialog ); |
|
885 return noteDialog; |
|
886 } |
|
887 |
|
888 // ----------------------------------------------------------------------------- |
|
889 // CIMSSettingsNoteUi::NewNoteL |
|
890 // ----------------------------------------------------------------------------- |
|
891 // |
|
892 CAknResourceNoteDialog* CIMSSettingsNoteUi::NewNoteL( TIMSNotes aNoteType, TBool aNoteWaiting ) |
|
893 { |
|
894 IMUM_STATIC_CONTEXT( CIMSSettingsNoteUi::NewNoteL, 0, utils, KLogUi ); |
|
895 |
|
896 switch( aNoteType ) |
|
897 { |
|
898 // Confirmation note |
|
899 case EIMSConfirmationNote: |
|
900 return new ( ELeave ) CAknConfirmationNote( aNoteWaiting ); |
|
901 // Information note |
|
902 case EIMSInformationNote: |
|
903 return new ( ELeave ) CAknInformationNote( aNoteWaiting ); |
|
904 // Error note |
|
905 case EIMSErrorNote: |
|
906 return new ( ELeave ) CAknErrorNote( aNoteWaiting ); |
|
907 // Warning note |
|
908 case EIMSWarningNote: |
|
909 return new ( ELeave ) CAknWarningNote( aNoteWaiting ); |
|
910 // Wrong note given, leave |
|
911 default: |
|
912 User::Leave( KErrUnknown ); |
|
913 return NULL; |
|
914 } |
|
915 } |