gssettingsuis/Gs/GSCallPlugin/src/GSCallPluginContainer.cpp
branchRCL_3
changeset 53 8ee96d21d9bf
parent 51 8bda91a87a00
child 54 7e0eff37aedb
--- a/gssettingsuis/Gs/GSCallPlugin/src/GSCallPluginContainer.cpp	Thu Aug 19 10:12:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1064 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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:  Container for the Call folder
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "GSCallPluginContainer.h"  //for CGSCallPluginContainer
-#include "GsLogger.h"               //for logging traces
-#include "gssettingid.h"            //for constants
-#include "GSCallPluginModel.h"      //plug-in model
-#include "GSCallPlugin.h"
-
-
-#include <aknlists.h>               //for CAknSettingStyleListBox
-#include <PsetCli.h>                //for CPsetCli
-#include <PsetSAObserver.h>         //for CPsetSAObserver
-#include <PsetCSP.h>                //for CSP features
-#include <gscallpluginrsc.rsg>      //for resource IDs
-#include <csxhelp/cp.hlp.hrh>
-#include <featmgr.h>
-#include <bldvariant.hrh>
-#include <gslistbox.h>              //for listbox clases
-#include <aknViewAppUi.h>
-#include <eikappui.h>
-#include <gsfwviewuids.h>
-
-//LOCAL CONSTANTS
-_LIT( KGSNameOfClass, "CGSCallPluginContainer" );
-_LIT(KGSReplaceListControlChars, "\n\t\x2029");
-
-// ========================= MEMBER FUNCTIONS ================================
-// ---------------------------------------------------------------------------
-//
-// Symbian OS two phased constructor
-//
-// ---------------------------------------------------------------------------
-void CGSCallPluginContainer::ConstructL( const TRect& aRect )
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::ConstructL");
-
-    __GSLOGSTRING("[CGSCallPluginContainer] Creating model...");
-    iModel = CGSCallPluginModel::NewL();
-    __GSLOGSTRING("[CGSCallPluginContainer] Model created.");
-
-    iListBox = new ( ELeave ) CAknSettingStyleListBox;
-
-    __GSLOGSTRING("[CGSCallPluginContainer]--> ConstructL - Model created");
-    
-    iSsSettings = new (ELeave) RSSSettings;
-    User::LeaveIfError( iSsSettings->Open() );
-    __GSLOGSTRING("[CGSCallPluginContainer]--> ConstructL - SSSettings created & opened");
-
-    BaseConstructL( aRect,
-                    R_GS_CALL_VIEW_TITLE,
-                    R_CALL_LBX );
-
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::ConstructL");
-    }
-
-// ---------------------------------------------------------------------------
-//
-// Destructor
-//
-// ---------------------------------------------------------------------------
-CGSCallPluginContainer::~CGSCallPluginContainer()
-    {
-    if ( iSsSettings )
-        {
-        iSsSettings->Close();
-        }
-    delete iSsSettings;
-
-        delete iClirItems;
-        delete iCWItems;
-        delete iPCTItems;
-        delete iDndItems;
-
-    if ( iStillImgValues )
-        {
-        delete iStillImgValues;
-        }
-    if ( iChangeModeItems &&
-         FeatureManager::FeatureSupported ( KFeatureIdJapanPrefixChange ) )
-        {
-        delete iChangeModeItems;
-        }
-    if ( iCallDurationItems )
-        {
-        delete iCallDurationItems;
-        }
-    if ( iLongPressCallKeyItems )
-    	{
-    	delete iLongPressCallKeyItems;
-    	}
-    if ( iListboxItemArray )
-        {
-        delete iListboxItemArray;
-        }
-    if ( iOwnImageVtCallItems )
-        {
-        delete iOwnImageVtCallItems;
-        }
-    if ( iModel )
-        {
-        delete iModel;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-//
-// Creates list box
-//
-// ---------------------------------------------------------------------------
-void CGSCallPluginContainer::ConstructListBoxL( TInt aResLbxId )
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::ConstructListBoxL");
-
-    iListBox->ConstructL( this, EAknListBoxSelectionList );
-
-    iListboxItemArray = CGSListBoxItemTextArray::NewL( aResLbxId,
-        *iListBox, *iCoeEnv );
-    iListBox->Model()->SetItemTextArray( iListboxItemArray );
-    iListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
-
-    iStillImgValues =  iCoeEnv->ReadDesC16ArrayResourceL(
-        R_GS_STILL_IMAGE_SETTING_PAGE_LBX );
-
-    if ( iModel->VoIPSupported() )
-        {
-        iClirItems = iCoeEnv->ReadDesC16ArrayResourceL(
-                             R_IC_CLIR_SETTING_PAGE_LBX );
-        iCWItems = iCoeEnv->ReadDesC16ArrayResourceL(
-                             R_IC_WAITING_SETTING_PAGE_LBX );
-        iPCTItems = iCoeEnv->ReadDesC16ArrayResourceL(
-                             R_IC_PREFERRED_CALL_TYPE_SETTING_PAGE_LBX );
-        iDndItems = iCoeEnv->ReadDesC16ArrayResourceL(
-                             R_IC_DND_SETTING_PAGE_LBX );
-        }
-
-    if ( FeatureManager::FeatureSupported( KFeatureIdJapanPrefixChange ) )
-        {
-        iChangeModeItems = iCoeEnv->ReadDesC16ArrayResourceL(
-            R_GS_REPLACE_PREFIX_SETTING_PAGE_LBX );
-        }
-
-    iCallDurationItems = iCoeEnv->ReadDesC16ArrayResourceL(
-            R_GS_SHOW_CALL_DURATION_SETTING_PAGE_LBX );
-    
-    iLongPressCallKeyItems = iCoeEnv->ReadDesC16ArrayResourceL(
-            R_GS_LONG_PRESS_CALL_SETTING_PAGE_LBX );
-            
-    iOwnImageVtCallItems = iCoeEnv->ReadDesC16ArrayResourceL(
-            R_GS_OWN_IMAGE_VT_CALL_SETTING_PAGE_LBX );
-            
-    CreateListBoxItemsL();
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::ConstructListBoxL");
-    }
-
-// ---------------------------------------------------------------------------
-//
-// Creates List box items
-//
-// ---------------------------------------------------------------------------
-void CGSCallPluginContainer::CreateListBoxItemsL()
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::CreateListBoxItemsL");
-// do not get check CSP if not using WINS
-#ifndef __WINS__
-    //Set CSP on, if it is not already
-    if ( !iModel->GetCSPStatus() )
-        {
-        iModel->SetCSPActiveL( ETrue );
-        }
-#endif //__WINS__
-
-    //create slide settings items
-    if ( iModel->SlideSettingsShownL() )
-        {
-        MakeSlideSettingsItem( EGSOpeningSlideAnswerCallItemId );
-        MakeSlideSettingsItem( EGSClosingSlideEndCallItemId );
-        }
-    
-    //Create own number sending, call waiting soft-reject items and ccbs
-    MakeONSItemL();
-    MakeCWItemL();
-
-    if ( iModel->VoIPSupported() )
-        {
-        MakeICClirItemL();
-        MakeICWaitingItemL();
-#ifndef RD_VOIP_REL_2_2 
-        MakeICPreferredCallTypeItemL();
-#endif // !RD_VOIP_REL_2_2
-        MakeDndItemL();
-        }
-
-
-    MakeSoftRejectTxtItemL();
-
-    if ( FeatureManager::FeatureSupported(
-                                 KFeatureIdCsVideoTelephony ) )
-        {
-        MakeStillImageItemL(); //Still Image item
-        MakeOwnImageVtCallItemL(); //VT call own image mute item
-        }
-
-    if ( FeatureManager::FeatureSupported( KFeatureIdJapanPrefixChange ) )
-        {
-        MakeReplacePrefixItemL();
-        }
-
-    // Create on/off settings
-    MakeCallItemL( KGSSettIdSummaryAfterCall );
-    
-    //Create line in use
-    TInt als = ESSSettingsAlsNotSupported;
-    TInt alsError = iSsSettings->Get( ESSSettingsAls, als );
-
-    if ( als != ESSSettingsAlsNotSupported && alsError == KErrNone )
-        {
-        MakePLUItemL( als );
-
-        //Create Line blocking
-        TInt alsBlock = ESSSettingsAlsBlockingNotSupported;
-        alsError = iSsSettings->Get( ESSSettingsAlsBlocking, alsBlock );
-        if ( alsBlock != ESSSettingsAlsBlockingNotSupported &&
-             alsError == KErrNone )
-            {
-            MakePLBItemL( alsBlock );
-            }
-        }
-    MakeCallDurationItemL();
-    
-  #ifdef RD_VT_LONG_SEND_KEY
-    MakeLongPressCallKeyItemL();
-  #endif
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::CreateListBoxItemsL");
-    }
-
-// ---------------------------------------------------------------------------
-//
-// Updates list box with a changed item
-//
-// ---------------------------------------------------------------------------
-void CGSCallPluginContainer::UpdateListBoxL( TInt aFeatureId, TInt aNewValue )
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::UpdateListBoxL");
-    switch( aFeatureId )
-        {
-        case EGSOpeningSlideAnswerCallItemId:
-        case EGSClosingSlideEndCallItemId:
-            if ( iModel->SlideSettingsShownL() )
-                {
-                MakeSlideSettingsItem( aFeatureId );
-                }
-            break;
-        case EGSCliItemId:
-            MakeONSItemL();
-            break;
-//        case EGSCCBSItemId:
-        case EGSCallWaitingItemId:
-            return; //CW and CCBS does not have a value => no need to update
-        case EGSICSendIntCallIdItemId:
-            if ( iModel->VoIPSupported() )
-                {
-              MakeICClirItemL();
-                }
-            break;
-        case EGSICWaitingItemId:
-            if ( iModel->VoIPSupported() )
-                {
-              MakeICWaitingItemL();
-                }
-            break;
-        case EGSICPreferredTelephonyId:
-            if ( iModel->VoIPSupported() )
-                {
-              MakeICPreferredCallTypeItemL();
-                }
-            break;
-        case EGSDndItemId:
-            if ( iModel->VoIPSupported() )
-                {
-              MakeDndItemL();
-                }
-            break;
-        case EGSSummaryAfterCallItemId:
-            MakeCallItemL( KGSSettIdSummaryAfterCall );
-            break;
-        case EGSALSBlockItemId:
-            MakePLBItemL( aNewValue );
-            break;
-        case EGSLineChangeItemId:
-            MakePLUItemL( aNewValue );
-            break;
-
-        case EGSSoftRejectTextItemId:
-            MakeSoftRejectTxtItemL();
-            break;
-        case EGSStillImageItemId:
-            if ( FeatureManager::FeatureSupported(
-                                 KFeatureIdCsVideoTelephony ) )
-                {
-                MakeStillImageItemL();
-                }
-            break;
-        case EGSReplacePrefixItemId:
-            if ( FeatureManager::FeatureSupported( KFeatureIdJapanPrefixChange ) )
-                {
-                MakeReplacePrefixItemL();
-                }
-                break;
-        case EGSShowCallDurationItemId:
-            MakeCallDurationItemL();
-            break;
-        case EGSLongPressCallKeyItemId:
-		#ifdef RD_VT_LONG_SEND_KEY 
-   			MakeLongPressCallKeyItemL();
-		#endif
-    		break;
-        case EGSOwnImageVtCallItemId:
-            if ( FeatureManager::FeatureSupported(
-                                 KFeatureIdCsVideoTelephony ) )
-                {
-                MakeOwnImageVtCallItemL();
-                }
-            break;
-        default:
-            Panic( KGSNameOfClass, EInvalidIndex );
-            break;
-        }
-
-    //iListBox->HandleItemAdditionL();
-    iListBox->DrawDeferred();
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::UpdateListBoxL");
-    }
-
-
-// ---------------------------------------------------------------------------
-//
-// Creates StillImage list item.
-//
-// ---------------------------------------------------------------------------
-void CGSCallPluginContainer::MakeStillImageItemL()
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeStillImageItemL");
-    HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
-    TPtr ptrBuffer ( dynamicText->Des() );
-    
-    TInt dialogSelection = EGSVtStillImageNotInUse;
-    if ( iModel->VTStillImageL() )
-        dialogSelection = EGSVtStillImageInUse;
-    ptrBuffer = (*iStillImgValues)[ dialogSelection ];
-
-    // Finally, set the dynamic text
-    iListboxItemArray->SetDynamicTextL( EGSStillImageItemId, ptrBuffer );
-    CleanupStack::PopAndDestroy( dynamicText );
-
-    // And add to listbox
-    iListboxItemArray->SetItemVisibilityL( EGSStillImageItemId,
-        CGSListBoxItemTextArray::EVisible );
-
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeStillImageItemL");
-    }
-
-
-
-// ---------------------------------------------------------------------------
-//
-// Creates OwnNumberSending list item.
-//
-// ---------------------------------------------------------------------------
-void CGSCallPluginContainer::MakeONSItemL()
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeONSItemL");
-    HBufC16* dynamicText = NULL;
-
-    TInt clir = ESSSettingsClirNetworkDefault;
-    //to allow emulator usage without phone, do not retrieve values.
-    TInt err = iSsSettings->Get( ESSSettingsClir, clir );
-    __GSLOGSTRING2("[CGSCallPluginContainer]    MakeONSItemL: clir: %d, Error: %d", clir, err);
-    if ( err != KErrNone )
-        {
-        return;
-        }
-
-    switch( clir )
-        {
-        case ESSSettingsClirExplicitSuppress:
-            dynamicText = StringLoader::LoadL( R_CLI_SENDING_ON );
-            break;
-        case ESSSettingsClirExplicitInvoke:
-            dynamicText = StringLoader::LoadL( R_CLI_SENDING_OFF );
-            break;
-        default:
-            if ( iModel->RestrictedSendCallerIdSupportedL() )
-                {
-                //set initially to ON if restricted CLIR is supported
-                dynamicText = StringLoader::LoadL( R_CLI_SENDING_ON );
-                TInt err = iSsSettings->Set( 
-                    ESSSettingsClir, ESSSettingsClirExplicitSuppress );
-                if ( err != KErrNone )
-                    {
-                    delete dynamicText;
-                    return;
-                    }
-                }
-            else
-                {
-                dynamicText = StringLoader::LoadL( R_CLI_SENDING_DEFAULT );
-                }
-            break;
-        }
-
-    // Finally, set the dynamic text
-    iListboxItemArray->SetDynamicTextL( EGSCliItemId, *dynamicText );
-
-    // And add to listbox
-    iListboxItemArray->SetItemVisibilityL( EGSCliItemId,
-        CGSListBoxItemTextArray::EVisible );
-
-    delete dynamicText;
-    dynamicText = NULL;
-
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeONSItemL");
-    }
-
-// ---------------------------------------------------------------------------
-//
-// Creates CallWaiting list item.
-//
-// ---------------------------------------------------------------------------
-void CGSCallPluginContainer::MakeCWItemL()
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeCWItemL");
-#ifndef __WINS__
-    //Create call waiting
-    if ( iModel->IsSettingSupported( EGSCSPCallWaiting ) )
-        {
-#endif //__WINS__
-    iListboxItemArray->SetItemVisibilityL( EGSCallWaitingItemId,
-        CGSListBoxItemTextArray::EVisible );
-#ifndef __WINS__
-        }
-#endif //__WINS__
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeCWItemL");
-    }
-
-// ---------------------------------------------------------------------------
-// CGSCallPluginContainer::MakeICClirItemL()
-//
-//
-// ---------------------------------------------------------------------------
-//
-void CGSCallPluginContainer::MakeICClirItemL()
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeICClirItemL");
-    TInt value( KErrNone );
-    iModel->GetVoIPCallSettingValue( EGSVoIPSendIntCallId, value );
-
-    HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
-    TPtr ptrBuffer ( dynamicText->Des() );
-
-    ptrBuffer = ( *iClirItems )[ value ];
-
-    // Finally, set the dynamic text
-    iListboxItemArray->SetDynamicTextL( EGSICSendIntCallIdItemId, ptrBuffer );
-
-    iListboxItemArray->SetItemVisibilityL( EGSICSendIntCallIdItemId, 
-      CGSListBoxItemTextArray::EVisible );
-
-    CleanupStack::PopAndDestroy( dynamicText );
-    
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeICClirItemL");
-    }
-
-// ---------------------------------------------------------------------------
-// CGSCallPluginContainer::MakeICWaitingItemL()
-//
-//
-// ---------------------------------------------------------------------------
-//
-void CGSCallPluginContainer::MakeICWaitingItemL()
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeICWaitingItemL");
-    TInt value( KErrNone );
-    iModel->GetVoIPCallSettingValue( EGSVoIPCW, value );
-    
-    // Swap items because of different order.
-    if ( value == EGSCSCallWaitingOff )
-        {
-        value = EGSCSCallWaitingOn;
-        }
-    else
-        {
-        value = EGSCSCallWaitingOff;
-        }
-
-    HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
-    TPtr ptrBuffer ( dynamicText->Des() );
-
-    ptrBuffer = ( *iCWItems )[ value ];
-
-    // Finally, set the dynamic text
-    iListboxItemArray->SetDynamicTextL( EGSICWaitingItemId, ptrBuffer );
-    iListboxItemArray->SetItemVisibilityL( EGSICWaitingItemId, 
-        CGSListBoxItemTextArray::EVisible );
-    
-    CleanupStack::PopAndDestroy( dynamicText );
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeICWaitingItemL");
-    }
-
-// ---------------------------------------------------------------------------
-// CGSCallPluginContainer::MakeICPreferredCallTypeItemL()
-//
-//
-// ---------------------------------------------------------------------------
-//
-void CGSCallPluginContainer::MakeICPreferredCallTypeItemL()
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeICPreferredCallTypeItemL");
-    TInt value( KErrNone );
-    iModel->GetVoIPCallSettingValue( EGSVoIPPreType, value );
-    
-    HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
-    TPtr ptrBuffer ( dynamicText->Des() );
-
-    ptrBuffer = ( *iPCTItems )[ value ];
-
-    // Finally, set the dynamic text
-    iListboxItemArray->SetDynamicTextL( EGSICPreferredTelephonyId, ptrBuffer );
-    CleanupStack::PopAndDestroy( dynamicText );
-
-    iListboxItemArray->SetItemVisibilityL( EGSICPreferredTelephonyId,
-      CGSListBoxItemTextArray::EVisible );
-
-  __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeICPreferredCallTypeItemL");
-    }
-
-// ---------------------------------------------------------------------------
-// CGSCallPluginContainer::MakeDndItemL()
-//
-//
-// ---------------------------------------------------------------------------
-//
-void CGSCallPluginContainer::MakeDndItemL()
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeDndItemL");
-    TInt value( KErrNone );
-    iModel->GetVoIPCallSettingValue( EGSVoIPDnd, value );
-    
-    // Swap items because of different order.
-    if ( value == EGSCSCallDndOff )
-        {
-        value = EGSCSCallDndOn;
-        }
-    else
-        {
-        value = EGSCSCallDndOff;
-        }
-
-    HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
-    TPtr ptrBuffer ( dynamicText->Des() );
-
-    ptrBuffer = ( *iDndItems )[ value ];
-
-    // Finally, set the dynamic text
-    iListboxItemArray->SetDynamicTextL( EGSDndItemId, ptrBuffer );
-    CleanupStack::PopAndDestroy( dynamicText );
-
-    iListboxItemArray->SetItemVisibilityL( EGSDndItemId,
-      CGSListBoxItemTextArray::EVisible );
-
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeDndItemL");
-    }
-
-// ---------------------------------------------------------------------------
-//
-// Creates PhoneLineInUse list item.
-//
-// ---------------------------------------------------------------------------
-void CGSCallPluginContainer::MakePLUItemL( TInt& aAlsValue )
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakePLUItemL");
-
-    if ( aAlsValue == ESSSettingsAlsNotSupported )
-        {
-        iListboxItemArray->SetItemVisibilityL( EGSLineChangeItemId,
-                           CGSListBoxItemTextArray::EInvisible );
-        
-        __GSLOGSTRING("[CGSCallPluginContainer] <--MakePLUItemL:AlsNotSupported");
-        return;
-        }
-
-    HBufC* dynamicText = NULL;
-    
-    if ( aAlsValue == ESSSettingsAlsAlternate )
-        {
-        dynamicText = StringLoader::LoadL( R_ALS_LINE2 );
-        }
-    else
-        {
-        dynamicText = StringLoader::LoadL( R_ALS_LINE1 );
-        }
-
-    // for A&H number conversion
-    TPtr bufPtr = dynamicText->Des();
-    AknTextUtils::DisplayTextLanguageSpecificNumberConversion( bufPtr );
-
-    iListboxItemArray->SetDynamicTextL( EGSLineChangeItemId, *dynamicText );
-
-    // Add to listbox
-    iListboxItemArray->SetItemVisibilityL( EGSLineChangeItemId,
-        CGSListBoxItemTextArray::EVisible );
-
-    delete dynamicText;
-    dynamicText = NULL;
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakePLUItemL");
-    }
-
-// ---------------------------------------------------------------------------
-//
-// Creates PhoneLineBlocking list item. No item is created, if service is not
-// supported.
-//
-// ---------------------------------------------------------------------------
-void CGSCallPluginContainer::MakePLBItemL( TInt& aAlsBlockValue )
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakePLBItemL");
-    HBufC* dynamicText = NULL;
-
-    if ( aAlsBlockValue == ESSSettingsAlsBlockingOn )
-        {
-        dynamicText = StringLoader::LoadL( R_ALS_LINE_BLOCKING_ON );
-        }
-    else
-        {
-        dynamicText = StringLoader::LoadL( R_ALS_LINE_BLOCKING_OFF );
-        }
-
-    iListboxItemArray->SetDynamicTextL( EGSALSBlockItemId, *dynamicText );
-
-    // Add to listbox
-    iListboxItemArray->SetItemVisibilityL( EGSALSBlockItemId,
-        CGSListBoxItemTextArray::EVisible );
-
-    delete dynamicText;
-    dynamicText = NULL;
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakePLBItemL");
-    }
-
-// ---------------------------------------------------------------------------
-//
-// Creates Speed Dialing, Anykey Answer, Summary After Call
-// and Automatic redial items.
-//
-// ---------------------------------------------------------------------------
-void CGSCallPluginContainer::MakeCallItemL( TInt aIndex )
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeCallItemL");
-    HBufC* settingOn  = NULL;
-    HBufC* settingOff = NULL;
-    TInt value = KGSSettingOff; //default is OFF for all
-    TInt settingItem = 0;
-    TBool ok = ETrue;
-
-    TCallSettId keyName = EGSNotSet;
-
-    switch ( aIndex )
-        {
-        case KGSSettIdSummaryAfterCall:
-            keyName = EGSSummaryAfterCall;
-            settingItem = EGSSummaryAfterCallItemId;
-            settingOn = StringLoader::LoadLC( R_CALL_TERMINATION_NOTE_ON );
-            settingOff = StringLoader::LoadLC( R_CALL_TERMINATION_NOTE_OFF );
-            break;
-        default:
-            Panic( KGSNameOfClass, EInvalidIndex );
-            break;
-        }
-
-    if( ok ) //if everything is ok so far
-        {
-        iModel->GetCallSettingValue( keyName, value );
-        __GSLOGSTRING1("[CGSCallPluginContainer]    MakeCallItemL: value: %d", value);
-
-        // Finally, set the dynamic text
-        if ( value == KGSSettingOn )
-            {
-            iListboxItemArray->SetDynamicTextL( settingItem, settingOn->Des() );
-            }
-        else
-            {
-            iListboxItemArray->SetDynamicTextL( settingItem, settingOff->Des() );
-            }
-
-        CleanupStack::PopAndDestroy( 2 ); //settingOn, settingOff
-
-        // And add to listbox
-        iListboxItemArray->SetItemVisibilityL( settingItem,
-            CGSListBoxItemTextArray::EVisible );
-        }
-
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeCallItemL");
-    }
-
-// ---------------------------------------------------------------------------
-// CGSCallPluginContainer::GetHelpContext(TCoeHelpContext& aContext) const
-// Gets Help
-//
-// ---------------------------------------------------------------------------
-//
-void CGSCallPluginContainer::GetHelpContext(TCoeHelpContext& aContext) const
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::GetHelpContext");
-    aContext.iMajor = KUidGS;
-    aContext.iContext = KSCP_HLP_CALL;
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::GetHelpContext");
-    }
-
-// ---------------------------------------------------------------------------
-// Creates Call Completion When Busy Subscriber item.
-//
-// ---------------------------------------------------------------------------
-//
-/*
-void CGSCallPluginContainer::MakeCCBSItemL()
-    {
-    if ( FeatureManager::FeatureSupported( KFeatureIdPhoneCcbs ) )
-        {
-        iListboxItemArray->SetItemVisibilityL( EGSCCBSItemId,
-            CGSListBoxItemTextArray::EVisible );
-        }
-    }
-*/
-
-// ---------------------------------------------------------------------------
-// CGSCallPluginContainer::CurrentFeatureId()
-//
-// ---------------------------------------------------------------------------
-//
-TInt CGSCallPluginContainer::CurrentFeatureId( ) const
-    {
-    return iListboxItemArray->CurrentFeature( );
-    }
-
-
-// ---------------------------------------------------------------------------
-// Creates Soft reject text item.
-//
-// ---------------------------------------------------------------------------
-//
-void CGSCallPluginContainer::MakeSoftRejectTxtItemL()
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeSoftRejectTxtItemL");
-    HBufC* dynamicText = HBufC::NewLC( KGSSMSTxtEditorLength );
-    TPtr string( dynamicText->Des() );
-    string.Zero();
-
-    GetSoftRejectTextL( string );
-    if ( string.Length() == 0 )
-        {
-        string = KGSEmptySpace;
-        }
-
-
-    AknTextUtils::ReplaceCharacters( string, KGSReplaceListControlChars, 
-                                                                  TChar(' ') );
-                                                                  
-    iListboxItemArray->SetDynamicTextL( EGSSoftRejectTextItemId, string );
-
-    CleanupStack::PopAndDestroy( dynamicText );
-
-    iListboxItemArray->SetItemVisibilityL( EGSSoftRejectTextItemId,
-        CGSListBoxItemTextArray::EVisible );
-
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeSoftRejectTxtItemL");
-    }
-
-// ---------------------------------------------------------------------------
-// Gets the value to the Soft Reject Txt.
-//
-// ---------------------------------------------------------------------------
-//
-void CGSCallPluginContainer::GetSoftRejectTextL( TDes& aSoftRejectTxt )
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::GetSoftRejectTextL");
-    TInt value = KGSSettingOff;
-
-    TCallSettId keyName = EGSSoftRejectDefault;
-    iModel->GetCallSettingValue( keyName, value );
-
-    if ( value == KGSSettingOff )
-        {
-        HBufC* defaultText = ReadFromResourceL( R_SOFT_REJECT_DEFAULT_TXT );
-        CleanupStack::PushL( defaultText );
-        aSoftRejectTxt = *defaultText;
-        CleanupStack::PopAndDestroy(); //defaultText
-        }
-    else
-        {
-        TGSSMSTextEditor softRejectTxt;
-        iModel->GetSoftRejectText( softRejectTxt );
-        aSoftRejectTxt = softRejectTxt;
-        }
-
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::GetSoftRejectTextL");
-    }
-
-// ---------------------------------------------------------
-// CGSCallPluginContainer::ReadFromResourceL
-// ---------------------------------------------------------
-//
-HBufC* CGSCallPluginContainer::ReadFromResourceL(
-        TInt aResourceId )
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::ReadFromResourceL");
-    // Find the resource file
-    RConeResourceLoader loader( *iCoeEnv );
-    TParse parse;
-    parse.Set( KGSSoftRejectResource, &KDC_RESOURCE_FILES_DIR, NULL );
-    TFileName fileName( parse.FullName() );
-
-    // Get language of resource file
-    BaflUtils::NearestLanguageFile( iCoeEnv->FsSession(), fileName );
-
-    // Open resource file
-    TInt err = loader.Open( fileName );
-    if ( err == KErrNotFound )
-        {
-        return NULL;
-        }
-
-    CleanupClosePushL( loader );
-    HBufC* result = StringLoader::LoadL( aResourceId );
-    CleanupStack::PopAndDestroy(); //loader & it is closed also.
-
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::ReadFromResourceL");
-    return result;
-    }
-
-// ---------------------------------------------------------------------------
-// Creates Replace Prefix list box item.
-//
-// ---------------------------------------------------------------------------
-//
-void CGSCallPluginContainer::MakeReplacePrefixItemL()
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> MakeReplacePrefixItemL");
-    HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
-    TPtr ptrBuffer ( dynamicText->Des() );
-
-    const TInt changeMode = iModel->PrefixChangeModeL();
-    ptrBuffer = ( *iChangeModeItems )[ changeMode ];
-
-    // Finally, set the dynamic text
-    iListboxItemArray->SetDynamicTextL( EGSReplacePrefixItemId, ptrBuffer );
-    CleanupStack::PopAndDestroy( dynamicText );
-
-    // And add to listbox
-    iListboxItemArray->SetItemVisibilityL( EGSReplacePrefixItemId,
-        CGSListBoxItemTextArray::EVisible );
-
-    __GSLOGSTRING("[CGSCallPluginContainer] <--MakeReplacePrefixItemL");
-    }
-
-// ---------------------------------------------------------------------------
-// Creates Show Call Duration list box item.
-//
-// ---------------------------------------------------------------------------
-//
-void CGSCallPluginContainer::MakeCallDurationItemL()
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> MakeCallDurationItemL");
-    HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
-    TPtr ptrBuffer ( dynamicText->Des() );
-
-    const TInt duration = iModel->CallDurationL();
-    ptrBuffer = ( *iCallDurationItems )[ duration ];
-
-    // Finally, set the dynamic text
-    iListboxItemArray->SetDynamicTextL( EGSShowCallDurationItemId, ptrBuffer );
-    CleanupStack::PopAndDestroy( dynamicText );
-
-    // And add to listbox
-    iListboxItemArray->SetItemVisibilityL( EGSShowCallDurationItemId,
-        CGSListBoxItemTextArray::EVisible );
-
-    __GSLOGSTRING("[CGSCallPluginContainer] <--MakeCallDurationItemL");
-    }
-
-// ---------------------------------------------------------------------------
-// Creates Long Press Call Key list box items.
-//
-// ---------------------------------------------------------------------------
-//
-void CGSCallPluginContainer::MakeLongPressCallKeyItemL()
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> MakeLongPressCallKeyItemL");
-    HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
-    TPtr ptrBuffer ( dynamicText->Des() );
-
-    TInt statusLongPressCallKey = iModel->LongPressCallKeyL();
-	// Here we again decrement by 1 so that values resemble appropriate title 
-	// EGSLongPressCallKeyVoiceCall  ------> InActive in GS
-	// EGSLongPressCallKeyVideoCall  ------> Video Call in GS
-	// Refer to GSCallPlugin.hrh file for more info for the  description
-	iModel->MapLongPressKeyCallKeyValue( statusLongPressCallKey );
-   	ptrBuffer = ( *iLongPressCallKeyItems )[ statusLongPressCallKey ];
-
-    // Finally, set the dynamic text
-    iListboxItemArray->SetDynamicTextL( EGSLongPressCallKeyItemId, ptrBuffer );
-    CleanupStack::PopAndDestroy( dynamicText );
-
-    // And add to listbox
-    iListboxItemArray->SetItemVisibilityL( EGSLongPressCallKeyItemId,
-        CGSListBoxItemTextArray::EVisible );
-
-    __GSLOGSTRING("[CGSCallPluginContainer] <--MakeLongPressCallKeyItemL");
-    }
-
-
-// ----------------------------------------------------------------------------
-// CGSCallPluginContainer::MakeOwnImageVtCallItemL
-// 
-// Own image mute status on video call
-// ----------------------------------------------------------------------------
-//
-void CGSCallPluginContainer::MakeOwnImageVtCallItemL()
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> MakeOwnImageVtCallItemL");
-    HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
-    TPtr ptrBuffer ( dynamicText->Des() );
-
-    TInt statusOwnImageVtCallKey = iModel->OwnImageVtCallStatusL();
-   	ptrBuffer = ( *iOwnImageVtCallItems )[ statusOwnImageVtCallKey ];
-
-    // Finally, set the dynamic text
-    iListboxItemArray->SetDynamicTextL( EGSOwnImageVtCallItemId, ptrBuffer );
-    CleanupStack::PopAndDestroy( dynamicText );
-
-    // And add to listbox
-    iListboxItemArray->SetItemVisibilityL( EGSOwnImageVtCallItemId,
-        CGSListBoxItemTextArray::EVisible );
-
-    __GSLOGSTRING("[CGSCallPluginContainer] <--MakeOwnImageVtCallItemL");
-    }
-
-
-// ---------------------------------------------------------------------------
-// Sets observer for MSK label updations.
-// ---------------------------------------------------------------------------
-//
-void CGSCallPluginContainer::SetMiddleSoftkeyObserver( 
-    MGsFWMSKObserver* aObserver )
-    {
-    if ( !iMSKObserver && aObserver )
-        {        
-        iMSKObserver = aObserver;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGSCallPluginContainer::OfferKeyEventL
-// Called when a key is pressed.
-// ---------------------------------------------------------------------------
-TKeyResponse CGSCallPluginContainer::OfferKeyEventL(
-    const TKeyEvent& aKeyEvent, 
-    TEventCode aType )
-    {
-    switch ( aKeyEvent.iCode )
-        {
-        case EKeyUpArrow:
-        case EKeyDownArrow:
-            {            
-            TKeyResponse listboxResp = 
-                iListBox->OfferKeyEventL( aKeyEvent, aType );
-            if ( iMSKObserver )
-                {                
-                iMSKObserver->CheckMiddleSoftkeyLabelL();
-                }
-            return listboxResp;
-            }        
-        case EKeyLeftArrow:
-        case EKeyRightArrow:
-            // Listbox takes all events even if it doesn't use them
-            return EKeyWasNotConsumed;
-        default:
-            break;
-        }
-    
-    return iListBox->OfferKeyEventL( aKeyEvent, aType ); 
-    }
-
-// ---------------------------------------------------------------------------
-//
-// CGSCallPluginContainer::MakeSlideSettingsItem
-// Create a slide settings item ( "Opening slide to answer call" or "Closing slide to end call" ) 
-//
-// ---------------------------------------------------------------------------
-void CGSCallPluginContainer::MakeSlideSettingsItem( TInt aItemId )
-    {
-    __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeSlideSettingsItem");
-    
-    HBufC* settingValue = NULL;
-    TInt   value(0);
-    
-    switch ( aItemId )
-        {
-        case EGSOpeningSlideAnswerCallItemId:           
-            iModel->GetCallSettingValue( EGSOpeningSlideAnswerCall,value );
-            if ( EGSOpeningSlideAnswerCallOn == value )
-                {
-                settingValue = StringLoader::LoadLC
-                    ( R_CP_SETTING_OPENING_SLIDE_ANSWER );
-                }
-            else
-                {
-                settingValue = StringLoader::LoadLC
-                    ( R_CP_SETTING_OPENING_SLIDE_NOT_ANSWER );
-                }                                    
-            break;
-        case EGSClosingSlideEndCallItemId:
-            iModel->GetCallSettingValue( EGSClosingSlideEndCall,value );
-            if ( EGSClosingSlideEndCallOn == value )
-                {
-                settingValue = StringLoader::LoadLC
-                    ( R_CP_SETTING_CLOSING_SLIDE_END );
-                }
-            else 
-                {
-                settingValue = StringLoader::LoadLC
-                    ( R_CP_SETTING_CLOSING_SLIDE_NOT_END );
-                }
-            break;
-        default:
-            Panic( KGSNameOfClass, EInvalidIndex );
-        }
-    
-    iListboxItemArray->SetDynamicTextL( aItemId,settingValue->Des() );
-    
-    CleanupStack::PopAndDestroy( settingValue );
-    
-    // And add to listbox
-    iListboxItemArray->SetItemVisibilityL
-        ( aItemId,CGSListBoxItemTextArray::EVisible );
-    
-    __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeSlideSettingsItem");
-    }
-//End of File