diff -r 8bda91a87a00 -r 8ee96d21d9bf gssettingsuis/Gs/GSPDataConnectionPlugin/src/GSPDataConnectionPlugin.cpp --- a/gssettingsuis/Gs/GSPDataConnectionPlugin/src/GSPDataConnectionPlugin.cpp Thu Aug 19 10:12:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,377 +0,0 @@ -/* -* Copyright (c) 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: GSPDataConnectionPlugin implementation. -* -*/ - - -// User includes -#include "GSPDataConnectionPlugin.h" -#include "GSPDataConnectionModel.h" -#include -#include -#include // GUI Resource -#include -#include - -// System includes -#include -#include -#include -#include -#include -#include -#include // HlpLauncher -#include -#include -#include - -// Constants - -// ========================= MEMBER FUNCTIONS ================================ - -// --------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::CGSPDataConnectionPlugin() -// Constructor -// -// --------------------------------------------------------------------------- -// -CGSPDataConnectionPlugin::CGSPDataConnectionPlugin() - : iResources( *iCoeEnv ) - { - } - - -// --------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::~CGSPDataConnectionPlugin() -// Destructor -// -// --------------------------------------------------------------------------- -// -CGSPDataConnectionPlugin::~CGSPDataConnectionPlugin() - { - iResources.Close(); - - if( iModel ) - { - delete iModel; - } - } - - -// --------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::ConstructL(const TRect& aRect) -// Symbian OS two-phased constructor -// -// --------------------------------------------------------------------------- -// -void CGSPDataConnectionPlugin::ConstructL() - { - iModel = CGSPDataConnectionModel::NewL(); - OpenLocalizedResourceFileL( KPDataConnectionResourceFileName, iResources ); - BaseConstructL( R_GS_PDATACONNECTION_VIEW ); - } - - -// --------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::NewL() -// Static constructor -// -// --------------------------------------------------------------------------- -// -CGSPDataConnectionPlugin* CGSPDataConnectionPlugin::NewL( TAny* /*aInitParams*/ ) - { - CGSPDataConnectionPlugin* self = new( ELeave ) CGSPDataConnectionPlugin(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - - -// ----------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::Id -// -// -// ----------------------------------------------------------------------------- -// -TUid CGSPDataConnectionPlugin::Id() const - { - return KGSPDataConnectionPluginUID; - } - -// ----------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::DoActivateL -// -// -// ----------------------------------------------------------------------------- -// -void CGSPDataConnectionPlugin::DoActivateL( const TVwsViewId& /*aPrevViewId*/, - TUid /*aCustomMessageId*/, - const TDesC8& /*aCustomMessage*/ ) - { - } - - -// ----------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::DoDeactivate -// -// -// ----------------------------------------------------------------------------- -// -void CGSPDataConnectionPlugin::DoDeactivate() - { - } - - -// ========================= From CGSPluginInterface ================== - - -// ----------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::GetCaptionL -// -// -// ----------------------------------------------------------------------------- -// -void CGSPDataConnectionPlugin::GetCaptionL( TDes& aCaption ) const - { - HBufC* result = StringLoader::LoadL( R_GS_PDATACONNECTION_PLUGIN_CAPTION ); - aCaption.Copy( *result ); - delete result; - } - - -// ----------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::PluginProviderCategory -// -// -// ----------------------------------------------------------------------------- -// -TInt CGSPDataConnectionPlugin::PluginProviderCategory() const - { - return KGSPluginProviderInternal; - } - - -// ----------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::ItemType() -// -// -// ----------------------------------------------------------------------------- -// -TGSListboxItemTypes CGSPDataConnectionPlugin::ItemType() - { - return EGSItemTypeSettingDialog; - } - - -// ----------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::GetValue() -// -// -// ----------------------------------------------------------------------------- -// -void CGSPDataConnectionPlugin::GetValue( const TGSPluginValueKeys aKey, - TDes& aValue ) - { - TRAPD( err, GetValueL( aValue ) ); - if ( err != KErrNone ) - { - CGSPluginInterface::GetValue( aKey, aValue ); - } - } - - -// ----------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::GetValueL() -// -// Leaving version of GetValue() -// ----------------------------------------------------------------------------- -// -void CGSPDataConnectionPlugin::GetValueL( TDes& aValue ) - { - TInt attachState = iModel->PDataAttachL(); - HBufC* result; - - switch( attachState ) - { - case KAttachSettingWhenAvailable: - result = StringLoader::LoadL( R_GS_PDATACONN_WHEN_ENABLE_TEXT ); - aValue.Copy( *result ); - delete result; - break; - - case KAttachSettingWhenNeeded: - result = StringLoader::LoadL( R_GS_PDATACONN_WHEN_NEEDED_TEXT ); - aValue.Copy( *result ); - delete result; - default: - break; - } - - } - - -// ----------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::HandleSelection() -// -// -// ----------------------------------------------------------------------------- -// -void CGSPDataConnectionPlugin::HandleSelection( - const TGSSelectionTypes aSelectionType ) - { - switch( aSelectionType ) - { - case EGSSelectionBySelectionKey: - case EGSSelectionByMenu: - TRAP_IGNORE( SetAttachStateL() ); // Launch setting page to change value. - break; - default: - break; - } - - } - - -// ----------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::ShowAttachSettingPageL() -// -// Indexes of Attach on/off items in a listbox are not the same as aPDataConnectionState -// value. Therefore matching between these two is required. -// ----------------------------------------------------------------------------- -// -TBool CGSPDataConnectionPlugin::ShowAttachSettingPageL( TInt& aPDataConnectionState ) - { - TInt previousPDataConnectionState = aPDataConnectionState; - TBool isValueUpdated = EFalse; - - CDesCArrayFlat* items = iCoeEnv->ReadDesC16ArrayResourceL( - R_GS_PDATACONNECTION_SETTING_PAGE_LBX ); - CleanupStack::PushL( items ); - - if( items->Count() != 2 ) - { - CAknRadioButtonSettingPage* dlg = - new (ELeave) CAknRadioButtonSettingPage - ( R_GS_PDATACONNECTION_SETTING_PAGE, - aPDataConnectionState, - items ); - dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ); - } - else - { - if (aPDataConnectionState == 0) - { - aPDataConnectionState = 1; - } - else - { - aPDataConnectionState = 0; - } - } - - CleanupStack::PopAndDestroy( items ); - - // Check if aPDataConnectionState has been changed: - if( previousPDataConnectionState != aPDataConnectionState ) - { - isValueUpdated = ETrue; - } - return isValueUpdated; - } - - -// ----------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::SetAttachStateL() -// -// -// ----------------------------------------------------------------------------- -// -void CGSPDataConnectionPlugin::SetAttachStateL() - { - // Get information of if there are open connections - TInt PDataConnectionState = iModel->PDataAttachL(); - const TBool isValueUpdated = ShowAttachSettingPageL( PDataConnectionState ); - - if ( isValueUpdated ) - { - // Store updated Active Idle state: - iModel->SetPDataAttachL( PDataConnectionState ); - // Update Attach item's value to lbx: - CGSParentPlugin* parent = static_cast( - AppUi()->View( KGSPDataPluginUid ) );// This is the parent plugin - parent->UpdateView(); - } - } - - -// ----------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::OpenLocalizedResourceFileL() -// -// -// ----------------------------------------------------------------------------- -// -void CGSPDataConnectionPlugin::OpenLocalizedResourceFileL( - const TDesC& aResourceFileName, - RConeResourceLoader& aResourceLoader ) - { - RFs fsSession; - User::LeaveIfError( fsSession.Connect() ); - - // Find the resource file: - TParse parse; - parse.Set( aResourceFileName, &KDC_RESOURCE_FILES_DIR, NULL ); - TFileName fileName( parse.FullName() ); - - // Get language of resource file: - BaflUtils::NearestLanguageFile( fsSession, fileName ); - - // Open resource file: - aResourceLoader.OpenL( fileName ); - - // If leave occurs before this, close is called automatically when the - // thread exits. - fsSession.Close(); - } - - -// ----------------------------------------------------------------------------- -// CGSPDataConnectionPlugin::TGSMenuActivationItems() -// -// -// ----------------------------------------------------------------------------- -// -TGSMenuActivationItems CGSPDataConnectionPlugin::MenuActivationItem() - { - return EGSMenuActivationItemChange; - } - - -// ---------------------------------------------------------------------------- -// CGSPDataConnectionPlugin -// -// Provides the visibility status of self to framework. -// ---------------------------------------------------------------------------- -// -TBool CGSPDataConnectionPlugin::Visible() const - { - if ( FeatureManager::FeatureSupported( KFeatureIdIpPush )) - { - return EFalse; - } - return ETrue; - } - -// End of file