diff -r 594d59766373 -r 7d48bed6ce0c vmbx/vmbxengine/src/vmbxuiutilities.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vmbx/vmbxengine/src/vmbxuiutilities.cpp Tue Aug 31 15:45:17 2010 +0300 @@ -0,0 +1,309 @@ +/* +* Copyright (c) 2009-2010 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: Implementation of the VmbxUtilities class +* +*/ + + +// INCLUDE FILES +#include + +#include "voicemailboxdefsinternal.h" +#include "vmbxutilities.h" +#include "vmbxlogger.h" +#include "vmbxuiutilities.h" +#include "vmbxuihandler.h" + +// ============================ MEMBER FUNCTIONS ============================= + +// --------------------------------------------------------------------------- +// VmbxUtilities::CVmbxUiUtilities +// C++ default constructor can NOT contain any code +// --------------------------------------------------------------------------- +CVmbxUiUtilities::CVmbxUiUtilities() + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::CVmbxUiUtilities <=>" ); + } + +// --------------------------------------------------------------------------- +// VmbxUtilities::~CVmbxUiUtilities +// Destructor +// --------------------------------------------------------------------------- +CVmbxUiUtilities::~CVmbxUiUtilities() + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::~CVmbxUiUtilities =>" ); + delete iUiHandler; + //If there are still dialog is running, The dialogs should be dismissed. + //The leave will be ignored as the CVmbxUiUtilities is distructing + TRAP_IGNORE( DismissDialogL() ); + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::~CVmbxUiUtilities <=" ); + } + +// --------------------------------------------------------------------------- +// CVoiceMailboxImpl::NewL +// Two-phased constructor. +// --------------------------------------------------------------------------- +// +CVmbxUiUtilities* CVmbxUiUtilities::NewL() + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::NewL =>" ); + CVmbxUiUtilities* vmbx = new( ELeave )CVmbxUiUtilities(); + CleanupStack::PushL( vmbx ); + vmbx->ConstructL(); + CleanupStack::Pop( vmbx ); + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::NewL <=" ); + return vmbx; + } + +// --------------------------------------------------------------------------- +// CVoiceMailboxImpl::ConstructL +// Two-phased constructor. +// --------------------------------------------------------------------------- +// +void CVmbxUiUtilities::ConstructL() + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ConstructL =>" ); + // create resource handler + TRAP_IGNORE(iUiHandler = CVmbxUiHandler::NewL()); + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ConstructL <=" ); + } + +// --------------------------------------------------------------------------- +// VmbxUtilities::ShowQuery +// Show query +// --------------------------------------------------------------------------- +// +void CVmbxUiUtilities::ShowQueryL( const TVmbxType& aType, + const TVmbxQueryMode & aMode, TDes& aNumber ) + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryL =>" ); + VMBLOGSTRING3( "VMBX: CVmbxUiUtilities::ShowQueryL: aMode=%d aNumber=%S ", + aMode, &aNumber ); + if ( !iUiHandler ) + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryL no qt env Exit" ) + User::Leave(KErrNotSupported); + } + + // Show "define mailbox number" notification at define mode + if (EVmbxDefineMode == aMode) { + switch( aType ) { + case EVmbxVoice: + ShowInformationdNoteL(EDefineVoiceNumber); + break; + case EVmbxVideo: + ShowInformationdNoteL(EDefineVideoNumber); + break; + default: + break; + } + } + + TInt result( KErrNone ); + FOREVER + { + ShowQueryDialogL( aType, aMode, aNumber, result ); + if ( KErrCancel == result ) + { + break; + } + + if ( KErrNone == result ) + { + if ( aNumber.Length() ) + { + // Convert back to western digits + // check the given number here (emergency numbers not allowed) + if ( VmbxUtilities::IsValidPhoneNumber( aNumber ) + && !VmbxUtilities::IsEmergencyNumber( aNumber ) ) + { + break; + }// valid number + else + { + //invalid dialog + ShowInvalidWarningDialogL(); + continue; + }// invalid number + } + else + { + result = KErrNone; + break; + }// number NULL + } + }// End FOREVER + VMBLOGSTRING2( "VMBX: CVmbxUiUtilities::ShowQueryL: result=%I ", result ); + User::LeaveIfError( result ); + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryL <=" ); + } + +// --------------------------------------------------------------------------- +// VmbxUtilities::ShowInformationdNote +// +// --------------------------------------------------------------------------- +// +void CVmbxUiUtilities::ShowInformationdNoteL(const TVmbxNoteType aType ) + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowInformationdNoteL =>" ); + if ( iUiHandler ) + { + iUiHandler->ShowInformationdNoteL( aType ); + } + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowInformationdNoteL <=" ); + } + +// --------------------------------------------------------------------------- +// VmbxUtilities::ShowDefineSelectionDialogL +// Show define number in selection list +// --------------------------------------------------------------------------- +// +void CVmbxUiUtilities::ShowDefineSelectionDialogL( TVmbxType& aType, + TInt& aResult ) + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowDefineSelectionDialogL =>" ); + if (!iUiHandler ) + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowDefineSelectionDialogL\ + no qt env Exit" ) + User::Leave(KErrNotSupported); + } + iUiHandler->ShowDefineSelectionDialogL( aType, aResult ); + VMBLOGSTRING3( "VMBX: CVmbxUiUtilities::ShowDefineSelectionDialogL: \ + aType=%I, aResult=%I <=", aType, aResult ); + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowDefineSelectionDialogL <=" ); + } + +// --------------------------------------------------------------------------- +// VmbxUtilities::ShowCallSelectionDialogL +// Show call number in selection list +// --------------------------------------------------------------------------- +// +void CVmbxUiUtilities::ShowCallSelectionDialogL( + const RPointerArray& aArray, + TVoiceMailboxParams& aParams, + TInt& aResult ) + { + VMBLOGSTRING("VMBX: CVmbxUiUtilities::ShowCallSelectionDialogL =>"); + if (!iUiHandler) + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowCallSelectionDialogL\ + no qt env Exit" ) + User::Leave(KErrNotSupported); + } + if ( aArray.Count() < 1 ) + { + User::Leave( KErrArgument ); + } + iUiHandler->ShowCallSelectionDialogL( aArray, aParams, aResult ); + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowCallSelectionDialogL <=" ); + } + +// -------------------------------------------------------------------------- +// CVmbxUiUtilities::ShowNotAllowedEditingDialogL +// -------------------------------------------------------------------------- +// +void CVmbxUiUtilities::ShowNotAllowedEditingDialogL() + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowNotAllowedEditingDialogL =>" ); + // Information user can't edit. + if ( iUiHandler) + { + iUiHandler->ShowInformationdNoteL( ENotAllowUserEditing ); + } + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowNotAllowedEditingDialogL <=" ); + } + +// --------------------------------------------------------------------------- +// VmbxUtilities::ShowInvalidWarningDialogL +// +// --------------------------------------------------------------------------- +// +void CVmbxUiUtilities::ShowInvalidWarningDialogL() + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowInvalidWarningDialogL =>" ); + if ( iUiHandler) + { + iUiHandler->ShowInformationdNoteL( EInvalidNumber ); + } + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowInvalidWarningDialogL <=" ); + } + +// --------------------------------------------------------------------------- +// VmbxUtilities::DismissDialogL +// Tries to close all open dialogs +// --------------------------------------------------------------------------- +// +void CVmbxUiUtilities::DismissDialogL() + { + VMBLOGSTRING( + "VMBX: CVmbxUiUtilities::DismissDialogL EMPTY IMPLEMENTATION!=>" ); + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::DismissDialogL <=" ); + } + +// Commented out because branding is not supported yet. +// --------------------------------------------------------------------------- +// CVmbxUiUtilities::GetVmbxImageL +// +// --------------------------------------------------------------------------- +/* +CGulIcon* CVmbxUiUtilities::GetVmbxImageL( + const TVoiceMailboxParams& aParams ) + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::GetVmbxImageL" ); +*/ + +// --------------------------------------------------------------------------- +// VmbxUtilities::ShowQueryDialogL +// Show query dialog +// --------------------------------------------------------------------------- +// +void CVmbxUiUtilities::ShowQueryDialogL( const TVmbxType& aType, + const TVmbxQueryMode& /*aMode*/, + TDes& aNumber, TInt& aResult ) + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryDialogL =>" ); + + if( EVmbxVideo != aType && EVmbxVoice != aType ) + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryDialogL: \ + User::Leave( KErrNotSupported )" ); + User::Leave( KErrArgument ); + } + VMBLOGSTRING2( "VMBX: CVmbxUiUtilities::ShowQueryDialogL: in\ + aNumber = %S", &aNumber ); + // to show dialog via qt part + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryDialogL to show qt" ); + iUiHandler->ShowVmbxQueryDialogL( aType, aNumber, aResult ); + VMBLOGSTRING2( "VMBX: CVmbxUiUtilities::ShowQueryDialogL: out\ + aNumber = %S", &aNumber ); + VMBLOGSTRING2( "VMBX: CVmbxUiUtilities::ShowQueryDialogL: aResult=%I <=", + aResult ); + } + +// ----------------------------------------------------------------------------- +// CVmbxUiUtilities::FetchNumberFromPhonebook2L +// Create and show Phonebook's Single Fetch Dialog +// ----------------------------------------------------------------------------- +// +void CVmbxUiUtilities::FetchNumberFromPhonebook2L( + TDes& /*aPhoneNumber*/ ) + { + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::FetchNumberFromPhonebook2L =>" ); + /* TODO: Later remove this or replace with some Qt Phonebook API + */ + VMBLOGSTRING( "VMBX: CVmbxUiUtilities::FetchNumberFromPhonebook2L <=" ); + } + +// End of file