gssettingsuis/Gs/GSCallPlugin/src/GSCallPluginContainer.cpp
changeset 18 e3554c9069b6
parent 4 3f8368f032cf
child 19 30540fccecae
equal deleted inserted replaced
4:3f8368f032cf 18:e3554c9069b6
     1 /*
       
     2 * Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Container for the Call folder
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 // INCLUDE FILES
       
    20 
       
    21 #include "GSCallPluginContainer.h"  //for CGSCallPluginContainer
       
    22 #include "GsLogger.h"               //for logging traces
       
    23 #include "gssettingid.h"            //for constants
       
    24 #include "GSCallPluginModel.h"      //plug-in model
       
    25 #include "GSCallPlugin.h"
       
    26 
       
    27 
       
    28 #include <aknlists.h>               //for CAknSettingStyleListBox
       
    29 #include <PsetCli.h>                //for CPsetCli
       
    30 #include <PsetSAObserver.h>         //for CPsetSAObserver
       
    31 #include <PsetCSP.h>                //for CSP features
       
    32 #include <GSCallPluginRsc.rsg>      //for resource IDs
       
    33 #include <csxhelp/cp.hlp.hrh>
       
    34 #include <featmgr.h>
       
    35 #include <bldvariant.hrh>
       
    36 #include <gslistbox.h>              //for listbox clases
       
    37 #include <aknViewAppUi.h>
       
    38 #include <eikappui.h>
       
    39 #include <gsfwviewuids.h>
       
    40 
       
    41 //LOCAL CONSTANTS
       
    42 _LIT( KGSNameOfClass, "CGSCallPluginContainer" );
       
    43 _LIT(KGSReplaceListControlChars, "\n\t\x2029");
       
    44 
       
    45 // ========================= MEMBER FUNCTIONS ================================
       
    46 // ---------------------------------------------------------------------------
       
    47 //
       
    48 // Symbian OS two phased constructor
       
    49 //
       
    50 // ---------------------------------------------------------------------------
       
    51 void CGSCallPluginContainer::ConstructL( const TRect& aRect )
       
    52     {
       
    53     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::ConstructL");
       
    54 
       
    55     __GSLOGSTRING("[CGSCallPluginContainer] Creating model...");
       
    56     iModel = CGSCallPluginModel::NewL();
       
    57     __GSLOGSTRING("[CGSCallPluginContainer] Model created.");
       
    58 
       
    59     iListBox = new ( ELeave ) CAknSettingStyleListBox;
       
    60 
       
    61     __GSLOGSTRING("[CGSCallPluginContainer]--> ConstructL - Model created");
       
    62     
       
    63     iSsSettings = new (ELeave) RSSSettings;
       
    64     User::LeaveIfError( iSsSettings->Open() );
       
    65     __GSLOGSTRING("[CGSCallPluginContainer]--> ConstructL - SSSettings created & opened");
       
    66 
       
    67     BaseConstructL( aRect,
       
    68                     R_GS_CALL_VIEW_TITLE,
       
    69                     R_CALL_LBX );
       
    70 
       
    71     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::ConstructL");
       
    72     }
       
    73 
       
    74 // ---------------------------------------------------------------------------
       
    75 //
       
    76 // Destructor
       
    77 //
       
    78 // ---------------------------------------------------------------------------
       
    79 CGSCallPluginContainer::~CGSCallPluginContainer()
       
    80     {
       
    81     if ( iSsSettings )
       
    82         {
       
    83         iSsSettings->Close();
       
    84         }
       
    85     delete iSsSettings;
       
    86 
       
    87         delete iClirItems;
       
    88         delete iCWItems;
       
    89         delete iPCTItems;
       
    90         delete iDndItems;
       
    91 
       
    92     if ( iStillImgValues )
       
    93         {
       
    94         delete iStillImgValues;
       
    95         }
       
    96     if ( iChangeModeItems &&
       
    97          FeatureManager::FeatureSupported ( KFeatureIdJapanPrefixChange ) )
       
    98         {
       
    99         delete iChangeModeItems;
       
   100         }
       
   101     if ( iCallDurationItems )
       
   102         {
       
   103         delete iCallDurationItems;
       
   104         }
       
   105     if ( iLongPressCallKeyItems )
       
   106     	{
       
   107     	delete iLongPressCallKeyItems;
       
   108     	}
       
   109     if ( iListboxItemArray )
       
   110         {
       
   111         delete iListboxItemArray;
       
   112         }
       
   113     if ( iOwnImageVtCallItems )
       
   114         {
       
   115         delete iOwnImageVtCallItems;
       
   116         }
       
   117     if ( iModel )
       
   118         {
       
   119         delete iModel;
       
   120         }
       
   121     }
       
   122 
       
   123 // ---------------------------------------------------------------------------
       
   124 //
       
   125 // Creates list box
       
   126 //
       
   127 // ---------------------------------------------------------------------------
       
   128 void CGSCallPluginContainer::ConstructListBoxL( TInt aResLbxId )
       
   129     {
       
   130     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::ConstructListBoxL");
       
   131 
       
   132     iListBox->ConstructL( this, EAknListBoxSelectionList );
       
   133 
       
   134     iListboxItemArray = CGSListBoxItemTextArray::NewL( aResLbxId,
       
   135         *iListBox, *iCoeEnv );
       
   136     iListBox->Model()->SetItemTextArray( iListboxItemArray );
       
   137     iListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
       
   138 
       
   139     iStillImgValues =  iCoeEnv->ReadDesC16ArrayResourceL(
       
   140         R_GS_STILL_IMAGE_SETTING_PAGE_LBX );
       
   141 
       
   142     if ( iModel->VoIPSupported() )
       
   143         {
       
   144         iClirItems = iCoeEnv->ReadDesC16ArrayResourceL(
       
   145                              R_IC_CLIR_SETTING_PAGE_LBX );
       
   146         iCWItems = iCoeEnv->ReadDesC16ArrayResourceL(
       
   147                              R_IC_WAITING_SETTING_PAGE_LBX );
       
   148         iPCTItems = iCoeEnv->ReadDesC16ArrayResourceL(
       
   149                              R_IC_PREFERRED_CALL_TYPE_SETTING_PAGE_LBX );
       
   150         iDndItems = iCoeEnv->ReadDesC16ArrayResourceL(
       
   151                              R_IC_DND_SETTING_PAGE_LBX );
       
   152         }
       
   153 
       
   154     if ( FeatureManager::FeatureSupported( KFeatureIdJapanPrefixChange ) )
       
   155         {
       
   156         iChangeModeItems = iCoeEnv->ReadDesC16ArrayResourceL(
       
   157             R_GS_REPLACE_PREFIX_SETTING_PAGE_LBX );
       
   158         }
       
   159 
       
   160     iCallDurationItems = iCoeEnv->ReadDesC16ArrayResourceL(
       
   161             R_GS_SHOW_CALL_DURATION_SETTING_PAGE_LBX );
       
   162     
       
   163     iLongPressCallKeyItems = iCoeEnv->ReadDesC16ArrayResourceL(
       
   164             R_GS_LONG_PRESS_CALL_SETTING_PAGE_LBX );
       
   165             
       
   166     iOwnImageVtCallItems = iCoeEnv->ReadDesC16ArrayResourceL(
       
   167             R_GS_OWN_IMAGE_VT_CALL_SETTING_PAGE_LBX );
       
   168             
       
   169     CreateListBoxItemsL();
       
   170     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::ConstructListBoxL");
       
   171     }
       
   172 
       
   173 // ---------------------------------------------------------------------------
       
   174 //
       
   175 // Creates List box items
       
   176 //
       
   177 // ---------------------------------------------------------------------------
       
   178 void CGSCallPluginContainer::CreateListBoxItemsL()
       
   179     {
       
   180     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::CreateListBoxItemsL");
       
   181 // do not get check CSP if not using WINS
       
   182 #ifndef __WINS__
       
   183     //Set CSP on, if it is not already
       
   184     if ( !iModel->GetCSPStatus() )
       
   185         {
       
   186         iModel->SetCSPActiveL( ETrue );
       
   187         }
       
   188 #endif //__WINS__
       
   189 
       
   190     //create slide settings items
       
   191     if ( iModel->SlideSettingsShownL() )
       
   192         {
       
   193         MakeSlideSettingsItem( EGSOpeningSlideAnswerCallItemId );
       
   194         MakeSlideSettingsItem( EGSClosingSlideEndCallItemId );
       
   195         }
       
   196     
       
   197     //Create own number sending, call waiting soft-reject items and ccbs
       
   198     MakeONSItemL();
       
   199     MakeCWItemL();
       
   200 
       
   201     if ( iModel->VoIPSupported() )
       
   202         {
       
   203         MakeICClirItemL();
       
   204         MakeICWaitingItemL();
       
   205 #ifndef RD_VOIP_REL_2_2 
       
   206         MakeICPreferredCallTypeItemL();
       
   207 #endif // !RD_VOIP_REL_2_2
       
   208         MakeDndItemL();
       
   209         }
       
   210 
       
   211 
       
   212     MakeSoftRejectTxtItemL();
       
   213 
       
   214     if ( FeatureManager::FeatureSupported(
       
   215                                  KFeatureIdCsVideoTelephony ) )
       
   216         {
       
   217         MakeStillImageItemL(); //Still Image item
       
   218         MakeOwnImageVtCallItemL(); //VT call own image mute item
       
   219         }
       
   220 
       
   221     if ( FeatureManager::FeatureSupported( KFeatureIdJapanPrefixChange ) )
       
   222         {
       
   223         MakeReplacePrefixItemL();
       
   224         }
       
   225 
       
   226     // Create on/off settings
       
   227     MakeCallItemL( KGSSettIdSummaryAfterCall );
       
   228     
       
   229     //Create line in use
       
   230     TInt als = ESSSettingsAlsNotSupported;
       
   231     TInt alsError = iSsSettings->Get( ESSSettingsAls, als );
       
   232 
       
   233     if ( als != ESSSettingsAlsNotSupported && alsError == KErrNone )
       
   234         {
       
   235         MakePLUItemL( als );
       
   236 
       
   237         //Create Line blocking
       
   238         TInt alsBlock = ESSSettingsAlsBlockingNotSupported;
       
   239         alsError = iSsSettings->Get( ESSSettingsAlsBlocking, alsBlock );
       
   240         if ( alsBlock != ESSSettingsAlsBlockingNotSupported &&
       
   241              alsError == KErrNone )
       
   242             {
       
   243             MakePLBItemL( alsBlock );
       
   244             }
       
   245         }
       
   246     MakeCallDurationItemL();
       
   247     
       
   248   #ifdef RD_VT_LONG_SEND_KEY
       
   249     MakeLongPressCallKeyItemL();
       
   250   #endif
       
   251     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::CreateListBoxItemsL");
       
   252     }
       
   253 
       
   254 // ---------------------------------------------------------------------------
       
   255 //
       
   256 // Updates list box with a changed item
       
   257 //
       
   258 // ---------------------------------------------------------------------------
       
   259 void CGSCallPluginContainer::UpdateListBoxL( TInt aFeatureId, TInt aNewValue )
       
   260     {
       
   261     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::UpdateListBoxL");
       
   262     switch( aFeatureId )
       
   263         {
       
   264         case EGSOpeningSlideAnswerCallItemId:
       
   265         case EGSClosingSlideEndCallItemId:
       
   266             if ( iModel->SlideSettingsShownL() )
       
   267                 {
       
   268                 MakeSlideSettingsItem( aFeatureId );
       
   269                 }
       
   270             break;
       
   271         case EGSCliItemId:
       
   272             MakeONSItemL();
       
   273             break;
       
   274 //        case EGSCCBSItemId:
       
   275         case EGSCallWaitingItemId:
       
   276             return; //CW and CCBS does not have a value => no need to update
       
   277         case EGSICSendIntCallIdItemId:
       
   278             if ( iModel->VoIPSupported() )
       
   279                 {
       
   280               MakeICClirItemL();
       
   281                 }
       
   282             break;
       
   283         case EGSICWaitingItemId:
       
   284             if ( iModel->VoIPSupported() )
       
   285                 {
       
   286               MakeICWaitingItemL();
       
   287                 }
       
   288             break;
       
   289         case EGSICPreferredTelephonyId:
       
   290             if ( iModel->VoIPSupported() )
       
   291                 {
       
   292               MakeICPreferredCallTypeItemL();
       
   293                 }
       
   294             break;
       
   295         case EGSDndItemId:
       
   296             if ( iModel->VoIPSupported() )
       
   297                 {
       
   298               MakeDndItemL();
       
   299                 }
       
   300             break;
       
   301         case EGSSummaryAfterCallItemId:
       
   302             MakeCallItemL( KGSSettIdSummaryAfterCall );
       
   303             break;
       
   304         case EGSALSBlockItemId:
       
   305             MakePLBItemL( aNewValue );
       
   306             break;
       
   307         case EGSLineChangeItemId:
       
   308             MakePLUItemL( aNewValue );
       
   309             break;
       
   310 
       
   311         case EGSSoftRejectTextItemId:
       
   312             MakeSoftRejectTxtItemL();
       
   313             break;
       
   314         case EGSStillImageItemId:
       
   315             if ( FeatureManager::FeatureSupported(
       
   316                                  KFeatureIdCsVideoTelephony ) )
       
   317                 {
       
   318                 MakeStillImageItemL();
       
   319                 }
       
   320             break;
       
   321         case EGSReplacePrefixItemId:
       
   322             if ( FeatureManager::FeatureSupported( KFeatureIdJapanPrefixChange ) )
       
   323                 {
       
   324                 MakeReplacePrefixItemL();
       
   325                 }
       
   326                 break;
       
   327         case EGSShowCallDurationItemId:
       
   328             MakeCallDurationItemL();
       
   329             break;
       
   330         case EGSLongPressCallKeyItemId:
       
   331 		#ifdef RD_VT_LONG_SEND_KEY 
       
   332    			MakeLongPressCallKeyItemL();
       
   333 		#endif
       
   334     		break;
       
   335         case EGSOwnImageVtCallItemId:
       
   336             if ( FeatureManager::FeatureSupported(
       
   337                                  KFeatureIdCsVideoTelephony ) )
       
   338                 {
       
   339                 MakeOwnImageVtCallItemL();
       
   340                 }
       
   341             break;
       
   342         default:
       
   343             Panic( KGSNameOfClass, EInvalidIndex );
       
   344             break;
       
   345         }
       
   346 
       
   347     //iListBox->HandleItemAdditionL();
       
   348     iListBox->DrawDeferred();
       
   349     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::UpdateListBoxL");
       
   350     }
       
   351 
       
   352 
       
   353 // ---------------------------------------------------------------------------
       
   354 //
       
   355 // Creates StillImage list item.
       
   356 //
       
   357 // ---------------------------------------------------------------------------
       
   358 void CGSCallPluginContainer::MakeStillImageItemL()
       
   359     {
       
   360     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeStillImageItemL");
       
   361     HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
       
   362     TPtr ptrBuffer ( dynamicText->Des() );
       
   363     
       
   364     TInt dialogSelection = EGSVtStillImageNotInUse;
       
   365     if ( iModel->VTStillImageL() )
       
   366         dialogSelection = EGSVtStillImageInUse;
       
   367     ptrBuffer = (*iStillImgValues)[ dialogSelection ];
       
   368 
       
   369     // Finally, set the dynamic text
       
   370     iListboxItemArray->SetDynamicTextL( EGSStillImageItemId, ptrBuffer );
       
   371     CleanupStack::PopAndDestroy( dynamicText );
       
   372 
       
   373     // And add to listbox
       
   374     iListboxItemArray->SetItemVisibilityL( EGSStillImageItemId,
       
   375         CGSListBoxItemTextArray::EVisible );
       
   376 
       
   377     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeStillImageItemL");
       
   378     }
       
   379 
       
   380 
       
   381 
       
   382 // ---------------------------------------------------------------------------
       
   383 //
       
   384 // Creates OwnNumberSending list item.
       
   385 //
       
   386 // ---------------------------------------------------------------------------
       
   387 void CGSCallPluginContainer::MakeONSItemL()
       
   388     {
       
   389     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeONSItemL");
       
   390     HBufC16* dynamicText = NULL;
       
   391 
       
   392     TInt clir = ESSSettingsClirNetworkDefault;
       
   393     //to allow emulator usage without phone, do not retrieve values.
       
   394     TInt err = iSsSettings->Get( ESSSettingsClir, clir );
       
   395     __GSLOGSTRING2("[CGSCallPluginContainer]    MakeONSItemL: clir: %d, Error: %d", clir, err);
       
   396     if ( err != KErrNone )
       
   397         {
       
   398         return;
       
   399         }
       
   400 
       
   401     switch( clir )
       
   402         {
       
   403         case ESSSettingsClirExplicitSuppress:
       
   404             dynamicText = StringLoader::LoadL( R_CLI_SENDING_ON );
       
   405             break;
       
   406         case ESSSettingsClirExplicitInvoke:
       
   407             dynamicText = StringLoader::LoadL( R_CLI_SENDING_OFF );
       
   408             break;
       
   409         default:
       
   410             if ( iModel->RestrictedSendCallerIdSupportedL() )
       
   411                 {
       
   412                 //set initially to ON if restricted CLIR is supported
       
   413                 dynamicText = StringLoader::LoadL( R_CLI_SENDING_ON );
       
   414                 TInt err = iSsSettings->Set( 
       
   415                     ESSSettingsClir, ESSSettingsClirExplicitSuppress );
       
   416                 if ( err != KErrNone )
       
   417                     {
       
   418                     delete dynamicText;
       
   419                     return;
       
   420                     }
       
   421                 }
       
   422             else
       
   423                 {
       
   424                 dynamicText = StringLoader::LoadL( R_CLI_SENDING_DEFAULT );
       
   425                 }
       
   426             break;
       
   427         }
       
   428 
       
   429     // Finally, set the dynamic text
       
   430     iListboxItemArray->SetDynamicTextL( EGSCliItemId, *dynamicText );
       
   431 
       
   432     // And add to listbox
       
   433     iListboxItemArray->SetItemVisibilityL( EGSCliItemId,
       
   434         CGSListBoxItemTextArray::EVisible );
       
   435 
       
   436     delete dynamicText;
       
   437     dynamicText = NULL;
       
   438 
       
   439     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeONSItemL");
       
   440     }
       
   441 
       
   442 // ---------------------------------------------------------------------------
       
   443 //
       
   444 // Creates CallWaiting list item.
       
   445 //
       
   446 // ---------------------------------------------------------------------------
       
   447 void CGSCallPluginContainer::MakeCWItemL()
       
   448     {
       
   449     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeCWItemL");
       
   450 #ifndef __WINS__
       
   451     //Create call waiting
       
   452     if ( iModel->IsSettingSupported( EGSCSPCallWaiting ) )
       
   453         {
       
   454 #endif //__WINS__
       
   455     iListboxItemArray->SetItemVisibilityL( EGSCallWaitingItemId,
       
   456         CGSListBoxItemTextArray::EVisible );
       
   457 #ifndef __WINS__
       
   458         }
       
   459 #endif //__WINS__
       
   460     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeCWItemL");
       
   461     }
       
   462 
       
   463 // ---------------------------------------------------------------------------
       
   464 // CGSCallPluginContainer::MakeICClirItemL()
       
   465 //
       
   466 //
       
   467 // ---------------------------------------------------------------------------
       
   468 //
       
   469 void CGSCallPluginContainer::MakeICClirItemL()
       
   470     {
       
   471     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeICClirItemL");
       
   472     TInt value( KErrNone );
       
   473     iModel->GetVoIPCallSettingValue( EGSVoIPSendIntCallId, value );
       
   474 
       
   475     HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
       
   476     TPtr ptrBuffer ( dynamicText->Des() );
       
   477 
       
   478     ptrBuffer = ( *iClirItems )[ value ];
       
   479 
       
   480     // Finally, set the dynamic text
       
   481     iListboxItemArray->SetDynamicTextL( EGSICSendIntCallIdItemId, ptrBuffer );
       
   482 
       
   483     iListboxItemArray->SetItemVisibilityL( EGSICSendIntCallIdItemId, 
       
   484       CGSListBoxItemTextArray::EVisible );
       
   485 
       
   486     CleanupStack::PopAndDestroy( dynamicText );
       
   487     
       
   488     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeICClirItemL");
       
   489     }
       
   490 
       
   491 // ---------------------------------------------------------------------------
       
   492 // CGSCallPluginContainer::MakeICWaitingItemL()
       
   493 //
       
   494 //
       
   495 // ---------------------------------------------------------------------------
       
   496 //
       
   497 void CGSCallPluginContainer::MakeICWaitingItemL()
       
   498     {
       
   499     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeICWaitingItemL");
       
   500     TInt value( KErrNone );
       
   501     iModel->GetVoIPCallSettingValue( EGSVoIPCW, value );
       
   502     
       
   503     // Swap items because of different order.
       
   504     if ( value == EGSCSCallWaitingOff )
       
   505         {
       
   506         value = EGSCSCallWaitingOn;
       
   507         }
       
   508     else
       
   509         {
       
   510         value = EGSCSCallWaitingOff;
       
   511         }
       
   512 
       
   513     HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
       
   514     TPtr ptrBuffer ( dynamicText->Des() );
       
   515 
       
   516     ptrBuffer = ( *iCWItems )[ value ];
       
   517 
       
   518     // Finally, set the dynamic text
       
   519     iListboxItemArray->SetDynamicTextL( EGSICWaitingItemId, ptrBuffer );
       
   520     iListboxItemArray->SetItemVisibilityL( EGSICWaitingItemId, 
       
   521         CGSListBoxItemTextArray::EVisible );
       
   522     
       
   523     CleanupStack::PopAndDestroy( dynamicText );
       
   524     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeICWaitingItemL");
       
   525     }
       
   526 
       
   527 // ---------------------------------------------------------------------------
       
   528 // CGSCallPluginContainer::MakeICPreferredCallTypeItemL()
       
   529 //
       
   530 //
       
   531 // ---------------------------------------------------------------------------
       
   532 //
       
   533 void CGSCallPluginContainer::MakeICPreferredCallTypeItemL()
       
   534     {
       
   535     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeICPreferredCallTypeItemL");
       
   536     TInt value( KErrNone );
       
   537     iModel->GetVoIPCallSettingValue( EGSVoIPPreType, value );
       
   538     
       
   539     HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
       
   540     TPtr ptrBuffer ( dynamicText->Des() );
       
   541 
       
   542     ptrBuffer = ( *iPCTItems )[ value ];
       
   543 
       
   544     // Finally, set the dynamic text
       
   545     iListboxItemArray->SetDynamicTextL( EGSICPreferredTelephonyId, ptrBuffer );
       
   546     CleanupStack::PopAndDestroy( dynamicText );
       
   547 
       
   548     iListboxItemArray->SetItemVisibilityL( EGSICPreferredTelephonyId,
       
   549       CGSListBoxItemTextArray::EVisible );
       
   550 
       
   551   __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeICPreferredCallTypeItemL");
       
   552     }
       
   553 
       
   554 // ---------------------------------------------------------------------------
       
   555 // CGSCallPluginContainer::MakeDndItemL()
       
   556 //
       
   557 //
       
   558 // ---------------------------------------------------------------------------
       
   559 //
       
   560 void CGSCallPluginContainer::MakeDndItemL()
       
   561     {
       
   562     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeDndItemL");
       
   563     TInt value( KErrNone );
       
   564     iModel->GetVoIPCallSettingValue( EGSVoIPDnd, value );
       
   565     
       
   566     // Swap items because of different order.
       
   567     if ( value == EGSCSCallDndOff )
       
   568         {
       
   569         value = EGSCSCallDndOn;
       
   570         }
       
   571     else
       
   572         {
       
   573         value = EGSCSCallDndOff;
       
   574         }
       
   575 
       
   576     HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
       
   577     TPtr ptrBuffer ( dynamicText->Des() );
       
   578 
       
   579     ptrBuffer = ( *iDndItems )[ value ];
       
   580 
       
   581     // Finally, set the dynamic text
       
   582     iListboxItemArray->SetDynamicTextL( EGSDndItemId, ptrBuffer );
       
   583     CleanupStack::PopAndDestroy( dynamicText );
       
   584 
       
   585     iListboxItemArray->SetItemVisibilityL( EGSDndItemId,
       
   586       CGSListBoxItemTextArray::EVisible );
       
   587 
       
   588     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeDndItemL");
       
   589     }
       
   590 
       
   591 // ---------------------------------------------------------------------------
       
   592 //
       
   593 // Creates PhoneLineInUse list item.
       
   594 //
       
   595 // ---------------------------------------------------------------------------
       
   596 void CGSCallPluginContainer::MakePLUItemL( TInt& aAlsValue )
       
   597     {
       
   598     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakePLUItemL");
       
   599 
       
   600     if ( aAlsValue == ESSSettingsAlsNotSupported )
       
   601         {
       
   602         iListboxItemArray->SetItemVisibilityL( EGSLineChangeItemId,
       
   603                            CGSListBoxItemTextArray::EInvisible );
       
   604         
       
   605         __GSLOGSTRING("[CGSCallPluginContainer] <--MakePLUItemL:AlsNotSupported");
       
   606         return;
       
   607         }
       
   608 
       
   609     HBufC* dynamicText = NULL;
       
   610     
       
   611     if ( aAlsValue == ESSSettingsAlsAlternate )
       
   612         {
       
   613         dynamicText = StringLoader::LoadL( R_ALS_LINE2 );
       
   614         }
       
   615     else
       
   616         {
       
   617         dynamicText = StringLoader::LoadL( R_ALS_LINE1 );
       
   618         }
       
   619 
       
   620     // for A&H number conversion
       
   621     TPtr bufPtr = dynamicText->Des();
       
   622     AknTextUtils::DisplayTextLanguageSpecificNumberConversion( bufPtr );
       
   623 
       
   624     iListboxItemArray->SetDynamicTextL( EGSLineChangeItemId, *dynamicText );
       
   625 
       
   626     // Add to listbox
       
   627     iListboxItemArray->SetItemVisibilityL( EGSLineChangeItemId,
       
   628         CGSListBoxItemTextArray::EVisible );
       
   629 
       
   630     delete dynamicText;
       
   631     dynamicText = NULL;
       
   632     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakePLUItemL");
       
   633     }
       
   634 
       
   635 // ---------------------------------------------------------------------------
       
   636 //
       
   637 // Creates PhoneLineBlocking list item. No item is created, if service is not
       
   638 // supported.
       
   639 //
       
   640 // ---------------------------------------------------------------------------
       
   641 void CGSCallPluginContainer::MakePLBItemL( TInt& aAlsBlockValue )
       
   642     {
       
   643     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakePLBItemL");
       
   644     HBufC* dynamicText = NULL;
       
   645 
       
   646     if ( aAlsBlockValue == ESSSettingsAlsBlockingOn )
       
   647         {
       
   648         dynamicText = StringLoader::LoadL( R_ALS_LINE_BLOCKING_ON );
       
   649         }
       
   650     else
       
   651         {
       
   652         dynamicText = StringLoader::LoadL( R_ALS_LINE_BLOCKING_OFF );
       
   653         }
       
   654 
       
   655     iListboxItemArray->SetDynamicTextL( EGSALSBlockItemId, *dynamicText );
       
   656 
       
   657     // Add to listbox
       
   658     iListboxItemArray->SetItemVisibilityL( EGSALSBlockItemId,
       
   659         CGSListBoxItemTextArray::EVisible );
       
   660 
       
   661     delete dynamicText;
       
   662     dynamicText = NULL;
       
   663     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakePLBItemL");
       
   664     }
       
   665 
       
   666 // ---------------------------------------------------------------------------
       
   667 //
       
   668 // Creates Speed Dialing, Anykey Answer, Summary After Call
       
   669 // and Automatic redial items.
       
   670 //
       
   671 // ---------------------------------------------------------------------------
       
   672 void CGSCallPluginContainer::MakeCallItemL( TInt aIndex )
       
   673     {
       
   674     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeCallItemL");
       
   675     HBufC* settingOn  = NULL;
       
   676     HBufC* settingOff = NULL;
       
   677     TInt value = KGSSettingOff; //default is OFF for all
       
   678     TInt settingItem = 0;
       
   679     TBool ok = ETrue;
       
   680 
       
   681     TCallSettId keyName = EGSNotSet;
       
   682 
       
   683     switch ( aIndex )
       
   684         {
       
   685         case KGSSettIdSummaryAfterCall:
       
   686             keyName = EGSSummaryAfterCall;
       
   687             settingItem = EGSSummaryAfterCallItemId;
       
   688             settingOn = StringLoader::LoadLC( R_CALL_TERMINATION_NOTE_ON );
       
   689             settingOff = StringLoader::LoadLC( R_CALL_TERMINATION_NOTE_OFF );
       
   690             break;
       
   691         default:
       
   692             Panic( KGSNameOfClass, EInvalidIndex );
       
   693             break;
       
   694         }
       
   695 
       
   696     if( ok ) //if everything is ok so far
       
   697         {
       
   698         iModel->GetCallSettingValue( keyName, value );
       
   699         __GSLOGSTRING1("[CGSCallPluginContainer]    MakeCallItemL: value: %d", value);
       
   700 
       
   701         // Finally, set the dynamic text
       
   702         if ( value == KGSSettingOn )
       
   703             {
       
   704             iListboxItemArray->SetDynamicTextL( settingItem, settingOn->Des() );
       
   705             }
       
   706         else
       
   707             {
       
   708             iListboxItemArray->SetDynamicTextL( settingItem, settingOff->Des() );
       
   709             }
       
   710 
       
   711         CleanupStack::PopAndDestroy( 2 ); //settingOn, settingOff
       
   712 
       
   713         // And add to listbox
       
   714         iListboxItemArray->SetItemVisibilityL( settingItem,
       
   715             CGSListBoxItemTextArray::EVisible );
       
   716         }
       
   717 
       
   718     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeCallItemL");
       
   719     }
       
   720 
       
   721 // ---------------------------------------------------------------------------
       
   722 // CGSCallPluginContainer::GetHelpContext(TCoeHelpContext& aContext) const
       
   723 // Gets Help
       
   724 //
       
   725 // ---------------------------------------------------------------------------
       
   726 //
       
   727 void CGSCallPluginContainer::GetHelpContext(TCoeHelpContext& aContext) const
       
   728     {
       
   729     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::GetHelpContext");
       
   730     aContext.iMajor = KUidGS;
       
   731     aContext.iContext = KSCP_HLP_CALL;
       
   732     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::GetHelpContext");
       
   733     }
       
   734 
       
   735 // ---------------------------------------------------------------------------
       
   736 // Creates Call Completion When Busy Subscriber item.
       
   737 //
       
   738 // ---------------------------------------------------------------------------
       
   739 //
       
   740 /*
       
   741 void CGSCallPluginContainer::MakeCCBSItemL()
       
   742     {
       
   743     if ( FeatureManager::FeatureSupported( KFeatureIdPhoneCcbs ) )
       
   744         {
       
   745         iListboxItemArray->SetItemVisibilityL( EGSCCBSItemId,
       
   746             CGSListBoxItemTextArray::EVisible );
       
   747         }
       
   748     }
       
   749 */
       
   750 
       
   751 // ---------------------------------------------------------------------------
       
   752 // CGSCallPluginContainer::CurrentFeatureId()
       
   753 //
       
   754 // ---------------------------------------------------------------------------
       
   755 //
       
   756 TInt CGSCallPluginContainer::CurrentFeatureId( ) const
       
   757     {
       
   758     return iListboxItemArray->CurrentFeature( );
       
   759     }
       
   760 
       
   761 
       
   762 // ---------------------------------------------------------------------------
       
   763 // Creates Soft reject text item.
       
   764 //
       
   765 // ---------------------------------------------------------------------------
       
   766 //
       
   767 void CGSCallPluginContainer::MakeSoftRejectTxtItemL()
       
   768     {
       
   769     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeSoftRejectTxtItemL");
       
   770     HBufC* dynamicText = HBufC::NewLC( KGSSMSTxtEditorLength );
       
   771     TPtr string( dynamicText->Des() );
       
   772     string.Zero();
       
   773 
       
   774     GetSoftRejectTextL( string );
       
   775     if ( string.Length() == 0 )
       
   776         {
       
   777         string = KGSEmptySpace;
       
   778         }
       
   779 
       
   780 
       
   781     AknTextUtils::ReplaceCharacters( string, KGSReplaceListControlChars, 
       
   782                                                                   TChar(' ') );
       
   783                                                                   
       
   784     iListboxItemArray->SetDynamicTextL( EGSSoftRejectTextItemId, string );
       
   785 
       
   786     CleanupStack::PopAndDestroy( dynamicText );
       
   787 
       
   788     iListboxItemArray->SetItemVisibilityL( EGSSoftRejectTextItemId,
       
   789         CGSListBoxItemTextArray::EVisible );
       
   790 
       
   791     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeSoftRejectTxtItemL");
       
   792     }
       
   793 
       
   794 // ---------------------------------------------------------------------------
       
   795 // Gets the value to the Soft Reject Txt.
       
   796 //
       
   797 // ---------------------------------------------------------------------------
       
   798 //
       
   799 void CGSCallPluginContainer::GetSoftRejectTextL( TDes& aSoftRejectTxt )
       
   800     {
       
   801     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::GetSoftRejectTextL");
       
   802     TInt value = KGSSettingOff;
       
   803 
       
   804     TCallSettId keyName = EGSSoftRejectDefault;
       
   805     iModel->GetCallSettingValue( keyName, value );
       
   806 
       
   807     if ( value == KGSSettingOff )
       
   808         {
       
   809         HBufC* defaultText = ReadFromResourceL( R_SOFT_REJECT_DEFAULT_TXT );
       
   810         CleanupStack::PushL( defaultText );
       
   811         aSoftRejectTxt = *defaultText;
       
   812         CleanupStack::PopAndDestroy(); //defaultText
       
   813         }
       
   814     else
       
   815         {
       
   816         TGSSMSTextEditor softRejectTxt;
       
   817         iModel->GetSoftRejectText( softRejectTxt );
       
   818         aSoftRejectTxt = softRejectTxt;
       
   819         }
       
   820 
       
   821     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::GetSoftRejectTextL");
       
   822     }
       
   823 
       
   824 // ---------------------------------------------------------
       
   825 // CGSCallPluginContainer::ReadFromResourceL
       
   826 // ---------------------------------------------------------
       
   827 //
       
   828 HBufC* CGSCallPluginContainer::ReadFromResourceL(
       
   829         TInt aResourceId )
       
   830     {
       
   831     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::ReadFromResourceL");
       
   832     // Find the resource file
       
   833     RConeResourceLoader loader( *iCoeEnv );
       
   834     TParse parse;
       
   835     parse.Set( KGSSoftRejectResource, &KDC_RESOURCE_FILES_DIR, NULL );
       
   836     TFileName fileName( parse.FullName() );
       
   837 
       
   838     // Get language of resource file
       
   839     BaflUtils::NearestLanguageFile( iCoeEnv->FsSession(), fileName );
       
   840 
       
   841     // Open resource file
       
   842     TInt err = loader.Open( fileName );
       
   843     if ( err == KErrNotFound )
       
   844         {
       
   845         return NULL;
       
   846         }
       
   847 
       
   848     CleanupClosePushL( loader );
       
   849     HBufC* result = StringLoader::LoadL( aResourceId );
       
   850     CleanupStack::PopAndDestroy(); //loader & it is closed also.
       
   851 
       
   852     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::ReadFromResourceL");
       
   853     return result;
       
   854     }
       
   855 
       
   856 // ---------------------------------------------------------------------------
       
   857 // Creates Replace Prefix list box item.
       
   858 //
       
   859 // ---------------------------------------------------------------------------
       
   860 //
       
   861 void CGSCallPluginContainer::MakeReplacePrefixItemL()
       
   862     {
       
   863     __GSLOGSTRING("[CGSCallPluginContainer]--> MakeReplacePrefixItemL");
       
   864     HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
       
   865     TPtr ptrBuffer ( dynamicText->Des() );
       
   866 
       
   867     const TInt changeMode = iModel->PrefixChangeModeL();
       
   868     ptrBuffer = ( *iChangeModeItems )[ changeMode ];
       
   869 
       
   870     // Finally, set the dynamic text
       
   871     iListboxItemArray->SetDynamicTextL( EGSReplacePrefixItemId, ptrBuffer );
       
   872     CleanupStack::PopAndDestroy( dynamicText );
       
   873 
       
   874     // And add to listbox
       
   875     iListboxItemArray->SetItemVisibilityL( EGSReplacePrefixItemId,
       
   876         CGSListBoxItemTextArray::EVisible );
       
   877 
       
   878     __GSLOGSTRING("[CGSCallPluginContainer] <--MakeReplacePrefixItemL");
       
   879     }
       
   880 
       
   881 // ---------------------------------------------------------------------------
       
   882 // Creates Show Call Duration list box item.
       
   883 //
       
   884 // ---------------------------------------------------------------------------
       
   885 //
       
   886 void CGSCallPluginContainer::MakeCallDurationItemL()
       
   887     {
       
   888     __GSLOGSTRING("[CGSCallPluginContainer]--> MakeCallDurationItemL");
       
   889     HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
       
   890     TPtr ptrBuffer ( dynamicText->Des() );
       
   891 
       
   892     const TInt duration = iModel->CallDurationL();
       
   893     ptrBuffer = ( *iCallDurationItems )[ duration ];
       
   894 
       
   895     // Finally, set the dynamic text
       
   896     iListboxItemArray->SetDynamicTextL( EGSShowCallDurationItemId, ptrBuffer );
       
   897     CleanupStack::PopAndDestroy( dynamicText );
       
   898 
       
   899     // And add to listbox
       
   900     iListboxItemArray->SetItemVisibilityL( EGSShowCallDurationItemId,
       
   901         CGSListBoxItemTextArray::EVisible );
       
   902 
       
   903     __GSLOGSTRING("[CGSCallPluginContainer] <--MakeCallDurationItemL");
       
   904     }
       
   905 
       
   906 // ---------------------------------------------------------------------------
       
   907 // Creates Long Press Call Key list box items.
       
   908 //
       
   909 // ---------------------------------------------------------------------------
       
   910 //
       
   911 void CGSCallPluginContainer::MakeLongPressCallKeyItemL()
       
   912     {
       
   913     __GSLOGSTRING("[CGSCallPluginContainer]--> MakeLongPressCallKeyItemL");
       
   914     HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
       
   915     TPtr ptrBuffer ( dynamicText->Des() );
       
   916 
       
   917     TInt statusLongPressCallKey = iModel->LongPressCallKeyL();
       
   918 	// Here we again decrement by 1 so that values resemble appropriate title 
       
   919 	// EGSLongPressCallKeyVoiceCall  ------> InActive in GS
       
   920 	// EGSLongPressCallKeyVideoCall  ------> Video Call in GS
       
   921 	// Refer to GSCallPlugin.hrh file for more info for the  description
       
   922 	iModel->MapLongPressKeyCallKeyValue( statusLongPressCallKey );
       
   923    	ptrBuffer = ( *iLongPressCallKeyItems )[ statusLongPressCallKey ];
       
   924 
       
   925     // Finally, set the dynamic text
       
   926     iListboxItemArray->SetDynamicTextL( EGSLongPressCallKeyItemId, ptrBuffer );
       
   927     CleanupStack::PopAndDestroy( dynamicText );
       
   928 
       
   929     // And add to listbox
       
   930     iListboxItemArray->SetItemVisibilityL( EGSLongPressCallKeyItemId,
       
   931         CGSListBoxItemTextArray::EVisible );
       
   932 
       
   933     __GSLOGSTRING("[CGSCallPluginContainer] <--MakeLongPressCallKeyItemL");
       
   934     }
       
   935 
       
   936 
       
   937 // ----------------------------------------------------------------------------
       
   938 // CGSCallPluginContainer::MakeOwnImageVtCallItemL
       
   939 // 
       
   940 // Own image mute status on video call
       
   941 // ----------------------------------------------------------------------------
       
   942 //
       
   943 void CGSCallPluginContainer::MakeOwnImageVtCallItemL()
       
   944     {
       
   945     __GSLOGSTRING("[CGSCallPluginContainer]--> MakeOwnImageVtCallItemL");
       
   946     HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
       
   947     TPtr ptrBuffer ( dynamicText->Des() );
       
   948 
       
   949     TInt statusOwnImageVtCallKey = iModel->OwnImageVtCallStatusL();
       
   950    	ptrBuffer = ( *iOwnImageVtCallItems )[ statusOwnImageVtCallKey ];
       
   951 
       
   952     // Finally, set the dynamic text
       
   953     iListboxItemArray->SetDynamicTextL( EGSOwnImageVtCallItemId, ptrBuffer );
       
   954     CleanupStack::PopAndDestroy( dynamicText );
       
   955 
       
   956     // And add to listbox
       
   957     iListboxItemArray->SetItemVisibilityL( EGSOwnImageVtCallItemId,
       
   958         CGSListBoxItemTextArray::EVisible );
       
   959 
       
   960     __GSLOGSTRING("[CGSCallPluginContainer] <--MakeOwnImageVtCallItemL");
       
   961     }
       
   962 
       
   963 
       
   964 // ---------------------------------------------------------------------------
       
   965 // Sets observer for MSK label updations.
       
   966 // ---------------------------------------------------------------------------
       
   967 //
       
   968 void CGSCallPluginContainer::SetMiddleSoftkeyObserver( 
       
   969     MGsFWMSKObserver* aObserver )
       
   970     {
       
   971     if ( !iMSKObserver && aObserver )
       
   972         {        
       
   973         iMSKObserver = aObserver;
       
   974         }
       
   975     }
       
   976 
       
   977 // ---------------------------------------------------------------------------
       
   978 // CGSCallPluginContainer::OfferKeyEventL
       
   979 // Called when a key is pressed.
       
   980 // ---------------------------------------------------------------------------
       
   981 TKeyResponse CGSCallPluginContainer::OfferKeyEventL(
       
   982     const TKeyEvent& aKeyEvent, 
       
   983     TEventCode aType )
       
   984     {
       
   985     switch ( aKeyEvent.iCode )
       
   986         {
       
   987         case EKeyUpArrow:
       
   988         case EKeyDownArrow:
       
   989             {            
       
   990             TKeyResponse listboxResp = 
       
   991                 iListBox->OfferKeyEventL( aKeyEvent, aType );
       
   992             if ( iMSKObserver )
       
   993                 {                
       
   994                 iMSKObserver->CheckMiddleSoftkeyLabelL();
       
   995                 }
       
   996             return listboxResp;
       
   997             }        
       
   998         case EKeyLeftArrow:
       
   999         case EKeyRightArrow:
       
  1000             // Listbox takes all events even if it doesn't use them
       
  1001             return EKeyWasNotConsumed;
       
  1002         default:
       
  1003             break;
       
  1004         }
       
  1005     
       
  1006     return iListBox->OfferKeyEventL( aKeyEvent, aType ); 
       
  1007     }
       
  1008 
       
  1009 // ---------------------------------------------------------------------------
       
  1010 //
       
  1011 // CGSCallPluginContainer::MakeSlideSettingsItem
       
  1012 // Create a slide settings item ( "Opening slide to answer call" or "Closing slide to end call" ) 
       
  1013 //
       
  1014 // ---------------------------------------------------------------------------
       
  1015 void CGSCallPluginContainer::MakeSlideSettingsItem( TInt aItemId )
       
  1016     {
       
  1017     __GSLOGSTRING("[CGSCallPluginContainer]--> CGSCallPluginContainer::MakeSlideSettingsItem");
       
  1018     
       
  1019     HBufC* settingValue = NULL;
       
  1020     TInt   value(0);
       
  1021     
       
  1022     switch ( aItemId )
       
  1023         {
       
  1024         case EGSOpeningSlideAnswerCallItemId:           
       
  1025             iModel->GetCallSettingValue( EGSOpeningSlideAnswerCall,value );
       
  1026             if ( EGSOpeningSlideAnswerCallOn == value )
       
  1027                 {
       
  1028                 settingValue = StringLoader::LoadLC
       
  1029                     ( R_CP_SETTING_OPENING_SLIDE_ANSWER );
       
  1030                 }
       
  1031             else
       
  1032                 {
       
  1033                 settingValue = StringLoader::LoadLC
       
  1034                     ( R_CP_SETTING_OPENING_SLIDE_NOT_ANSWER );
       
  1035                 }                                    
       
  1036             break;
       
  1037         case EGSClosingSlideEndCallItemId:
       
  1038             iModel->GetCallSettingValue( EGSClosingSlideEndCall,value );
       
  1039             if ( EGSClosingSlideEndCallOn == value )
       
  1040                 {
       
  1041                 settingValue = StringLoader::LoadLC
       
  1042                     ( R_CP_SETTING_CLOSING_SLIDE_END );
       
  1043                 }
       
  1044             else 
       
  1045                 {
       
  1046                 settingValue = StringLoader::LoadLC
       
  1047                     ( R_CP_SETTING_CLOSING_SLIDE_NOT_END );
       
  1048                 }
       
  1049             break;
       
  1050         default:
       
  1051             Panic( KGSNameOfClass, EInvalidIndex );
       
  1052         }
       
  1053     
       
  1054     iListboxItemArray->SetDynamicTextL( aItemId,settingValue->Des() );
       
  1055     
       
  1056     CleanupStack::PopAndDestroy( settingValue );
       
  1057     
       
  1058     // And add to listbox
       
  1059     iListboxItemArray->SetItemVisibilityL
       
  1060         ( aItemId,CGSListBoxItemTextArray::EVisible );
       
  1061     
       
  1062     __GSLOGSTRING("[CGSCallPluginContainer] <--CGSCallPluginContainer::MakeSlideSettingsItem");
       
  1063     }
       
  1064 //End of File