diff -r f742655b05bf -r d38647835c2e commsconfig/cscsettingsui/src/cscsettingsuimodel.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsconfig/cscsettingsui/src/cscsettingsuimodel.cpp Wed Sep 01 12:29:57 2010 +0100 @@ -0,0 +1,269 @@ +/* +* 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 CSCSettingsUiModel methods +* +*/ + + +#include +#include +#include +#include +#include + +#include "cscsettingsui.hrh" +#include "cscengcchhandler.h" +#include "cscsettingsuimodel.h" +#include "cscsettingsuilogger.h" +#include "cscengservicehandler.h" +#include "cscengbrandinghandler.h" +#include "cscsettingsuiconstants.h" +#include "cscengdestinationshandler.h" +#include "mcscsettingsuimodelobserver.h" +#include "cscengservicepluginhandler.h" + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +CCSCSettingsUiModel::CCSCSettingsUiModel( + MCSCSettingsUiModelObserver& aObserver, + CEikonEnv& aEikEnv ) + : iObserver( aObserver ), + iEikEnv( aEikEnv ) + { + } + + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void CCSCSettingsUiModel::ConstructL() + { + CSCSETUIDEBUG( "CCSCSettingsUiModel::ConstructL - begin" ); + + // Create handle to CSC's Service Provider Settings Handler. + iSPSHandler = CCSCEngServiceHandler::NewL( this ); + + // Create handle to CSC's Converged Connection Handler. + iCCHHandler = CCSCEngCCHHandler::NewL( *this ); + + // Create handle to CSC's Destinations Handler. + iDestinationsHandler = CCSCEngDestinationsHandler::NewL(); + + // Create handle to CSC's Branding Server Handler. + iBSHandler = CCSCEngBrandingHandler::NewL(); + + // Create CSC's Service Plugin Handler. + iServicePluginHandler = CCSCEngServicePluginHandler::NewL( + iEikEnv, *this, *iSPSHandler ); + + CSCSETUIDEBUG( "CCSCSettingsUiModel::ConstructL - end" ); + } + + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +CCSCSettingsUiModel* CCSCSettingsUiModel::NewL( + MCSCSettingsUiModelObserver& aObserver, + CEikonEnv& aEikEnv ) + { + CCSCSettingsUiModel* self = + CCSCSettingsUiModel::NewLC( aObserver, aEikEnv ); + CleanupStack::Pop( self ); + return self; + } + + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +CCSCSettingsUiModel* CCSCSettingsUiModel::NewLC( + MCSCSettingsUiModelObserver& aObserver, + CEikonEnv& aEikEnv ) + { + CCSCSettingsUiModel* self = + new ( ELeave ) CCSCSettingsUiModel( aObserver, aEikEnv ); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +CCSCSettingsUiModel::~CCSCSettingsUiModel() + { + CSCSETUIDEBUG( "CCSCSettingsUiModel::~CCSCSettingsUiModel - begin" ); + + delete iBSHandler; + delete iSPSHandler; + delete iCCHHandler; + delete iDestinationsHandler; + delete iServicePluginHandler; + + CSCSETUIDEBUG( "CCSCSettingsUiModel::~CCSCSettingsUiModel - end" ); + } + + +// --------------------------------------------------------------------------- +// CCSCSettingsUiModel::SettingsHandler +// Returns reference to CSC's Service Provider Settings Handler. +// --------------------------------------------------------------------------- +// +CCSCEngServiceHandler& CCSCSettingsUiModel::SettingsHandler() const + { + return *iSPSHandler; + } + + +// --------------------------------------------------------------------------- +// CCSCSettingsUiModel::CCHHandler +// Returns reference to CSC's Converged Connection Handler. +// --------------------------------------------------------------------------- +// +CCSCEngCCHHandler& CCSCSettingsUiModel::CCHHandler() const + { + return *iCCHHandler; + } + + +// --------------------------------------------------------------------------- +// CCSCSettingsUiModel::DestinationsHandler +// Returns reference to CSC's Destinations Handler. +// --------------------------------------------------------------------------- +// +CCSCEngDestinationsHandler& CCSCSettingsUiModel::DestinationsHandler() const + { + return *iDestinationsHandler; + } + +// --------------------------------------------------------------------------- +// CCSCSettingsUiModel::BSHandler +// Returns reference to CSC's Branding Server Handler. +// --------------------------------------------------------------------------- +// +CCSCEngBrandingHandler& CCSCSettingsUiModel::BSHandler() const + { + return *iBSHandler; + } + +// --------------------------------------------------------------------------- +// CCSCSettingsUiModel::ServicePluginHandler +// Returns reference to CSC's Service Plugin Handler. +// --------------------------------------------------------------------------- +// +CCSCEngServicePluginHandler& CCSCSettingsUiModel::ServicePluginHandler() const + { + return *iServicePluginHandler; + } + +// --------------------------------------------------------------------------- +// CCSCSettingsUiModel::StoreInitializationDataL +// Stores initialization information. +// --------------------------------------------------------------------------- +// +void CCSCSettingsUiModel::StoreInitializationDataL( + const TUid& aViewId, + TUint aServiceId ) + { + CSCSETUIDEBUG( "CCSCSettingsUiModel::StoreInitializationDataL - begin" ); + + // View id for customer application return view id. + iViewId = aViewId; + + // Check that service exists in service table. + RArray spEntryIds; + CleanupClosePushL( spEntryIds ); + iSPSHandler->GetAllServiceIdsL( spEntryIds ); + User::LeaveIfError( spEntryIds.Find( aServiceId ) ); + CleanupStack::PopAndDestroy( &spEntryIds ); + iServiceId = aServiceId; + + CSCSETUIDEBUG( "CCSCSettingsUiModel::StoreInitializationDataL - end" ); + } + +// --------------------------------------------------------------------------- +// CCSCSettingsUiModel::UpdateSoftkeys +// To notify when softkeys need to be changed. +// --------------------------------------------------------------------------- +// +void CCSCSettingsUiModel::UpdateSoftkeys() + { + CSCSETUIDEBUG( "CCSCSettingsUiModel::UpdateSoftkeys - begin" ); + + iObserver.UpdateSoftkeys(); + + CSCSETUIDEBUG( "CCSCSettingsUiModel::UpdateSoftkeys - end" ); + } + + +// --------------------------------------------------------------------------- +// CCSCSettingsUiModel::ReturnViewId +// Returns uid of the view where to be returned. +// --------------------------------------------------------------------------- +// +TUid CCSCSettingsUiModel::ReturnViewId() const + { + return iViewId; + } + + +// --------------------------------------------------------------------------- +// CCSCSettingsUiModel::CurrentSPEntryId +// Returns currently selected service provider entry id. +// --------------------------------------------------------------------------- +// +TUint CCSCSettingsUiModel::CurrentSPEntryId() const + { + return iServiceId; + } + +// --------------------------------------------------------------------------- +// From MCSCEngCCHObserver. +// CCSCSettingsUiModel::ServiceStatusChanged +// --------------------------------------------------------------------------- +// +void CCSCSettingsUiModel::ServiceStatusChanged( + TUint /*aServiceId*/, + TCCHSubserviceType /*aType*/, + const TCchServiceStatus& /*aServiceStatus*/ ) + { + // Not used. + } + + +// --------------------------------------------------------------------------- +// From MCSCEngServiceObserver. +// CCSCSettingsUiModel::NotifyServiceChange +// --------------------------------------------------------------------------- +// +void CCSCSettingsUiModel::NotifyServiceChange() + { + // Not used. + } + +// --------------------------------------------------------------------------- +// From MCSCProvisioningObserver. +// CCSCSettingsUiModel::NotifyServicePluginResponse +// --------------------------------------------------------------------------- +// +void CCSCSettingsUiModel::NotifyServicePluginResponse( + const CCSCEngServicePluginHandler::TServicePluginResponse& /*aResponse*/, + const TInt /*aIndex*/, const TUid& /*aPluginUid*/ ) + { + }