vmbx/vmbxengine/src/voicemailboximpl.cpp
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
child 21 0a6dd2dc9970
--- a/vmbx/vmbxengine/src/voicemailboximpl.cpp	Tue Aug 31 15:45:17 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,902 +0,0 @@
-/*
-* 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 CVoiceMailboxImpl class
-*
-*/
-
-
-// INCLUDE FILES
-#include <featmgr.h>
-#include <cvoicemailboxentry.h>
-#include "voicemailboxdefsinternal.h"
-
-#include "vmbxenginebase.h"
-#include "vmbxuiutilities.h"
-#include "vmbxenginefactory.h"
-#include "vmbxobserver.h"
-#include "vmbxlogger.h"
-#include "vmbxutilities.h"
-#include "vmbxcenrephandler.h"
-#include "voicemailboximpl.h"
-
-// phone application uid
-const TInt KPhoneApplicationUid          = 0x100058B3;
-
-// ============================ MEMBER FUNCTIONS =============================
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::NewL
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CVoiceMailboxImpl* CVoiceMailboxImpl::NewL()
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::NewL =>" );
-    CVoiceMailboxImpl* vmbx = CVoiceMailboxImpl::NewLC();
-    CleanupStack::Pop( vmbx );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::NewL <=" );
-    return vmbx;
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::NewLC
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CVoiceMailboxImpl* CVoiceMailboxImpl::NewLC()
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::NewLC =>" );
-    CVoiceMailboxImpl* vmbx = new( ELeave ) CVoiceMailboxImpl();
-    CleanupStack::PushL( vmbx );
-    vmbx->ConstructL();
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::NewLC <=" );
-    return vmbx;
-    }
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::~CVoiceMailboxImpl
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CVoiceMailboxImpl::~CVoiceMailboxImpl()
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::~CVoiceMailboxImpl =>" );
-    FeatureManager::UnInitializeLib();
-    delete iUiUtilities;
-    delete iVmbxFactory;
-    delete iVmbxObserver;
-    delete iCenRepHandler;
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::~CVoiceMailboxImpl <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::GetStoredEntry
-// 
-// ---------------------------------------------------------------------------
-//
-TInt CVoiceMailboxImpl::GetStoredEntry( const TVoiceMailboxParams& aParams,
-                                            CVoiceMailboxEntry*& aEntry ) const
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetStoredEntry =>" );
-    TRAPD( err, GetStoredEntryL( aParams, aEntry ) );
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::GetStoredEntry: err%I <=", err );
-    return err;
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::SaveEntry
-// 
-// ---------------------------------------------------------------------------
-//
-TInt CVoiceMailboxImpl::SaveEntry( const CVoiceMailboxEntry& aEntry )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::SaveEntry =>" );
-    TRAPD( err, SaveEntryL( aEntry ) );
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::SaveEntry: err%I <=", err );
-    return err;
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::QueryNewEntry
-// 
-// ---------------------------------------------------------------------------
-//
-TInt CVoiceMailboxImpl::QueryNewEntry( const TVoiceMailboxParams& aParams,
-                                           CVoiceMailboxEntry*& aEntry )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::QueryNewEntry =>" );
-    TRAPD( err, QueryNewEntryL( aParams, aEntry ) );
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::QueryNewEntry err%I <=",
-        err );
-    return err;
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::QueryChangeEntry
-// 
-// ---------------------------------------------------------------------------
-//
-TInt CVoiceMailboxImpl::QueryChangeEntry( const TVoiceMailboxParams& aParams,
-                                             CVoiceMailboxEntry*& aEntry )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::QueryChangeEntry =>" );
-    TRAPD( err, QueryChangeEntryL( aParams, aEntry ) );
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::QueryChangeEntry: err%I <=",
-        err );
-    return err;
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::QueryVmbxType
-// 
-// ---------------------------------------------------------------------------
-//
-TInt CVoiceMailboxImpl::QueryVmbxType( TVoiceMailboxParams& aParams )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::QueryVmbxType =>" );
-    TRAPD( err, QueryVmbxTypeL( aParams ) );
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::QueryVmbxType: err%I<=", err );
-    return err;
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::NotifyVmbxNumberChangeL
-//
-// ---------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::NotifyVmbxNumberChangeL(
-    MVoiceMailboxObserver& aObserver,
-    const TBool /*aNotifyOnActiveLineOnly*/ )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::NotifyVmbxNumberChangeL =>" );
-    if ( !iNotifyCallBack )
-        {
-        iNotifyCallBack = &aObserver;
-        iVmbxObserver = CVmbxObserver::NewL( *this );
-        iVmbxObserver->SetVmbxObserver( *this );
-        }
-    else
-        {
-        User::Leave( KErrInUse );
-        }
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::NotifyVmbxNumberChangeL <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::NotifyVmbxNumberChangeCancel
-//
-// ---------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::NotifyVmbxNumberChangeCancel()
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::NotifyVmbxNumberChangeCancel =>" );
-    iNotifyCallBack = NULL;
-    delete iVmbxObserver;
-    iVmbxObserver = NULL;
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::NotifyVmbxNumberChangeCancel <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::CheckConfiguration
-//
-// ---------------------------------------------------------------------------
-//
-TBool CVoiceMailboxImpl::CheckConfiguration( const TVoiceMailboxParams& aParams,
-                             const TInt aFlags )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::CheckConfiguration =>" );
-    TBool configuration( EFalse );
-    CVmbxEngineBase* vmbx = NULL;
-    TRAPD( res, iVmbxFactory->CreateEngineL( vmbx, aParams.iType ) );
-    if ( KErrNone == res && vmbx )
-        {
-        configuration = vmbx->CheckConfiguration( aParams, aFlags );
-        }
-    delete vmbx;
-    vmbx = NULL;
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::CheckConfiguration <=" );
-    return configuration;
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::GetServiceIds
-//
-// ---------------------------------------------------------------------------
-//
-TInt CVoiceMailboxImpl::GetServiceIds( RIdArray& aProfileIds )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetServiceIds =>" );
-    TRAPD( err, GetServiceIdsL( aProfileIds ) );
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::GetServiceIds: err%I <=", err );
-    return err;
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::GetVmbxImage
-//
-// ---------------------------------------------------------------------------
-/* CGulIcon* CVoiceMailboxImpl::GetVmbxImage(
-                        const TVoiceMailboxParams& aParams )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetVmbxImage =>" );
-    CGulIcon* guiIcon( NULL );
-    TRAPD( err, guiIcon = GetVmbxImageL( aParams ) );
-    if ( KErrNone != err )
-        {
-        delete guiIcon;
-        guiIcon = NULL;
-        }
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::GetVmbxImage: err%I <=", err );
-    return guiIcon;
-    } */
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::GetVmbxImages
-//
-// ---------------------------------------------------------------------------
-//
-/* CArrayPtr<CGulIcon>* CVoiceMailboxImpl::GetVmbxImages(
-                            RArray<TVoiceMailboxParams>& aParams )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetVmbxImages =>" );
-    CArrayPtr<CGulIcon>* guiIcons( NULL );
-    TRAPD( err, guiIcons = GetVmbxImagesL( aParams ) );
-    if ( KErrNone != err )
-        {
-        if ( guiIcons )
-            {
-            guiIcons->ResetAndDestroy();
-            }
-        }
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::GetVmbxImages: err%I <=", err );
-    return guiIcons;
-    } */
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::SaveProvisionedEntry
-//
-// ---------------------------------------------------------------------------
-//
-TInt CVoiceMailboxImpl::SaveProvisionedEntry( 
-                                    const CVoiceMailboxEntry& aEntry )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::SaveProvisionedEntry =>" );
-    TRAPD( err, SaveProvisionedEntryL( aEntry ) );
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::SaveProvisionedEntry: err%I <=",
-    err );
-    return err;
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::SatRefreshL
-// 
-// notify Sat Refresh
-// ---------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::SatRefreshL()
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::SatRefreshL =>" );
-    // notify sim file's entry changed
-    NotifyChangedL( EVmbxVoice );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::SatRefreshL <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::CenRepChangedL
-// 
-// notify CenRep Changed
-// ---------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::CenRepChangedL( TVmbxCenRepKey aId )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::CenRepChangedL =>" );
-    TVmbxAlsLineType alsLine = VmbxUtilities::AlsLine();
-    if ( ( ( EVmbxVoiceLinePrimaryKey == aId 
-            || EVmbxVideoLinePrimaryKey == aId ) // primary value changed
-            && EVmbxAlsLine2 != alsLine )// line 1 active or using default line
-        || ( ( EVmbxVoiceLineAlternateKey == aId 
-            || EVmbxVideoLineAlternateKey == aId )// alternate value changed
-            && EVmbxAlsLine2 == alsLine ) )// line 2 active
-        {
-        if ( VmbxUtilities::VideoSupported() 
-            && ( ( EVmbxVideoLinePrimaryKey == aId 
-            || EVmbxVideoLineAlternateKey == aId ) ) )
-            {
-            NotifyChangedL( EVmbxVideo );
-            }
-        else
-            {
-            NotifyChangedL( EVmbxVoice );
-            }
-        }
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::CenRepChangedL <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::SimStoreChangedL
-// notify sim store changed
-// 
-// ---------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::SimStoreChangedL()
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::SimStoreChangedL =>" );
-    // notify sim file changed
-    NotifyChangedL( EVmbxVoice );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::SimStoreChangedL <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::CVoiceMailboxImpl
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// ---------------------------------------------------------------------------
-//
-CVoiceMailboxImpl::CVoiceMailboxImpl()
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::CVoiceMailboxImpl <=>" );
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::ConstructL
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::ConstructL()
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::ConstructL =>" );
-    FeatureManager::InitializeLibL();
-
-    // Create Ui utilities for dialog and images
-    iUiUtilities = CVmbxUiUtilities::NewL();
-    // create CenRep
-    iCenRepHandler = CVmbxCenRepHandler::NewL();
-
-    // Create factory for voice/video/voip engine
-    iVmbxFactory = CVmbxEngineFactory::NewL( *this );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::ConstructL <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::GetStoredEntryL
-// 
-// ---------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::GetStoredEntryL( const TVoiceMailboxParams& aParams,
-                                    CVoiceMailboxEntry*& aEntry ) const
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetStoredEntryL =>" );
-    CVoiceMailboxEntry* entry( NULL );
-    CVmbxEngineBase* vmbxBox( NULL );
-    iVmbxFactory->CreateEngineL( vmbxBox, aParams.iType );
-    CleanupStack::PushL( vmbxBox );
-    vmbxBox->GetL( entry );
-    CleanupStack::PopAndDestroy( vmbxBox );
-    aEntry = entry;
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetStoredEntryL <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::SaveEntryL
-// 
-// ---------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::SaveEntryL( const CVoiceMailboxEntry& aEntry )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::SaveEntryL =>" );
-    TVoiceMailboxParams params( aEntry );
-    CVmbxEngineBase* vmbxBox( NULL );
-    iVmbxFactory->CreateEngineL( vmbxBox, aEntry.VoiceMailboxType() );
-    CleanupStack::PushL( vmbxBox );
-    if ( vmbxBox->CheckConfiguration( params, EVmbxChangeNbrAllowedOnUi ) )
-        {
-        vmbxBox->SaveL( aEntry, ETrue );
-        }
-    else
-        {
-        User::Leave( KErrNotSupported );
-        }
-    CleanupStack::PopAndDestroy( vmbxBox );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::SaveEntryL <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::QueryNewEntryL
-// 
-// ---------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::QueryNewEntryL( const TVoiceMailboxParams& aParams,
-                                   CVoiceMailboxEntry*& aEntry )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::QueryNewEntryL =>" );
-    CVmbxEngineBase* vmbxBox( NULL );
-    iVmbxFactory->CreateEngineL( vmbxBox, aParams.iType );
-    CleanupStack::PushL( vmbxBox );
-    if ( vmbxBox->CheckConfiguration( aParams, EVmbxChangeNbrAllowedOnUi ) )
-        {
-        CVoiceMailboxEntry* entry = CVoiceMailboxEntry::NewLC();
-        entry->SetVoiceMailboxType( aParams.iType );
-        entry->SetServiceId( aParams.iServiceId );
-        vmbxBox->QueryDefineNumberL( *entry );
-        CleanupStack::Pop( entry );
-        aEntry = entry;
-        }
-    else
-        {
-        CheckNumberProvisionedL( aParams );
-        }
-    CleanupStack::PopAndDestroy( vmbxBox );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::QueryNewEntryL <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::QueryChangeEntryL
-// 
-// ---------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::QueryChangeEntryL( const TVoiceMailboxParams& aParams,
-                                            CVoiceMailboxEntry*& aEntry )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::QueryChangeEntryL =>" );
-    CVmbxEngineBase* vmbxBox( NULL );
-    iVmbxFactory->CreateEngineL( vmbxBox, aParams.iType );
-    CleanupStack::PushL( vmbxBox );
-    if ( vmbxBox->CheckConfiguration( aParams, EVmbxChangeNbrAllowedOnUi ) )
-        {
-        CVoiceMailboxEntry* entry( NULL );
-        GetStoredEntryL( aParams, entry );
-        CleanupStack::PushL( entry );
-        vmbxBox->QueryChangeNumberL( *entry );
-        CleanupStack::Pop( entry );
-        aEntry = entry;
-        }
-    else
-        {
-        CheckNumberProvisionedL( aParams );
-        }
-    CleanupStack::PopAndDestroy( vmbxBox );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::QueryChangeEntryL <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// CleanupRPointerArray
-// avoid memory leak when using RPointerArray
-// ---------------------------------------------------------------------------
-//
-LOCAL_C void CleanupRPointerArray( TAny* aParam )
-    {
-    if ( aParam )
-        {
-        static_cast< RPointerArray<CVoiceMailboxEntry>* >( aParam )
-                                                    ->ResetAndDestroy();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::QueryVmbxTypeL
-// Query vmbx type
-// ---------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::QueryVmbxTypeL( TVoiceMailboxParams& aParams )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::QueryVmbxTypeL =>" );
-    aParams.iType = EVmbxNone;
-    aParams.iServiceId = KVmbxServiceIdNone;
-
-    TInt result ( KErrNotFound );
-    RPointerArray<CVoiceMailboxEntry> array;
-    TCleanupItem item( CleanupRPointerArray, &array );
-    CleanupStack::PushL( item );
-    GetDefinedEntriesL( array );
-
-    TInt definedCount = array.Count();
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::QueryVmbxTypeL:\
-        definedCount%I", definedCount );
-    // more than one number defined
-    if ( definedCount > 1 )
-        {
-        VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::QueryVmbxTypeL:\
-        more than one number Denfined" );
-        // query call type
-        RArray<TVoiceMailboxParams> paramsArray;
-        CleanupClosePushL( paramsArray );
-        TVoiceMailboxParams entryParams;
-        for ( TInt i = 0; i < array.Count(); i++ )
-            {
-            entryParams.iType = array[i]->VoiceMailboxType();
-            entryParams.iServiceId = array[i]->ServiceId();
-            paramsArray.AppendL( entryParams );
-            }
-        //CArrayPtr<CGulIcon>* dialogIcons = GetVmbxImagesL( paramsArray );
-        //CleanupStack::PushL( dialogIcons );
-        iUiUtilities->ShowCallSelectionDialogL( 
-        array, /* dialogIcons, */ aParams, result );
-        //CleanupStack::Pop( dialogIcons );
-        CleanupStack::PopAndDestroy( &paramsArray );
-        }
-    // only one number defined
-    else if ( 1 == definedCount )
-        {
-        // return the onle defined number
-        VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::QueryVmbxTypeL:\
-        One number Denfined" );
-        aParams.iType = array[0]->VoiceMailboxType();
-        result = KErrNone;
-        }
-    // there is no number defined
-    else
-        {
-        VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::QueryVmbxTypeL:\
-             no number Denfined" );
-        // define number
-        if ( VmbxUtilities::VideoSupported() )
-            {
-            // query to be defined type
-            iUiUtilities->ShowDefineSelectionDialogL( aParams.iType, result );
-            // if result is KErrNone(but result should be also KErrNotFound ),
-            // it means user have seclected the defined type;
-            // else user cancel to select the type, so should return result value
-            if ( KErrNone == result )
-                {
-                result = KErrNotFound;
-                }
-            }
-        else
-            {
-            aParams.iType = EVmbxVoice;
-            }
-        }
-
-    CleanupStack::PopAndDestroy( &array ); //item 
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::QueryVmbxTypeL: result%I",
-    result );
-    User::LeaveIfError( result );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::QueryVmbxTypeL <=" );
-    }
-
-// ----------------------------------------------------------------------------
-// CVoiceMailboxImpl::GetDefinedEntriesL
-//
-// ----------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::GetDefinedEntriesL( 
-                            RPointerArray<CVoiceMailboxEntry>& aArray )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetDefinedEntriesL =>" );
-    TRAPD( voiceErr,GetDefinedVoiceEntryL( aArray ));
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::GetDefinedEntriesL: voiceErr%I",
-            voiceErr );
-    // It should be ignored when video/voip unsupported or no number defined
-    if ( KErrNotFound != voiceErr )
-        {
-        User::LeaveIfError( voiceErr );
-        }
-    
-    TRAPD( videoErr, GetDefinedVideoEntryL( aArray ) );
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::GetDefinedEntriesL: videoErr%I",
-            videoErr );
-    if ( KErrNotSupported != videoErr && KErrNotFound != videoErr )
-        {
-        User::LeaveIfError( videoErr );
-        }
- 
-    TRAPD( voIperr, GetDefinedVoipEntriesL( aArray ));
-
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::GetDefinedEntriesL: voIperr%I",
-            voIperr );
-    // It should be ignored when video/voip unsupported or no number defined
-    if ( KErrNotSupported != voIperr && KErrNotFound != voIperr )
-        {
-        User::LeaveIfError( voIperr );
-        }
- 
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetDefinedEntriesL <=" );
-    }
-
-// ----------------------------------------------------------------------------
-// CVoiceMailboxImpl::GetDefinedVoiceEntryL
-//
-// ----------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::GetDefinedVoiceEntryL( 
-                            RPointerArray<CVoiceMailboxEntry>& aArray )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetDefinedVoiceEntryL =>" );
-    // check voice mailbox
-    CVmbxEngineBase* voiceBox( NULL );
-    iVmbxFactory->CreateEngineL( voiceBox, EVmbxVoice );
-    CleanupStack::PushL( voiceBox );
-    // get voice entry
-    CVoiceMailboxEntry* voiceEntry( NULL);
-    voiceBox->GetL( voiceEntry );
-    CleanupStack::PushL( voiceEntry );
-    // get voice number
-    TPtrC vmbxVoiceNumber( KNullDesC );
-    TInt resVoice = voiceEntry->GetVmbxNumber( vmbxVoiceNumber );
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::GetDefinedVoiceEntryL:\
-                    VoiceNumber = %S ", &vmbxVoiceNumber );
-    if ( KErrNone == resVoice && vmbxVoiceNumber.Length() )
-        {
-        aArray.AppendL( voiceEntry );
-        }
-    CleanupStack::Pop( voiceEntry );
-    CleanupStack::PopAndDestroy( voiceBox );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetDefinedVoiceEntryL <=" );
-    }
-
-// ----------------------------------------------------------------------------
-// CVoiceMailboxImpl::GetDefinedVideoEntryL
-//
-// ----------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::GetDefinedVideoEntryL( 
-                            RPointerArray<CVoiceMailboxEntry>& aArray )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetDefinedVideoEntryL =>" );
-    // check video mailbox
-    CVmbxEngineBase* videoBox = NULL;
-    iVmbxFactory->CreateEngineL( videoBox, EVmbxVideo );
-    CleanupStack::PushL( videoBox );
-
-    CVoiceMailboxEntry* videoEntry( NULL );
-    // get video entry
-    videoBox->GetL( videoEntry );
-    CleanupStack::PushL( videoEntry );
-    TPtrC vmbxVideoNumber( KNullDesC );
-
-    TInt resVideo = videoEntry->GetVmbxNumber( vmbxVideoNumber );
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::GetDefinedVideoEntryL:\
-                            VideoNumber = %S ", &vmbxVideoNumber );
-
-    if ( KErrNone == resVideo && vmbxVideoNumber.Length() )
-        {
-        aArray.AppendL( videoEntry );
-        }
-    CleanupStack::Pop( videoEntry );
-    CleanupStack::PopAndDestroy( videoBox );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetDefinedVideoEntryL <=" );
-    }
-
-// ----------------------------------------------------------------------------
-// CVoiceMailboxImpl::GetDefinedVoipEntriesL
-//
-// ----------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::GetDefinedVoipEntriesL( 
-                            RPointerArray<CVoiceMailboxEntry>& aArray )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetDefinedVoipEntriesL =>" );
-    // check VoIP mailbox
-    CVmbxEngineBase* voIPBox = NULL;
-    iVmbxFactory->CreateEngineL( voIPBox, EVmbxVoip );
-    CleanupStack::PushL( voIPBox );
-
-    RIdArray profileIds;
-    CleanupClosePushL( profileIds );
-
-    voIPBox->GetServiceIdsL( profileIds );
-    TInt profileCounts = profileIds.Count();
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::GetDefinedVoipEntriesL:\
-                                   VoIP profileCounts%I ", profileCounts);
-    if ( 0 < profileCounts )
-        {
-        for ( TInt i( 0 ); i < profileCounts; i++ )
-            {
-            voIPBox->SetCurrentServiceId( profileIds[i] );
-            CVoiceMailboxEntry* voIPEntry( NULL );
-            // get voip entry
-            voIPBox->GetL( voIPEntry );
-            CleanupStack::PushL( voIPEntry );
-            TPtrC vmbxVoIPName( KNullDesC );
-            TInt resVoIP = voIPEntry->GetVmbxName( vmbxVoIPName );
-
-            TPtrC vmbxVoIPAddress( KNullDesC );
-            if ( KErrNone == resVoIP )
-                {
-                VMBLOGSTRING2( 
-                "VMBX: CVoiceMailboxImpl::GetDefinedVoipEntriesL:\
-                        vmbxVoIPName = %S ", &vmbxVoIPName );
-                resVoIP = voIPEntry->GetVmbxNumber( vmbxVoIPAddress );
-                }
-            if ( KErrNone == resVoIP && vmbxVoIPAddress.Length() 
-                 && vmbxVoIPName.Length() )
-                {
-                VMBLOGSTRING2( 
-                "VMBX: CVoiceMailboxImpl::GetDefinedVoipEntriesL:\
-                    vmbxVoIPAddress = %S ", &vmbxVoIPAddress );
-                aArray.AppendL( voIPEntry );
-                }
-            CleanupStack::Pop( voIPEntry );
-            }
-        }
-    CleanupStack::PopAndDestroy( &profileIds );
-    CleanupStack::PopAndDestroy( voIPBox );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetDefinedVoipEntriesL <=" );
-    }
-
-// ----------------------------------------------------------------------------
-// CVoiceMailboxImpl::GetServiceIdsL
-//
-// ----------------------------------------------------------------------------
-void CVoiceMailboxImpl::GetServiceIdsL( RIdArray& aProfileIds )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetServiceIdsL =>" );
-    // Get all Service Ids
-    RIdArray profileIds;
-    CleanupClosePushL( profileIds );
-    CVmbxEngineBase* vmbx = NULL;
-    iVmbxFactory->CreateEngineL( vmbx, EVmbxVoip );
-    CleanupStack::PushL( vmbx );
-    vmbx->GetServiceIdsL( profileIds );
-    for ( TInt i( 0 ); i < profileIds.Count(); i++ )
-        {
-        aProfileIds.AppendL( profileIds[i]);
-        }
-    CleanupStack::PopAndDestroy( vmbx );
-    CleanupStack::Pop( &profileIds );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetServiceIdsL <=");
-    }
-
-// ----------------------------------------------------------------------------
-// CVoiceMailboxImpl::GetVmbxImageL
-//
-// ----------------------------------------------------------------------------
-/* CGulIcon* CVoiceMailboxImpl::GetVmbxImageL( 
-                    const TVoiceMailboxParams& aParams )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetVmbxImageL =>" );
-    CGulIcon* guiIcon( NULL );
-    CVmbxEngineBase* vmbxEngine = NULL;
-    iVmbxFactory->CreateEngineL( vmbxEngine, aParams.iType );
-    CleanupStack::PushL( vmbxEngine );
-    if ( vmbxEngine )
-        {
-        guiIcon = vmbxEngine->GetVmbxImageL( aParams );
-        }
-    CleanupStack::PopAndDestroy( vmbxEngine ); 
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetVmbxImageL <=" );
-    return guiIcon;
-    } */
-
-// ----------------------------------------------------------------------------
-// CVoiceMailboxImpl::GetVmbxImagesL
-//
-// ----------------------------------------------------------------------------
-//
-/* CArrayPtr<CGulIcon>* CVoiceMailboxImpl::GetVmbxImagesL(
-                            RArray<TVoiceMailboxParams>& aParams )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetVmbxImagesL =>" );
-    CAknIconArray* icons =
-                new( ELeave ) CAknIconArray( KVmLbxItemsArraySize );
-    CleanupStack::PushL( icons );
-
-    const TInt count = aParams.Count();
-    VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::GetVmbxImagesL count %I",
-        count);
-    for( TInt i = 0; i < count; i++ )
-        {
-        CGulIcon *icon = GetVmbxImageL( aParams[i] );
-        icons->AppendL( icon );
-        }
-    CleanupStack::Pop( icons );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::GetVmbxImagesL <=" );
-    return icons;
-    } */
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::SaveProvisionedEntryL
-//
-// ---------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::SaveProvisionedEntryL( 
-                                    const CVoiceMailboxEntry& aEntry )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::SaveProvisionedEntryL =>" );
-    CVmbxEngineBase* vmbxEngine = NULL;
-    iVmbxFactory->CreateEngineL( vmbxEngine, aEntry.VoiceMailboxType() );
-    CleanupStack::PushL( vmbxEngine );
-    TVoiceMailboxParams params( aEntry );
-    vmbxEngine->SaveProvisionedEntryL( aEntry );
-    CleanupStack::PopAndDestroy( vmbxEngine );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::SaveProvisionedEntryL <=");
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::NotifyChangedL
-// notify changed and tell the change to observer
-// 
-// ---------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::NotifyChangedL( TVmbxType aType )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::NotifyChangedL =>" );
-    iUiUtilities->DismissDialogL();
-    if ( iNotifyCallBack )
-        {
-        CVmbxEngineBase* vmbxEngine = NULL;
-        iVmbxFactory->CreateEngineL( vmbxEngine, aType );
-        CleanupStack::PushL( vmbxEngine );
-        CVoiceMailboxEntry* entry( NULL );
-        vmbxEngine->GetL( entry );
-        CleanupStack::PushL( entry );
-        iNotifyCallBack->HandleNotifyL( *entry );
-        CleanupStack::PopAndDestroy( entry );           
-        CleanupStack::PopAndDestroy( vmbxEngine );
-        }
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::NotifyChangedL <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::VmbxUiUtilities
-// notify changed and tell the change to observer
-// 
-// ---------------------------------------------------------------------------
-//
-MVmbxUiUtilities& CVoiceMailboxImpl::VmbxUiUtilities()
-    {
-    return *iUiUtilities;
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::VmbxCenRepHandler
-// notify changed and tell the change to observer
-// 
-// ---------------------------------------------------------------------------
-//
-MVmbxCenrepHandler& CVoiceMailboxImpl::VmbxCenRepHandler()
-    {
-    return *iCenRepHandler;
-    }
-
-// ---------------------------------------------------------------------------
-// CVoiceMailboxImpl::CheckNumberProvisionedL
-// 
-// ---------------------------------------------------------------------------
-//
-void CVoiceMailboxImpl::CheckNumberProvisionedL( 
-        const TVoiceMailboxParams& aParams )
-    {
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::CheckNumberProvisionedL =>" );
-    if ( ( EVmbxVoice == aParams.iType 
-            && EVmbxSimMemory == iCenRepHandler->StoreType() )
-         || ( EVmbxVideo == aParams.iType ) )
-        {
-        // get current active process
-        RProcess curProcess;
-        TInt curProcessId( curProcess.SecureId().iId );
-        VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::CheckNumberProvisionedL \
-            Get cur process id: curProcessId = %I", curProcessId );
-        // User press 1+send key or long press 1
-        if ( KPhoneApplicationUid == curProcessId )
-            {
-            RPointerArray<CVoiceMailboxEntry> array;
-            TCleanupItem item( CleanupRPointerArray, &array );
-            CleanupStack::PushL( item );
-            GetDefinedEntriesL( array );
-            // Only operator has the possibility to configure device, 
-            // user is not allowed to edit the voice mail numbers
-            if ( array.Count() < 1 )
-                {
-                // show not allowed user editing dialog
-                iUiUtilities->ShowNotAllowedEditingDialogL();
-                }
-            CleanupStack::PopAndDestroy( &array ); //item 
-            } 
-        }
-    // User don't have access to edit cs voice or video number
-    User::Leave( KErrAccessDenied );
-    VMBLOGSTRING( "VMBX: CVoiceMailboxImpl::CheckNumberProvisionedL <=" );
-    }
-
-// End of file