--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailserver/src/FsEmailMessageQueryDialog.cpp Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,424 @@
+/*
+* Copyright (c) 2007-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: Source file for FS Email message query dialog
+*
+*/
+
+
+// INCLUDE FILES
+//<cmail>
+#include "emailtrace.h"
+#include <uikon/eiksrvui.h> // CEikServAppUi
+//</cmail>
+#include <StringLoader.h>
+
+#include <fsmailserver.rsg>
+//<cmail>
+#include "fsmailserverconst.h"
+//</cmail>
+
+#include "FsEmailMessageQueryDialog.h"
+
+// ---------------------------------------------------------
+// CFsEmailMessageQueryDialog::CFsEmailMessageQueryDialog
+// ---------------------------------------------------------
+//
+CFsEmailMessageQueryDialog::CFsEmailMessageQueryDialog(
+ TRequestStatus& aStatus,
+ TDesC& aMailboxName,
+ TFsEmailNotifierSystemMessageType aMessageType )
+: CAknMessageQueryDialog( CAknQueryDialog::ENoTone ),
+ iRequest( &aStatus ),
+ iMessageType( aMessageType ),
+ iMailboxName( aMailboxName )
+ {
+ FUNC_LOG;
+ *iRequest = KRequestPending;
+ }
+
+
+// ---------------------------------------------------------
+// CFsEmailMessageQueryDialog::~CFsEmailMessageQueryDialog
+// ---------------------------------------------------------
+//
+CFsEmailMessageQueryDialog::~CFsEmailMessageQueryDialog()
+ {
+ FUNC_LOG;
+ }
+
+// ---------------------------------------------------------
+// CFsEmailMessageQueryDialog::NewL
+// ---------------------------------------------------------
+//
+CFsEmailMessageQueryDialog* CFsEmailMessageQueryDialog::NewLC(
+ TRequestStatus& aStatus,
+ TDesC& aMailboxName,
+ TFsEmailNotifierSystemMessageType aMessageType,
+ const TDesC& aCustomMessageText )
+ {
+ FUNC_LOG;
+ CFsEmailMessageQueryDialog* self = new( ELeave )
+ CFsEmailMessageQueryDialog( aStatus, aMailboxName, aMessageType );
+
+ self->PrepareDialogLC( aCustomMessageText );
+
+ return self;
+ }
+
+
+// ---------------------------------------------------------
+// CFsEmailMessageQueryDialog::OkToExitL
+// ---------------------------------------------------------
+//
+TBool CFsEmailMessageQueryDialog::OkToExitL( TInt aButtonId )
+ {
+ FUNC_LOG;
+ if ( CAknMessageQueryDialog::OkToExitL( aButtonId ) )
+ {
+ if ( aButtonId == EAknSoftkeySelect ||
+ aButtonId == EAknSoftkeyOk ||
+ aButtonId == EAknSoftkeyDone )
+ {
+ // Ignore any errors to avoid the situation that the notifier keeps
+ // hanging in screen if the calling party is crashed etc.
+ User::RequestComplete( iRequest, KErrNone );
+ }
+ else //if ( aButtonId == EAknSoftkeyCancel )
+ {
+ // Ignore any errors to avoid the situation that the notifier keeps
+ // hanging in screen if the calling party is crashed etc.
+ User::RequestComplete( iRequest, KErrCancel );
+ }
+
+ return ETrue;
+ }
+
+ return EFalse;
+ }
+
+
+
+
+// ---------------------------------------------------------------------------
+// Show asynchronous message query
+// ---------------------------------------------------------------------------
+//
+void CFsEmailMessageQueryDialog::PrepareDialogLC( const TDesC& aCustomMessageText )
+ {
+ FUNC_LOG;
+ PrepareLC( R_FS_MSERVER_DIALOG_MESSAGE_QUERY );
+
+ if( GetResourceIdsL() )
+ {
+ SetMessageTextAndCbaToDialogL();
+ }
+ else
+ {
+ SetMessageTextAndCbaToDialogL( aCustomMessageText );
+ }
+ }
+
+// ---------------------------------------------------------
+// Get message text and CBA resource ids by input data
+// ---------------------------------------------------------
+//
+TBool CFsEmailMessageQueryDialog::GetResourceIdsL()
+ {
+ FUNC_LOG;
+ iAddMailboxNameToText = EFalse;
+ switch( iMessageType )
+ {
+ // Custom error messages
+ case EFsEmailNotifErrCustom:
+ {
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ return EFalse;
+
+ case EFsEmailNotifErrCustomResponse:
+ {
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_CANCEL;
+ }
+ return EFalse;
+
+ // No response
+ case EFsEmailNotifErrAccountDisabled:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_ACCOUNT_DISABLED;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrPasswordExpired:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_PASSWORD_EXPIRED;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrDataDeleted:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_DATA_DELETED;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrLoginUnsuccesfull:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_LOGIN_UNSUCCESSFUL;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrPasswordChanged:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_PASSWORD_CHANGED;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrLoginCanceled:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_AUTH_CANCELED_TRY_AGAIN;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrServerNotAvailable:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_SERVER_NOT_FOUND_TRY_AGAIN;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrNetworkNotAvailable:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_NETWORK_UNAVAILABLE_TRY_AGAIN;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrServerBusy:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_SERVER_CURRENTLY_BUSY_TRY_AGAIN;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrUnableToConnectToServerTryAgain:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_UNABLE_TO_CONNECT_TRY_AGAIN;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrEmailAddrAndPwdDontMatch:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_INVALID_EMAIL_ADDRESS_AND_PASSWORD_TRY_AGAIN;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrInvalidEmailAddress:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_INVALID_EMAIL_ADDRESS;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrServerOffline:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_SERVER_OFFLINE;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrRoamingTurnedOn:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_ROAMING_TURNED_ON;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrRoamingCosts:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_ROAMING_COSTS;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrUnableToComplete:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_UNABLE_TO_COMPLETE;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrConnectionError:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_CONNECTION_ERROR;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrUnableToConnect:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_UNABLE_TO_CONNECT;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrMultipleSyncErrors:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_MULTIPLE_SYNC_ERRORS;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrLoginFailed:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_LOGIN_FAILED;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrServerNotFoundCheckSettings:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_SERVER_CANNOT_FOUND_CHECK_SETTINGS;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrUnableToConnectToServer:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_UNABLE_TO_CONNECT_TO_SERVER;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrDisconnected:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_DISCONNECTED;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrServerErroTryAgain:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_SERVER_ERROR_TRY_AGAIN;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ }
+ break;
+
+ case EFsEmailNotifErrOutOfMemory:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_SYNCH_NOT_ENOUGH_MEMORY;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_EMPTY;
+ iAddMailboxNameToText = ETrue;
+ }
+ break;
+
+ // Response
+ case EFsEmailNotifErrSynchronizationFailed:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_TEXT_SYNC_FAILED_TRY_AGAIN;
+ iCbaResourceId = R_AVKON_SOFTKEYS_OK_CANCEL;
+ }
+ break;
+
+ // Wait note
+ case EFsEmailNotifErrAuthenticatingWaitNote:
+ {
+ iMsgTxtResourceId = R_FS_MSERVER_AUTHENTICATING;
+ iCbaResourceId = R_AVKON_SOFTKEYS_CANCEL;
+ }
+ break;
+
+ // Error cases
+ case EFsEmailNotifErrLastNoResponse:
+ default:
+ {
+ User::Leave( KErrArgument );
+ }
+ break;
+ }
+ return ETrue;
+ }
+
+// -----------------------------------------------------------
+// Set message text and CBA buttons
+// -----------------------------------------------------------
+//
+void CFsEmailMessageQueryDialog::SetMessageTextAndCbaToDialogL()
+ {
+ FUNC_LOG;
+ SetDialogHeadingL();
+
+ HBufC* text( NULL );
+ if( iAddMailboxNameToText )
+ {
+ text = StringLoader::LoadLC( iMsgTxtResourceId, iMailboxName );
+ }
+ else
+ {
+ text = StringLoader::LoadLC( iMsgTxtResourceId );
+ }
+ SetMessageTextL( *text );
+ CleanupStack::PopAndDestroy( text );
+
+ CEikButtonGroupContainer& cba = ButtonGroupContainer();
+ cba.SetCommandSetL( iCbaResourceId );
+ }
+
+// -----------------------------------------------------------
+// Set message text and CBA buttons
+// -----------------------------------------------------------
+//
+void CFsEmailMessageQueryDialog::SetMessageTextAndCbaToDialogL(
+ const TDesC& aText )
+ {
+ FUNC_LOG;
+ SetDialogHeadingL();
+
+ SetMessageTextL( aText );
+
+ CEikButtonGroupContainer& cba = ButtonGroupContainer();
+ cba.SetCommandSetL( iCbaResourceId );
+ }
+
+// -----------------------------------------------------------
+// Set dialog heading text
+// -----------------------------------------------------------
+//
+void CFsEmailMessageQueryDialog::SetDialogHeadingL()
+ {
+ FUNC_LOG;
+ HBufC* text(NULL);
+ if( iMailboxName != KNullDesC )
+ {
+ text = StringLoader::LoadLC( R_FS_MSERVER_MAILBOX_NAME, iMailboxName );
+ }
+ else
+ {
+ text = StringLoader::LoadLC( R_FS_MSERVER_APPLICATION_NAME );
+ }
+
+ QueryHeading()->SetTextL( *text );
+
+ CleanupStack::PopAndDestroy( text );
+ }
+
+
+// End of File
+