diff -r 3f8368f032cf -r e3554c9069b6 gssettingsuis/Gs/GSAutoKeyguardPlugin/Src/GSAutoKeyguardPlugin.cpp --- a/gssettingsuis/Gs/GSAutoKeyguardPlugin/Src/GSAutoKeyguardPlugin.cpp Tue Feb 02 00:22:03 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,471 +0,0 @@ -/* -* Copyright (c) 2005 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: View for Autokeyguard sub-folder -* -*/ - - -// INCLUDE FILES -#include -#include // For HlpLauncher -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "GSAutoKeyguardPlugin.h" -#include "GSAutoKeyguardPluginContainer.h" -#include "GSAutoKeyguardPlugin.hrh" -#include -#include "GSAutoKeyguardPluginAutoKeyguardSettingPage.h" -#include "GSAutoKeyguardPluginAutoKeyguardTimeQuery.h" - - -// EXTERNAL DATA STRUCTURES - -// EXTERNAL FUNCTION PROTOTYPES - -// CONSTANTS - -// MACROS - -// LOCAL CONSTANTS AND MACROS - -_LIT( KGSAutoKeyguardPluginResourceFileName, "z:GSAutoKeyguardPluginRsc.rsc" ); -_LIT( KGSAutoKeyguardPluginIconDirAndName, "z:GSAutoKeyguardPlugin.mbm"); -// MODULE DATA STRUCTURES - -// LOCAL FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -/** -* CCugQuery -* It defines CCugQuery used in closed user group settings -*/ -class CCugQuery - : public CAknNumberQueryDialog - { - public: // Constructors and destructors - /** - * C++ constructor. - */ - CCugQuery( TInt& aNumber,const TTone aTone = ENoTone ); - protected: // From base classes - /** - * From CCAknNumberQueryDialog Left softkey is allways OK. - */ - void UpdateLeftSoftKeyL(); - }; - -// ============================= LOCAL FUNCTIONS ============================== - -// ========================= MEMBER FUNCTIONS ================================= - -// --------------------------------------------------------------------------- -// GSAutoKeyguardPlugin::NewL() -// -// --------------------------------------------------------------------------- -CGSAutoKeyguardPlugin* CGSAutoKeyguardPlugin::NewL( TAny* /*aInitParams*/ ) - { - CGSAutoKeyguardPlugin* self = new( ELeave ) CGSAutoKeyguardPlugin(); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - - -// --------------------------------------------------------------------------- -// GSAutoKeyguardPlugin::CGSAutoKeyguardPlugin() -// -// --------------------------------------------------------------------------- -CGSAutoKeyguardPlugin::CGSAutoKeyguardPlugin() - : iResourceLoader( *iCoeEnv ) - { - } - - -// --------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::ConstructL() -// -// Symbian OS two-phased constructor -// --------------------------------------------------------------------------- -void CGSAutoKeyguardPlugin::ConstructL() - { - FeatureManager::InitializeLibL(); - - iModel = CGSAutoKeyguardPluginModel::NewL(); - //PS listener initialization - iBtSapListener = CGSPubSubsListener::NewL( - KPSUidBluetoothSapConnectionState, - KBTSapConnectionState, this ); - - // Find the resource file - TParse parse; - parse.Set( KGSAutoKeyguardPluginResourceFileName, - &KDC_RESOURCE_FILES_DIR, NULL ); - TFileName fileName( parse.FullName() ); - - // Get language of resource file - BaflUtils::NearestLanguageFile( iCoeEnv->FsSession(), fileName ); - - // Open resource file - iResourceLoader.OpenL( fileName ); - - BaseConstructL( R_GS_AUTO_KEYGUARD_VIEW ); - - } - - -// --------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::~CGSAutoKeyguardPlugin() -// -// -// --------------------------------------------------------------------------- -CGSAutoKeyguardPlugin::~CGSAutoKeyguardPlugin() - { - FeatureManager::UnInitializeLib(); - // close resource loader - iResourceLoader.Close(); - - if ( iModel ) - { - delete iModel; - } - - if(iBtSapListener) - { - delete iBtSapListener; - } - - } - - -// --------------------------------------------------------------------------- -// TUid CGSAutoKeyguardPlugin::Id() -// -// -// --------------------------------------------------------------------------- -TUid CGSAutoKeyguardPlugin::Id() const - { - return KGSAutoKeyguardPluginUid; - } - - -// --------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::HandleCommandL() -// -// -// --------------------------------------------------------------------------- -void CGSAutoKeyguardPlugin::HandleCommandL( TInt aCommand ) - { - switch ( aCommand ) - { - case EGSCmdAppChange: - case EAknSoftkeyChange: - { - HandleListBoxSelectionL(); - } - break; - case EAknSoftkeyBack: - iAppUi->ActivateLocalViewL( KGSDeviceManagementPluginUid ); - break; - case EAknCmdHelp: - { - if( FeatureManager::FeatureSupported( KFeatureIdHelp ) ) - { - HlpLauncher::LaunchHelpApplicationL( - iEikonEnv->WsSession(), iAppUi->AppHelpContextL() ); - } - } - break; - default: - iAppUi->HandleCommandL( aCommand ); - break; - } - } - - -// --------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::UpdateListBoxL -// -// Update the current item in the listbox. -// --------------------------------------------------------------------------- -void CGSAutoKeyguardPlugin::UpdateListBoxL( TInt aItemId ) - { - Container()->UpdateListBoxL( aItemId ); - } - - -// --------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::DoActivateL(...) -// -// -// --------------------------------------------------------------------------- -void CGSAutoKeyguardPlugin::DoActivateL( const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, - const TDesC8& aCustomMessage ) - { - CGSBaseView::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage ); - } - - -// ---------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::Container -// -// Return handle to container class. -// ---------------------------------------------------------------------------- -// -CGSAutoKeyguardPluginContainer* CGSAutoKeyguardPlugin::Container() - { - return static_cast( iContainer ); - } - - -// --------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::NewContainerL() -// -// Creates new iContainer. -// --------------------------------------------------------------------------- -// -void CGSAutoKeyguardPlugin::NewContainerL() - { - iContainer = new( ELeave ) CGSAutoKeyguardPluginContainer( iModel ); - } - - -// --------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::HandleListBoxSelectionL() -// -// -// --------------------------------------------------------------------------- -void CGSAutoKeyguardPlugin::HandleListBoxSelectionL() - { - const TInt currentFeatureId = Container()->CurrentFeatureId(); - TInt maxPeriod(0); - switch ( currentFeatureId ) - { - case EGSSettIdAutoKeyguard: - maxPeriod = iModel->AutoKeyguardMaxPeriod(); - SetAutoKeyguardTimeL(iModel->AutoKeyguardPeriod(), maxPeriod); - break; - default: - break; - } - - } - -// --------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::SetAutoKeyguardTimeL() -// -// -// --------------------------------------------------------------------------- -void CGSAutoKeyguardPlugin::SetAutoKeyguardTimeL(TInt aPeriod, TInt aMaxPeriod) - { - TInt currentItem = 0; - CDesCArrayFlat* items = iCoeEnv->ReadDesC16ArrayResourceL( R_AUTOKEYGUARD_LBX ); - CleanupStack::PushL(items); - if (aPeriod == 0) - { - currentItem = 0; // autokeyguard off - } - else - { - currentItem = 1; // user defined - } - TInt64 periodInMicroseconds(aPeriod); - periodInMicroseconds *= 1000000; - TTime period(periodInMicroseconds); - - TInt64 maxPeriodInMicroseconds(aMaxPeriod); - maxPeriodInMicroseconds *= 1000000; - TTime maximum(maxPeriodInMicroseconds); - - CAutoKeyguardSettingPage* dlg = new (ELeave)CAutoKeyguardSettingPage(R_AUTOKEYGUARD_SETTING_PAGE, - currentItem, items, &period, maxPeriodInMicroseconds); - if (!dlg->ExecuteLD(CAknSettingPage::EUpdateWhenChanged)) - { - CleanupStack::PopAndDestroy(); // items - return; - } - CleanupStack::PopAndDestroy(); // items - TDateTime keyGuardTime = period.DateTime(); - //convert the period to seconds - TInt newPeriod = (keyGuardTime.Minute() * 60) + keyGuardTime.Second(); - iModel->SetAutoKeyguardPeriod(newPeriod); - UpdateListBoxL( EGSSettIdAutoKeyguard ); - } - -// --------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::HandleResourceChangeL( TInt aType ) -// Updates view layout -// -// --------------------------------------------------------------------------- -// -void CGSAutoKeyguardPlugin::HandleResourceChangeL( TInt aType ) - { - if( aType == KAknsMessageSkinChange || - aType == KEikDynamicLayoutVariantSwitch ) - { - //iContainer->HandleResourceChangeL( aType ); - } - } - - -// --------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::HandleNotifyPSL -// -// Handling PS keys change -// --------------------------------------------------------------------------- -// -void CGSAutoKeyguardPlugin::HandleNotifyPSL( const TUid aUid, const TInt& aKey, - const TRequestStatus& /* aStatus */ ) - { - if ( aUid == KPSUidBluetoothSapConnectionState && - aKey == KBTSapConnectionState ) - { - Visible(); - } - } - - -// ========================= From CGSPluginInterface ================== - -// ---------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::GetCaption -// -// Return application/view caption. -// ---------------------------------------------------------------------------- -// -void CGSAutoKeyguardPlugin::GetCaptionL( TDes& aCaption ) const - { - // the resource file is already opened. - HBufC* result = StringLoader::LoadL( R_GS_AUTO_KEYGUARD_VIEW_CAPTION ); - - aCaption.Copy( *result ); - delete result; - } - - -// ---------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::PluginProviderCategory -// -// A means to identify the location of this plug-in in the framework. -// ---------------------------------------------------------------------------- -// -TInt CGSAutoKeyguardPlugin::PluginProviderCategory() const - { - //To identify internal plug-ins. - return KGSPluginProviderInternal; - } - - -// ---------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::Visible -// -// Provides the visibility status of self to framework. -// ---------------------------------------------------------------------------- -// -TBool CGSAutoKeyguardPlugin::Visible() const - { - TInt btSapConnectionState; - TBool visible = ETrue; - - iBtSapListener->Get( btSapConnectionState ); - - if ( btSapConnectionState == EBTSapConnected ) - { - visible = EFalse; - } - - return visible; - } - -// ---------------------------------------------------------------------------- -// CGSAutoKeyguardPlugin::DynInitMenuPaneL() -// -// Display the dynamic menu -// ---------------------------------------------------------------------------- -void CGSAutoKeyguardPlugin::DynInitMenuPaneL( TInt aResourceId, - CEikMenuPane* aMenuPane ) - { - - // show or hide the 'help' menu item when supported - if( aResourceId == R_GS_AUTO_KEYGUARD_MENU_ITEM_HELP ) - { - User::LeaveIfNull( aMenuPane ); - if ( FeatureManager::FeatureSupported( KFeatureIdHelp ) ) - { - aMenuPane->SetItemDimmed( EAknCmdHelp, EFalse ); - } - else - { - aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue ); - } - } - - } -// ----------------------------------------------------------------------------- -// CGSCallDivertPlugin::CreateIconL() -// -// -// ----------------------------------------------------------------------------- -// -CGulIcon* CGSAutoKeyguardPlugin::CreateIconL( const TUid aIconType ) - { - //EMbm - CGulIcon* icon; - TParse* fp = new( ELeave ) TParse(); - CleanupStack::PushL( fp ); - fp->Set( KGSAutoKeyguardPluginIconDirAndName, &KDC_BITMAP_DIR, NULL ); - - if( aIconType == KGSIconTypeLbxItem ) - { - icon = AknsUtils::CreateGulIconL( - AknsUtils::SkinInstance(), - KAknsIIDQgnPropCpDevKeyguard, - fp->FullName(), - EMbmGsautokeyguardpluginQgn_prop_cp_dev_keyguard, - EMbmGsautokeyguardpluginQgn_prop_cp_dev_keyguard_mask ); - } - else - { - icon = CGSPluginInterface::CreateIconL( aIconType ); - } - - CleanupStack::PopAndDestroy( fp ); - - return icon; - } -// End of File