diff -r 05bc53fe583b -r 83ca720e2b9a accesspointcontrol/apcontrollistplugin/src/apcontrollistplugin.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/accesspointcontrol/apcontrollistplugin/src/apcontrollistplugin.cpp Wed Sep 01 12:23:51 2010 +0100 @@ -0,0 +1,506 @@ +/* +* Copyright (c) 2006 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: APControlListPlugin class. +* +*/ + + +// INCLUDE FILES + +// System includes +#include + +#include //for CListBox +#include +#include //for CAknInformationNote +#include +#include +#include +#include +#include +#include + +// User includes +#include "apcontrollistplugin.hrh" +#include "apcontrollistplugin.h" +#include "apcontrollistplugincontainer.h" +#include "apcontrollistpluginlogger.h" +#include "apcontrollistapiwrapper.h" +#include "apcontrollistcapschange.h" + +// CONSTANTS +// Resource file location constant +_LIT( KResourceFileName, "APControlListPluginRsc.rsc" ); + +// ROM folder +_LIT( KDriveZ, "z:" ); + +// Name of the MBM file containing icons +_LIT( KFileIcons, "apcontrollistplugin.mbm"); + +// ================= MEMBER FUNCTIONS ======================= + +// --------------------------------------------------------- +// CAPControlListPlugin::NewL +// First phase constructor +// --------------------------------------------------------- +CAPControlListPlugin* CAPControlListPlugin::NewL( TAny* /*aInitParams*/ ) + { + CLOG_CREATE() + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::NewL" ) ) ); + CAPControlListPlugin* self = new ( ELeave ) CAPControlListPlugin(); + CleanupStack::PushL( self ); + + self->ConstructL( ); + + CleanupStack::Pop( self ); + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::NewL" ) ) ); + return self; + } + +// --------------------------------------------------------- +// CAPControlListPlugin::NewL +// Destructor +// --------------------------------------------------------- +CAPControlListPlugin::~CAPControlListPlugin() + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::~CAPControlListPlugin" ) ) ); + if( iContainer ) + { + AppUi()->RemoveFromViewStack( *this, iContainer ); + delete iContainer; + } + if (iAPIWrapper) + { + delete iAPIWrapper; + } + if (iChangeNotifier) + { + delete iChangeNotifier; + } + iResources.Close(); + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::~CAPControlListPlugin" ) ) ); + } + +// --------------------------------------------------------- +// CAPControlListPlugin::Id +// --------------------------------------------------------- +TUid CAPControlListPlugin::Id() const + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::Id" ) ) ); + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::Id" ) ) ); + return KAPControlListPluginUid; + } + +// --------------------------------------------------------- +// CAPControlListPlugin::HandleCommandL( TInt aCommand ) +// --------------------------------------------------------- +// +void CAPControlListPlugin::HandleCommandL( TInt aCommand ) + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::HandleCommandL" ) ) ); + switch ( aCommand ) + { + case EAknSoftkeyBack : + { + // Activate the view ( from GS ) that we + // are supposed to return to + AppUi()->ActivateLocalViewL( iPrevViewId.iViewUid ); + break; + } + case EAPControlListCmdActivate : + { + iAPIWrapper->ActivateACL(); + break; + } + case EAPControlListCmdDeactivate : + { + iAPIWrapper->DeActivateACL(); + break; + } + case EAPControlListCmdAdd : + { + iAPIWrapper->AddAPNL(); + break; + } + case EAPControlListCmdRemove : + { + iAPIWrapper->RemoveAPN(); + break; + } + case EAknCmdHelp : + { + HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(), + AppUi()->AppHelpContextL() ); + break; + } + case EEikCmdExit : + default : + { + AppUi()->HandleCommandL( aCommand ); + break; + } + } + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::HandleCommandL" ) ) ); + } + +// --------------------------------------------------------- +// CAPControlListPlugin::ExitOnUSIMRemovalL +// --------------------------------------------------------- +void CAPControlListPlugin::ExitOnUSIMRemovalL() + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::ExitOnUSIMRemovalL" ) ) ); + iVisible = EFalse; + AppUi()->ActivateLocalViewL( iPrevViewId.iViewUid ); + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::ExitOnUSIMRemovalL" ) ) ); + } + +// --------------------------------------------------------- +// CAPControlListPlugin::DoActivateL +// --------------------------------------------------------- +void CAPControlListPlugin::DoActivateL( const TVwsViewId& aPrevViewId, + TUid /*aCustomMessageId*/, + const TDesC8& /*aCustomMessage*/ ) + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::DoActivateL" ) ) ); + if ( iPrevViewId.iViewUid.iUid == 0 ) + { + //must be prepared to application switch, so it stores + //only the parent view (General Settings Main View) + iPrevViewId = aPrevViewId; + } + + if ( !iContainer ) + { + iContainer = new( ELeave ) CAPControlListPluginContainer; + iContainer->SetMopParent( this ); + + TRAPD( error, iContainer->ConstructL( ClientRect(), this ) ); + if ( error ) + { + delete iContainer; + iContainer = NULL; + User::Leave( error ); + } + + AppUi()->AddToViewStackL( *this, iContainer ); + iContainer->HandleResourceChange(KEikDynamicLayoutVariantSwitch); + + if (!iAPIWrapper) + { + iAPIWrapper = new( ELeave ) CAPControlListAPIWrapper(*this); + iAPIWrapper->ConstructL(); + } + if (!iChangeNotifier) + { + iChangeNotifier = new( ELeave ) CAPControlListCapsChange(*this); + iChangeNotifier->NotifyCapsChange(); + } + + ShowInfoNoteL(R_QTN_ACL_WAIT_READING_SIM); + iAPIWrapper->ReadData(); + iContainer->HandleResourceChange(KEikDynamicLayoutVariantSwitch); + } + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::DoActivateL" ) ) ); + } + +// --------------------------------------------------------- +// CAPControlListPlugin::PluginUid +// --------------------------------------------------------- +TUid CAPControlListPlugin::PluginUid() const + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::PluginUid" ) ) ); + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::PluginUid" ) ) ); + return KAPControlListPluginUid; + } + +// --------------------------------------------------------- +// CAPControlListPlugin::GetCaption +// --------------------------------------------------------- +void CAPControlListPlugin::GetCaptionL( TDes& aCaption ) const + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::GetCaptionL" ) ) ); + StringLoader::Load( aCaption, R_QTN_ACL_MENU_ITEM ); + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::GetCaptionL" ) ) ); + } + +// --------------------------------------------------------- +// CAPControlListPlugin::HasBitmap +// --------------------------------------------------------- +TBool CAPControlListPlugin::HasBitmap() const + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::HasBitmap" ) ) ); + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::HasBitmap" ) ) ); + return EFalse; + } + +// --------------------------------------------------------- +// CAPControlListPlugin::GetBitmapL +// --------------------------------------------------------- +void CAPControlListPlugin::GetBitmapL( CFbsBitmap* /*aBitmap*/, + CFbsBitmap* /*aMask*/ ) const + { + //no bitmap + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::GetBitmapL" ) ) ); + User::Leave( KErrNotFound ); + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::GetBitmapL" ) ) ); + } + +// --------------------------------------------------------- +// CAPControlListPlugin::PluginProviderCategory +// --------------------------------------------------------- +TInt CAPControlListPlugin::PluginProviderCategory() const + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::PluginProviderCategory" ) ) ); + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::PluginProviderCategory" ) ) ); + return EGSPluginProviderOEM; + } + +// --------------------------------------------------------- +// CApSettingsPlugin::CreateIconL +// --------------------------------------------------------- +CGulIcon* CAPControlListPlugin::CreateIconL( const TUid aIconType ) + { + TFileName iconsFileName; + + iconsFileName.Append( KDriveZ ); + iconsFileName.Append( KDC_APP_BITMAP_DIR ); + iconsFileName.Append( KFileIcons ); + + CGulIcon* icon; + + if( aIconType == KGSIconTypeLbxItem ) + { + icon = AknsUtils::CreateGulIconL( + AknsUtils::SkinInstance(), + KAknsIIDQgnPropSetConnAccp, + iconsFileName, + EMbmApcontrollistpluginQgn_prop_set_conn_acl, + EMbmApcontrollistpluginQgn_prop_set_conn_acl_mask ); + } + else + { + icon = CGSPluginInterface::CreateIconL( aIconType ); + } + + return icon; + } + +// --------------------------------------------------------- +// CAPControlListPlugin::Visible +// --------------------------------------------------------- +TBool CAPControlListPlugin::Visible() const + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::Visible" ) ) ); + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::Visible" ) ) ); + return iVisible; + } + +// --------------------------------------------------------- +// CAPControlListPlugin::CAPControlListPlugin +// --------------------------------------------------------- +CAPControlListPlugin::CAPControlListPlugin(): + iPrevViewId(), + iResources( *CCoeEnv::Static() ), + iVisible(EFalse) + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::CAPControlListPlugin" ) ) ); + // no implementation required + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::CAPControlListPlugin" ) ) ); + } + +// --------------------------------------------------------- +// CAPControlListPlugin::ConstructL +// --------------------------------------------------------- +TAny CAPControlListPlugin::ConstructL() + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::ConstructL" ) ) ); + + TFileName fileName; + TDriveUnit drive( EDriveZ ); + + fileName.Append( drive.Name() ); + fileName.Append( KDC_RESOURCE_FILES_DIR ); + fileName.Append( KResourceFileName ); + iResources.OpenL( fileName ); + + BaseConstructL( R_APCLPLUGIN_MAIN_VIEW ); + + // get Visible + iAPIWrapper = new( ELeave ) CAPControlListAPIWrapper(*this); + iAPIWrapper->ConstructL(); + iVisible = iAPIWrapper->Visible(); + iAPIWrapper->Cancel(); + delete iAPIWrapper; + iAPIWrapper = NULL; + + FeatureManager::InitializeLibL(); + iHelp = FeatureManager::FeatureSupported( KFeatureIdHelp ); + FeatureManager::UnInitializeLib(); + + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::ConstructL" ) ) ); + } + + +// --------------------------------------------------------- +// CAPControlListPlugin::DynInitMenuPaneL +// --------------------------------------------------------- +void CAPControlListPlugin::DynInitMenuPaneL( TInt aResourceId, + CEikMenuPane* aMenuPane ) + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::DynInitMenuPaneL" ) ) ); + CAknView::DynInitMenuPaneL( aResourceId, aMenuPane ); + if ( aResourceId == R_APCLPLUGIN_MAIN_MENU ) + { + if ( iAPIWrapper->Enabled() ) + { + aMenuPane->DeleteMenuItem( EAPControlListCmdActivate ); + } + else + { + aMenuPane->DeleteMenuItem( EAPControlListCmdDeactivate ); + } + if ( !iContainer->NumberOfItems() ) + { + aMenuPane->DeleteMenuItem( EAPControlListCmdRemove ); + } + if (!iHelp) + { + aMenuPane->DeleteMenuItem( EAknCmdHelp ); + } + } + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::DynInitMenuPaneL" ) ) ); + } + +// --------------------------------------------------------- +// CAPControlListPlugin::DoDeactivate +// --------------------------------------------------------- +void CAPControlListPlugin::DoDeactivate() + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::DoDeactivate" ) ) ); + if ( iContainer ) + { + AppUi()->RemoveFromViewStack( *this, iContainer ); + } + + delete iContainer; + iContainer = NULL; + if (iChangeNotifier) + { + delete iChangeNotifier; + iChangeNotifier = NULL; + } + if (iAPIWrapper) + { + delete iAPIWrapper; + iAPIWrapper = NULL; + } + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::DoDeactivate" ) ) ); + } + +// --------------------------------------------------------- +// CAPControlListPlugin::UiComplete( TInt aUirEvent ) +// --------------------------------------------------------- +// +void CAPControlListPlugin::UiComplete( TInt /*aUirEvent*/ ) + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::UiComplete" ) ) ); + // Activate this view as we are coming back + // from some other view in the UI + TRAP_IGNORE( + AppUi()->ActivateLocalViewL( KAPControlListPluginUid ) ) + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::UiComplete" ) ) ); + } + +// --------------------------------------------------------- +// CAPControlListPlugin::HandleListBoxEventL +// --------------------------------------------------------- +void CAPControlListPlugin::HandleListBoxEventL( CEikListBox* /*aListBox*/, + TListBoxEvent aEventType ) + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::HandleListBoxEventL" ) ) ); + switch ( aEventType ) + { + case EEventEnterKeyPressed : + case EEventItemClicked : + { + break; + } + default : + break; + } + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::HandleListBoxEventL" ) ) ); + } + +// ---------------------------------------------------------- +// CAPControlListPlugin::ShowInfoNoteL( TInt aResourceId ) +// ---------------------------------------------------------- +// +void CAPControlListPlugin::ShowInfoNoteL( TInt aResourceId ) + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::ShowInfoNoteL" ) ) ); + HBufC* text = iCoeEnv->AllocReadResourceLC( aResourceId ); + CAknInformationNote* note = new ( ELeave ) CAknInformationNote( ETrue ); + note->ExecuteLD( *text ); + CleanupStack::PopAndDestroy( text ); + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::ShowInfoNoteL" ) ) ); + } + +// ---------------------------------------------------------- +// CAPControlListPlugin::ShowConfirmNoteL( TInt aResourceId ) +// ---------------------------------------------------------- +// + +void CAPControlListPlugin::ShowConfirmNoteL( TInt aResourceId ) + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::ShowConfirmNoteL" ) ) ); + HBufC* text = iCoeEnv->AllocReadResourceLC( aResourceId ); + CAknConfirmationNote* note = new ( ELeave ) CAknConfirmationNote( ETrue ); + note->ExecuteLD( *text ); + CleanupStack::PopAndDestroy( text ); + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::ShowConfirmNoteL" ) ) ); + } + +// ---------------------------------------------------------- +// CAPControlListPlugin::ShowConfirmNoteL( TInt aResourceId ) +// ---------------------------------------------------------- +// +void CAPControlListPlugin::ShowConfirmNoteAPNL( TInt aResourceId, TPtrC& aAPN ) + { + CLOG( ( ESelector, 0, _L( "-> CAPControlListPlugin::ShowConfirmNoteL" ) ) ); + HBufC* text = StringLoader::LoadLC ( aResourceId, aAPN); + CAknConfirmationNote* note = new ( ELeave ) CAknConfirmationNote( ETrue ); + note->ExecuteLD( *text ); + CleanupStack::PopAndDestroy( text ); + CLOG( ( ESelector, 0, _L( "<- CAPControlListPlugin::ShowConfirmNoteL" ) ) ); + } + +// ---------------------------------------------------------- +// CAPControlListPlugin::Container() +// ---------------------------------------------------------- +// +CAPControlListPluginContainer* CAPControlListPlugin::Container() + { + return iContainer; + } + +// ---------------------------------------------------------- +// CAPControlListPlugin::APIWrapper() +// ---------------------------------------------------------- +// +CAPControlListAPIWrapper* CAPControlListPlugin::APIWrapper() + { + return iAPIWrapper; + } +//End of file