--- a/commsconfig/cscsettingsui/src/cscsettingsuimainview.cpp Thu Aug 19 09:45:22 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1007 +0,0 @@
-/*
-* Copyright (c) 2007-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: Implements CSCSettingsUiMainView methods
-*
-*/
-
-
-#include <hlplch.h>
-#include <aknview.h>
-#include <featmgr.h>
-#include <akntitle.h>
-#include <aknlists.h>
-#include <cchclient.h>
-#include <e32property.h>
-#include <aknViewAppUi.h>
-#include <StringLoader.h>
-#include <cmsettingsui.h>
-#include <xSPViewServices.h>
-#include <aknnotewrappers.h>
-#include <cscsettingsui.rsg>
-#include <ctsydomainpskeys.h>
-#include <akntextsettingpage.h>
-#include <cvimpstsettingsstore.h>
-#include <DRMHelper.h>
-#include <mediafilelist.h>
-#include <aknpasswordsettingpage.h>
-#include <aknradiobuttonsettingpage.h>
-#include <aknnavi.h>
-#include <aknnavide.h>
-#include <vwsdef.h>
-#include <AknDef.h>
-
-#include "cscconstants.h"
-#include "cscsettingsui.hrh"
-#include "cscsettingsuimodel.h"
-#include "cscsettingsuilogger.h"
-#include "cscengservicehandler.h"
-#include "cscengbrandinghandler.h"
-#include "cscsettingsuimainview.h"
-#include "cscsettingsuiconstants.h"
-#include "cscengservicepluginhandler.h"
-#include "cscappui.h"
-
-
-#define AppUi() (static_cast<CAknViewAppUi*>(iAvkonAppUi) )
-
-// Preferred service not set
-const TInt KPrefServiceNotSet = 0;
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-CCSCSettingsUiMainView::CCSCSettingsUiMainView(
- CCSCSettingsUiModel& aModel )
- : iModel( aModel )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainView::ConstructL()
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::ConstructL - begin" );
-
- BaseConstructL( R_CSCSETTINGSUI_MAINVIEW );
-
- // Get handle to titlepane
- CEikStatusPane* statusPane = StatusPane();
- iTitlePane = static_cast<CAknTitlePane*>
- ( statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
-
- iImToneSelectionListOpen = EFalse;
- iSnapListOpen = EFalse;
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::ConstructL - end" );
- }
-
-
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-CCSCSettingsUiMainView* CCSCSettingsUiMainView::NewL(
- CCSCSettingsUiModel& aModel )
- {
- CCSCSettingsUiMainView* self = CCSCSettingsUiMainView::NewLC( aModel );
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-CCSCSettingsUiMainView* CCSCSettingsUiMainView::NewLC(
- CCSCSettingsUiModel& aModel )
- {
- CCSCSettingsUiMainView* self =
- new ( ELeave ) CCSCSettingsUiMainView( aModel );
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-CCSCSettingsUiMainView::~CCSCSettingsUiMainView()
- {
- CSCSETUIDEBUG(
- "CCSCSettingsUiMainView::~CCSCSettingsUiMainView - begin" );
-
- // Delete container when view is deactivated.
- if ( iContainer )
- {
- AppUi()->RemoveFromViewStack( *this, iContainer );
- delete iContainer;
- }
-
- delete iNaviDecorator;
-
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::~CCSCSettingsUiMainView - end" );
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::UpdateSoftkeysL
-// Processes situation when it�s notified that softkeys need to be changed.
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainView::UpdateSoftkeysL( )
- {
- // not used
- }
-
-
-// ---------------------------------------------------------------------------
-// From CAknView.
-// CCSCSettingsUiMainView::Id
-// ---------------------------------------------------------------------------
-//
-TUid CCSCSettingsUiMainView::Id() const
- {
- return KCSCSettingsUiMainViewId;
- }
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::SetTitleTextL
-// Changes given service name to title pane.
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainView::SetTitleTextL()
- {
- // Create text and set it to titlepane.
- TBuf<KCSCSettingsUiItemLength> titleText ( KNullDesC );
- TUint entryId = iModel.CurrentSPEntryId();
- titleText = iModel.SettingsHandler().ServiceNameL( entryId );
- HBufC* text = StringLoader::LoadLC(
- R_CSCSETTINGSUI_MAINVIEW_TITLE,
- titleText );
- iTitlePane->SetTextL( *text );
- CleanupStack::PopAndDestroy( text );
- }
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::IsEditPreferredServiceSettingAllowedL
-// For checking if editing of preferred service setting is allowed
-// ---------------------------------------------------------------------------
-//
-TBool CCSCSettingsUiMainView::IsEditPreferredServiceSettingAllowedL()
- {
- TBool allowed( EFalse );
- TInt value( KErrNotFound );
-
- User::LeaveIfError(
- RProperty::Get(
- KPSUidCtsyCallInformation,
- KCTsyCallState,
- value ) );
-
- // Editing is allowed if no ongoing call.
- if ( EPSCTsyCallStateNone == value )
- {
- allowed = ETrue;
- }
- else
- {
- // Show unable to change settings note
- HBufC* string = NULL;
- string = StringLoader::LoadL(
- R_CSCSETTINGSUI_UNABLE_TO_EDIT_SETTING_NOTE );
-
- if ( string )
- {
- // Set text and show note.
- CleanupStack::PushL( string );
- CAknInformationNote* note =
- new ( ELeave ) CAknInformationNote( ETrue );
- note->ExecuteLD( *string );
- CleanupStack::PopAndDestroy( string );
- }
- }
-
- return allowed;
- }
-
-// ---------------------------------------------------------------------------
-// From CEikAppUi
-// CCSCSettingsUiMainView::HandleCommandL
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainView::HandleCommandL( TInt aCommand )
- {
- CSCSETUIDEBUG2( "CCSCSettingsUiMainView::HandleCommandL: command=%d",
- aCommand );
-
- TMainListBoxItem listBoxItem = iContainer->CurrentItem();
-
- switch ( aCommand )
- {
- case ECSCMSKSettingsUiChange:
- {
- HandleMskChangeSelectionL( listBoxItem );
- break;
- }
- case ECSCSettingsUiOpen:
- case ECSCSettingsUiChange:
- {
- HandleListBoxSelectionL();
- break;
- }
- case EAknCmdHelp:
- {
- if ( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
- {
- CArrayFix<TCoeHelpContext>* buf = AppUi()->AppHelpContextL();
- HlpLauncher::LaunchHelpApplicationL(
- iEikonEnv->WsSession(), buf );
- }
- break;
- }
- case EAknSoftkeyBack:
- {
- HandleReturnToPreviousViewL();
- break;
- }
- case ECSCSettingsUiDelete:
- {
- CSCSETUIDEBUG( " HandleCommandL - delete service" );
- iDeleted = iContainer->DeleteServiceL();
- HandleReturnToPreviousViewL( EFalse );
- break;
- }
- case EEikCmdExit:
- case EAknSoftkeyExit:
- {
- HandleSettingsUiExitL();
- break;
- }
- default:
- {
- AppUi()->HandleCommandL( aCommand );
- break;
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// From CAknView
-// CCSCSettingsUiMainView::DoActivateL
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainView::DoActivateL(
- const TVwsViewId& /*aPrevViewId*/,
- TUid /*aCustomMessageId*/,
- const TDesC8& /*aCustomMessage*/ )
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::DoActivateL - begin" );
-
- // Create container when view is activated.
- if ( !iContainer )
- {
- iContainer = new ( ELeave ) CCSCSettingsUiMainContainer( iModel );
- iContainer->SetMopParent( this );
- iContainer->ConstructL( ClientRect() );
- AppUi()->AddToStackL( *this, iContainer );
- iContainer->ListBox()->SetListBoxObserver( this );
- }
-
- SetTitleTextL();
- UpdateSoftkeysL();
- iContainer->UpdateContainerL();
-
- if ( !iNaviPane )
- {
- iNaviPane = static_cast<CAknNavigationControlContainer*>(
- iAvkonAppUi->StatusPane()->ControlL(
- TUid::Uid(EEikStatusPaneUidNavi)));
- }
-
- if ( !iNaviDecorator )
- {
- iNaviDecorator = iNaviPane->CreateNavigationLabelL();
- iNaviPane->PushL( *iNaviDecorator );
- }
-
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::DoActivateL - end" );
- }
-
-
-// ---------------------------------------------------------------------------
-// From CAknView
-// CCSCSettingsUiMainView::DoDeactivate()
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainView::DoDeactivate()
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::DoDeactivate - begin" );
-
- if ( iNaviPane && iNaviDecorator )
- {
- iNaviPane->Pop( iNaviDecorator );
- }
- delete iNaviDecorator;
- iNaviDecorator = NULL;
-
- // Delete container when view is deactivated.
- if ( iContainer )
- {
- AppUi()->RemoveFromViewStack( *this, iContainer );
- delete iContainer;
- iContainer = NULL;
- }
-
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::DoDeactivate - end" );
- }
-
-
-// ---------------------------------------------------------------------------
-// From MEikListBoxObserver
-// CSCSettingsUiMainView::HandleListBoxEventL
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainView::HandleListBoxEventL(
- CEikListBox* /*aListBox*/, TListBoxEvent aEventType )
- {
- TMainListBoxItem listBoxItem = iContainer->CurrentItem();
-
- switch ( aEventType )
- {
- case EEventEnterKeyPressed:
- case EEventItemSingleClicked:
- {
- if ( TMainListBoxItem::EPreferredService == listBoxItem.iItem ||
- TMainListBoxItem::EVccPreferredService == listBoxItem.iItem ||
- TMainListBoxItem::EHandoverNotifTone == listBoxItem.iItem )
- {
- HandleCommandL( ECSCMSKSettingsUiChange );
- }
- else
- {
- HandleListBoxSelectionL();
- }
- break;
- }
-
- default:
- break;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// From MEikListBoxObserver
-// CCSCSettingsUiMainView::HandleListBoxSelectionL
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainView::HandleListBoxSelectionL()
- {
- TMainListBoxItem listBoxItem = iContainer->CurrentItem();
-
- switch( listBoxItem.iItem )
- {
- case TMainListBoxItem::EUsername:
- ShowUsernameSettingPageL();
- break;
- case TMainListBoxItem::EPassword:
- ShowPasswordSettingPageL();
- break;
- case TMainListBoxItem::EPreferredService:
- ShowPrefServiceSettingPageL();
- break;
- case TMainListBoxItem::EVccPreferredService:
- ShowVccPrefServiceSettingPageL();
- break;
- case TMainListBoxItem::EHandoverNotifTone:
- iContainer->HandoverNotificationToneQueryL();
- break;
- case TMainListBoxItem::EImTone:
- ShowImToneSelectionListL();
- break;
- case TMainListBoxItem::EAutoacceptInv:
- iContainer->PresenceReqPrefQueryL();
- break;
- case TMainListBoxItem::EServiceConn:
- LaunchCMSettingsUiL();
- break;
- default:
- User::Leave( KErrNotSupported );
- break;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// From MEikListBoxObserver
-// CCSCSettingsUiMainView::DynInitMenuPaneL
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainView::DynInitMenuPaneL(
- TInt aResourceId, CEikMenuPane* aMenuPane )
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::DynInitMenuPaneL - begin" );
-
- if ( aMenuPane && R_CSCSETTINGSUI_MAINVIEW_MENU == aResourceId )
- {
- TMainListBoxItem listBoxItem = iContainer->CurrentItem();
-
- switch ( listBoxItem.iItem )
- {
- // Hide "Change" and show "Open"
- case TMainListBoxItem::EServiceConn:
- aMenuPane->SetItemDimmed( ECSCSettingsUiChange, ETrue );
- aMenuPane->SetItemDimmed( ECSCSettingsUiOpen, EFalse );
- break;
- // Show "Change" and hide "Open"
- case TMainListBoxItem::EUsername:
- case TMainListBoxItem::EPassword:
- case TMainListBoxItem::EPreferredService:
- case TMainListBoxItem::EVccPreferredService:
- case TMainListBoxItem::EHandoverNotifTone:
- case TMainListBoxItem::EAutoacceptInv:
- case TMainListBoxItem::EImTone:
- aMenuPane->SetItemDimmed( ECSCSettingsUiChange, EFalse );
- aMenuPane->SetItemDimmed( ECSCSettingsUiOpen, ETrue );
- break;
- // Hide both of options. Case should not be possible.
- default:
- aMenuPane->SetItemDimmed( ECSCSettingsUiChange, ETrue );
- aMenuPane->SetItemDimmed( ECSCSettingsUiOpen, ETrue );
- break;
- }
- if ( !(iModel.CCHHandler().IsServiceDisabled(
- iModel.CurrentSPEntryId() ) ) )
- {
- aMenuPane->SetItemDimmed( ECSCSettingsUiDelete, ETrue );
- }
- }
-
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::DynInitMenuPaneL - end" );
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::ShowUsernameSettingPageL()
-// Shows username setting page - for username input.
-// ---------------------------------------------------------------------------
-void CCSCSettingsUiMainView::ShowUsernameSettingPageL()
- {
- // Editing is allowed if service is disabled.
- if ( iModel.CCHHandler().IsServiceDisabled( iModel.CurrentSPEntryId() ) )
- {
- RBuf username;
- CleanupClosePushL( username );
- username.CreateL( KCCHMaxUsernameLength );
-
- User::LeaveIfError(
- iModel.CCHHandler().GetConnectionParameter(
- iModel.CurrentSPEntryId(), ECchUsername, username ) );
-
- CAknTextSettingPage* dlg =
- new(ELeave) CAknTextSettingPage(
- R_CSCSETTINGSUI_USERNAME_SETTING_PAGE, username );
-
- if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenAccepted ) )
- {
- // Set username
- User::LeaveIfError(
- iModel.CCHHandler().SetConnectionParameter(
- iModel.CurrentSPEntryId(), ECchUsername, username ) );
- }
-
- CleanupStack::PopAndDestroy( &username );
-
- iContainer->UpdateContainerL();
- }
- else
- {
- // Show unable to change settings note
- HBufC* string = NULL;
- string = StringLoader::LoadL(
- R_CSCSETTINGSUI_UNABLE_TO_EDIT_WHILE_ONLINE );
-
- if ( string )
- {
- // Set text and show note.
- CleanupStack::PushL( string );
- CAknInformationNote* note =
- new ( ELeave ) CAknInformationNote( ETrue );
- note->ExecuteLD( *string );
- CleanupStack::PopAndDestroy( string );
- }
- }
- }
-
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::ShowPasswordSettingPageL()
-// Shows password setting page - for password input.
-// ---------------------------------------------------------------------------
-void CCSCSettingsUiMainView::ShowPasswordSettingPageL()
- {
- // Editing is allowed if service is disabled.
- if ( iModel.CCHHandler().IsServiceDisabled( iModel.CurrentSPEntryId() ) )
- {
- RBuf password;
- CleanupClosePushL( password );
- password.CreateL( KCCHMaxPasswordLength );
-
- CAknAlphaPasswordSettingPage* dlg =
- new ( ELeave ) CAknAlphaPasswordSettingPage(
- R_CSCSETTINGSUI_PASSWORD_SETTING_PAGE,
- password,
- KNullDesC );
-
- if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenAccepted ) )
- {
- // Set password
- User::LeaveIfError(
- iModel.CCHHandler().SetConnectionParameter(
- iModel.CurrentSPEntryId(), ECchPassword, password ) );
- }
-
- CleanupStack::PopAndDestroy( &password );
-
- iContainer->UpdateContainerL();
- }
- else
- {
- // Show unable to change settings note
- HBufC* string = NULL;
- string = StringLoader::LoadL(
- R_CSCSETTINGSUI_UNABLE_TO_EDIT_WHILE_ONLINE );
-
- if ( string )
- {
- // Set text and show note.
- CleanupStack::PushL( string );
- CAknInformationNote* note =
- new ( ELeave ) CAknInformationNote( ETrue );
- note->ExecuteLD( *string );
- CleanupStack::PopAndDestroy( string );
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::ShowPrefServiceSettingPageL()
-// Shows Internet call preferred setting page - for ON/OFF setting items
-// ---------------------------------------------------------------------------
-void CCSCSettingsUiMainView::ShowPrefServiceSettingPageL()
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::ShowPrefServiceSettingPageL" );
-
- if ( IsEditPreferredServiceSettingAllowedL() )
- {
- CDesCArrayFlat* items =
- new ( ELeave ) CDesCArrayFlat( 2 );
- CleanupStack::PushL( items );
-
- AppendItemL( *items, R_CSCSETTINGSUI_SETTING_PREFERRED_SERVICE_ON );
- AppendItemL( *items, R_CSCSETTINGSUI_SETTING_PREFERRED_SERVICE_OFF );
-
- // Get current value of the setting
- TInt value( iModel.SettingsHandler().IsPreferredTelephonyVoip() &&
- iModel.SettingsHandler().IsPreferredService(
- iModel.CurrentSPEntryId() ) ?
- ECSCSettingsPrefServiceOn :
- ECSCSettingsPrefServiceOff);
-
- CAknRadioButtonSettingPage* dlg = new( ELeave )
- CAknRadioButtonSettingPage(
- R_CSCSETTINGSUI_PREF_SERVICE_SETTING_PAGE,
- value, items );
-
- if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
- {
- // Change value of the preferred telephony setting and set
- // current preferred service id. If preferred telephony value
- // is changed as voip then we set this service as preferred
- // service. Otherwise we set preferred service as not set (=0)
- TUint serviceId( value == ECSCSettingsPrefServiceOn ?
- iModel.CurrentSPEntryId() :
- KPrefServiceNotSet );
-
- iModel.SettingsHandler().SetVoipAsPrefTelephony(
- value == ECSCSettingsPrefServiceOn,
- serviceId );
- }
-
- CleanupStack::PopAndDestroy( items );
- iContainer->UpdateContainerL();
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::ShowVccPrefServiceSettingPageL()
-// Shows Internet call preferred setting page - for ON/OFF setting items
-// when VCC is supported
-// ---------------------------------------------------------------------------
-void CCSCSettingsUiMainView::ShowVccPrefServiceSettingPageL()
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::ShowVccPrefServiceSettingPageL" );
-
- if ( IsEditPreferredServiceSettingAllowedL() )
- {
- CDesCArrayFlat* items =
- new ( ELeave ) CDesCArrayFlat( 2 );
- CleanupStack::PushL( items );
-
- AppendItemL( *items, R_CSCSETTINGSUI_SETTING_VCC_PREFERRED_SERVICE_ON );
- AppendItemL( *items, R_CSCSETTINGSUI_SETTING_VCC_PREFERRED_SERVICE_OFF );
-
- // Get current value of the setting
- TInt value( iModel.SettingsHandler().IsPreferredTelephonyVoip() &&
- iModel.SettingsHandler().IsPreferredService(
- iModel.CurrentSPEntryId() ) ?
- ECSCSettingsPrefServiceOn :
- ECSCSettingsPrefServiceOff);
-
- CAknRadioButtonSettingPage* dlg = new( ELeave )
- CAknRadioButtonSettingPage(
- R_CSCSETTINGSUI_VCC_PREF_SERVICE_SETTING_PAGE,
- value, items );
-
- if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
- {
- // Change value of the preferred telephony setting and set
- // current preferred service id. If preferred telephony value
- // is changed as voip then we set this service as preferred
- // service. Otherwise we set preferred service as not set (=0)
- TUint serviceId( value == ECSCSettingsPrefServiceOn ?
- iModel.CurrentSPEntryId() :
- KPrefServiceNotSet );
-
- iModel.SettingsHandler().SetVoipAsPrefTelephony(
- value == ECSCSettingsPrefServiceOn,
- serviceId );
- }
-
- CleanupStack::PopAndDestroy( items );
- iContainer->UpdateContainerL();
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::ShowImToneSelectionListL()
-// ---------------------------------------------------------------------------
-void CCSCSettingsUiMainView::ShowImToneSelectionListL()
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::ShowImToneSelectionListL - begin" );
-
- if ( !iImToneSelectionListOpen )
- {
- iImToneSelectionListOpen = ETrue;
- CMediaFileList* list = CMediaFileList::NewL();
- CleanupStack::PushL( list );
-
- HBufC* popupTitle = StringLoader::LoadLC(
- R_CSCSETTINGSUI_IM_TONE_POPUP_HEADING );
-
- HBufC* noTone = StringLoader::LoadLC(
- R_CSCSETTINGSUI_NO_IM_TONE_TEXT );
-
- list->SetAttrL(
- CMediaFileList::EAttrAutomatedType,
- CDRMHelper::EAutomatedTypeIMAlert );
-
- list->SetNullItemL(
- *noTone,
- KNullDesC,
- CMediaFileList::EMediaFileTypeAudio,
- CMediaFileList::ENullItemIconOff );
-
- list->SetAttrL( CMediaFileList::EAttrTitle, *popupTitle );
-
- TBuf<KCSCMaxImToneLength> toneName;
- TInt nullItem = KErrNotFound;
-
- TBool result = list->ShowMediaFileListL(
- &toneName, &nullItem , NULL, NULL );
-
- CleanupStack::PopAndDestroy( noTone );
- CleanupStack::PopAndDestroy( popupTitle );
- CleanupStack::PopAndDestroy( list );
-
- if ( result )
- {
- iContainer->SaveImTonePathL( toneName );
- }
- else if( KErrNotFound != nullItem )
- {
- iContainer->SaveImTonePathL( KNullDesC );
- }
- else
- {
- // do nothing
- }
-
- iContainer->UpdateContainerL();
- iImToneSelectionListOpen = EFalse;
- }
-
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::ShowImToneSelectionListL - end" );
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::HandleMskChangeSelectionL()
-// Handles 'change' middle softkey selection.
-// ---------------------------------------------------------------------------
-void CCSCSettingsUiMainView::HandleMskChangeSelectionL(
- TMainListBoxItem aListBoxItem )
- {
- switch ( aListBoxItem.iItem )
- {
- case TMainListBoxItem::EPreferredService:
- case TMainListBoxItem::EVccPreferredService:
- {
- ChangePrefTelephonyValueL();
- }
- break;
- case TMainListBoxItem::EHandoverNotifTone:
- {
- ChangeHandoverNotifToneValueL();
- }
- break;
- default:
- {
- User::Leave( KErrArgument );
- }
- break;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::ChangePrefTelephonyValueL()
-// Changes the value of the preferred telephony setting
-// ---------------------------------------------------------------------------
-void CCSCSettingsUiMainView::ChangePrefTelephonyValueL()
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::ChangePrefTelephonyValueL" );
-
- if ( IsEditPreferredServiceSettingAllowedL() )
- {
- // Check is this service preferred service
- TBool prefService(
- iModel.SettingsHandler().IsPreferredTelephonyVoip() &&
- iModel.SettingsHandler().IsPreferredService(
- iModel.CurrentSPEntryId() ));
-
- // Set preferred service id as not set (=0) if preferred telephony
- // setting is changed as CS.
- TUint serviceId( prefService ? KPrefServiceNotSet :
- iModel.CurrentSPEntryId() );
-
- // Set preferred telephony setting value and current preferred
- // service id
- iModel.SettingsHandler().SetVoipAsPrefTelephony(
- !prefService,
- serviceId );
-
- iContainer->UpdateContainerL();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::ChangeHandoverNotifToneValueL()
-// Changes the value of the handover notify tone setting.
-// ---------------------------------------------------------------------------
-void CCSCSettingsUiMainView::ChangeHandoverNotifToneValueL()
- {
- TOnOff onOff = iModel.SettingsHandler().HandoverNotifTonePrefL(
- iModel.CurrentSPEntryId() );
-
- if ( EOn == onOff )
- {
- iModel.SettingsHandler().SetHandoverNotifTonePrefL(
- iModel.CurrentSPEntryId(), EOff );
- }
- else
- {
- iModel.SettingsHandler().SetHandoverNotifTonePrefL(
- iModel.CurrentSPEntryId(), EOn );
- }
-
- iContainer->UpdateContainerL();
- }
-
-// -----------------------------------------------------------------------------
-// CCSCSettingsUiMainView::AppendItemL
-// Appends resource texts to the des array.
-// -----------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainView::AppendItemL(
- CDesCArrayFlat& aList, TInt aItem )
- {
- HBufC* string = StringLoader::LoadLC( aItem );
- aList.AppendL( *string );
- CleanupStack::PopAndDestroy( string );
- }
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::LaunchCMSettingsUiL
-// Launches Connection Method Settings Ui for editing destinations.
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainView::LaunchCMSettingsUiL()
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::LaunchCMSettingsUiL" );
- if ( iSnapListOpen )
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::LaunchCMSettingsUiL end" );
- return;
- }
-
- // Launch Connection Method Settings Ui.
- CCmSettingsUi* cmSettingsUi = CCmSettingsUi::NewL();
- CleanupStack::PushL( cmSettingsUi );
- iSnapListOpen = ETrue;
- if ( CCmSettingsUi::EExit == cmSettingsUi->RunSettingsL() )
- {
- HandleCommandL( EEikCmdExit );
- }
- CleanupStack::PopAndDestroy( cmSettingsUi );
- iSnapListOpen = EFalse;
- ResetViewL();
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::LaunchCMSettingsUiL end" );
- }
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::HandleReturnToPreviousViewL
-// Handles returning to previous view where settingsui was launced.
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainView::HandleReturnToPreviousViewL( TBool aViewBack )
- {
- CSCSETUIDEBUG(
- "CCSCSettingsUiMainView::HandleReturnToPreviousViewL - IN" );
-
- if ( iModel.ReturnViewId() != KNullUid )
- {
- TUid tabview( KNullUid );
-
- // Error code not needed.
- TRAP_IGNORE(
- tabview.iUid = iModel.SettingsHandler().ServiceTabViewIdL(
- iModel.CurrentSPEntryId() ) )
-
- // Launched from phonebookview.
- // Press Back button, return PhoneBookTabView.
- if ( aViewBack && tabview.iUid == iModel.ReturnViewId().iUid )
- {
- RxSPViewServices viewServices;
- TInt err = viewServices.Activate(
- KPhoneBookTabUid.iUid,
- iModel.ReturnViewId().iUid );
-
- CSCSETUIDEBUG2( " --> ACTIVATE ERR=%d", err );
-
- AppUi()->HandleCommandL( EEikCmdExit );
- }
-
- if ( iDeleted && KCSCServiceViewId != iModel.ReturnViewId() )
- {
- // Launched from phonebookview.
- // Press Ok button, return homescreen.
- TVwsViewId idleId;
- AknDef::GetPhoneIdleViewId( idleId );
- ActivateViewL( idleId );
- AppUi()->HandleCommandL( EEikCmdExit );
- }
- else if( !iDeleted && KCSCServiceViewId != iModel.ReturnViewId() )
- {
- // Launched from phonebookview.
- // Press cancel button, return current view.
- TUid curview = Id();
- AppUi()->ActivateLocalViewL( curview );
- }
- else if( !aViewBack && !iDeleted && KCSCServiceViewId == iModel.ReturnViewId() )
- {
- // Launched from service view.
- // Press cancel button, return current view.
- TUid curview = Id();
- AppUi()->ActivateLocalViewL( curview );
- }
- else
- {
- // Launched from service view.
- // Press Back button or Press Delete button, activate previous view.
- AppUi()->ActivateLocalViewL( iModel.ReturnViewId() );
- }
- }
-
- CSCSETUIDEBUG(
- "CCSCSettingsUiMainView::HandleReturnToPreviousViewL - OUT" );
- }
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::HandleSettingsUiExitL
-// Handles exist from settingsui.
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainView::HandleSettingsUiExitL()
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::HandleSettingsUiExitL - IN" );
-
- if ( iModel.ReturnViewId() != KNullUid )
- {
- TUid tabview( KNullUid );
- TRAPD( err, tabview.iUid = iModel.SettingsHandler().ServiceTabViewIdL(
- iModel.CurrentSPEntryId() ) )
-
- if ( tabview.iUid == iModel.ReturnViewId().iUid && !err )
- {
- // Launched from service tab, go back there
- RxSPViewServices viewServices;
- viewServices.Activate(
- KPhoneBookTabUid.iUid,
- iModel.ReturnViewId().iUid );
-
- AppUi()->HandleCommandL( EEikCmdExit );
- }
- else
- {
- // Not launched from service tab, just exit
- AppUi()->HandleCommandL( EEikCmdExit );
- }
- }
-
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::HandleSettingsUiExitL - OUT" );
- }
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainView::ResetViewL
-// Resets service settings when switching services
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainView::ResetViewL()
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::ResetViewL - IN" );
-
- // Do not update view if SNAP list is open because in some cases
- // there will be problems with title and status bar.
- if ( iSnapListOpen )
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::ResetViewL - OUT" );
- return;
- }
- // Create container when view is activated.
- if ( !iContainer )
- {
- iContainer = new (ELeave) CCSCSettingsUiMainContainer( iModel );
- iContainer->SetMopParent( this );
- iContainer->ConstructL( ClientRect() );
- AppUi()->AddToStackL( *this, iContainer );
- iContainer->ListBox()->SetListBoxObserver( this );
- }
-
- SetTitleTextL();
- UpdateSoftkeysL();
- iContainer->UpdateContainerL();
-
- CSCSETUIDEBUG( "CCSCSettingsUiMainView::ResetViewL - OUT" );
- }
-
-// End of file.
-