diff -r 65a3ef1d5bd0 -r f742655b05bf commsconfig/cscgsplugin/src/cscgsplugin.cpp --- a/commsconfig/cscgsplugin/src/cscgsplugin.cpp Thu Aug 19 09:45:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,280 +0,0 @@ -/* -* Copyright (c) 2008-2008 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: cscgsplugin implementation. -* -*/ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "cscgsplugin.h" - -const TUid KCscGsPluginImplUid = { 0x1020E568 }; // dll impl uid -const TUid KCscAppUid = { 0x10275458 }; // from cscappui.mmp - -_LIT( KCscApp, "z:\\sys\\bin\\csc.exe" ); -_LIT( KCscGsPluginResourceFileName, "cscgspluginrsc.rsc" ); - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -CCscGsPlugin::CCscGsPlugin() - : iResources( *iCoeEnv ), iNullService(NULL) - { - } - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -CCscGsPlugin::~CCscGsPlugin() - { - FeatureManager::UnInitializeLib(); - iResources.Close(); - delete iNullService; - } - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -void CCscGsPlugin::ConstructL() - { - FeatureManager::InitializeLibL(); - OpenLocalizedResourceFileL( KCscGsPluginResourceFileName, iResources ); - } - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -CCscGsPlugin* CCscGsPlugin::NewL( TAny* /*aInitParams*/ ) - { - CCscGsPlugin* self = new ( ELeave ) CCscGsPlugin(); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - -// --------------------------------------------------------------------------- -// From class CAknView. -// CCscGsPlugin::Id() -// --------------------------------------------------------------------------- -// -TUid CCscGsPlugin::Id() const - { - return KCscGsPluginImplUid; - } - -// --------------------------------------------------------------------------- -// From class CAknView. -// CCscGsPlugin::DoActivateL() -// --------------------------------------------------------------------------- -// -void CCscGsPlugin::DoActivateL( - const TVwsViewId& /*aPrevViewId*/, - TUid /*aCustomMessageId*/, - const TDesC8& /*aCustomMessage*/ ) - { - } - -// --------------------------------------------------------------------------- -// From class CAknView. -// CCscGsPlugin::DoDeactivate() -// --------------------------------------------------------------------------- -// -void CCscGsPlugin::DoDeactivate() - { - } - -// --------------------------------------------------------------------------- -// From class CGSPluginInterface. -// CCscGsPlugin::GetCaptionL() -// --------------------------------------------------------------------------- -// -void CCscGsPlugin::GetCaptionL( TDes& aCaption ) const - { - HBufC* result = StringLoader::LoadL( R_CSCGSPLUGIN_CAPTION ); - - if ( result->Des().Length() < aCaption.MaxLength() ) - { - aCaption.Copy( *result ); - } - else - { - aCaption = KNullDesC; - } - - delete result; - } - -// --------------------------------------------------------------------------- -// From class CGSPluginInterface. -// CCscGsPlugin::PluginProviderCategory() -// --------------------------------------------------------------------------- -// -TInt CCscGsPlugin::PluginProviderCategory() const - { - return KGSPluginProviderInternal; - } - -// --------------------------------------------------------------------------- -// From class CGSPluginInterface. -// CCscGsPlugin::ItemType() -// --------------------------------------------------------------------------- -// -TGSListboxItemTypes CCscGsPlugin::ItemType() - { - return EGSItemTypeSettingDialog; - } - -// --------------------------------------------------------------------------- -// From class CGSPluginInterface. -// CCscGsPlugin::GetValue() -// --------------------------------------------------------------------------- -// -void CCscGsPlugin::GetValue( - const TGSPluginValueKeys /*aKey*/, - TDes& /*aValue*/ ) - { - } - -// --------------------------------------------------------------------------- -// From class CGSPluginInterface. -// CCscGsPlugin::HandleSelection() -// --------------------------------------------------------------------------- -// -void CCscGsPlugin::HandleSelection( - const TGSSelectionTypes /*aSelectionType*/ ) - { - TRAP_IGNORE( LaunchCscAppL() ); - } - -// --------------------------------------------------------------------------- -// From class CGSPluginInterface. -// CCscGsPlugin::CreateIconL() -// --------------------------------------------------------------------------- -// -CGulIcon* CCscGsPlugin::CreateIconL( const TUid /*aIconType*/ ) - { - return NULL; - } - -// --------------------------------------------------------------------------- -// From class CGSPluginInterface. -// CCscGsPlugin::Visible() -// --------------------------------------------------------------------------- -// -TBool CCscGsPlugin::Visible() const - { - TBool visible( ETrue ); - TBool voipSupported( EFalse ); - - // Im should be also checked from feature manager - TBool imSupported( EFalse ); - - voipSupported = FeatureManager::FeatureSupported( - KFeatureIdCommonVoip ); - - // If both voip and im are not supported --> set plugin not visible - if ( !voipSupported && !imSupported ) - { - visible = EFalse; - } - - return visible; - } - -// --------------------------------------------------------------------------- -// CCscGsPlugin::OpenLocalizedResourceFile() -// --------------------------------------------------------------------------- -// -void CCscGsPlugin::OpenLocalizedResourceFileL( - const TDesC& aResourceFileName, - RConeResourceLoader& aResourceLoader ) - { - RFs fsSession; - User::LeaveIfError( fsSession.Connect() ); - CleanupClosePushL(fsSession); - - // 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 ); - - CleanupStack::PopAndDestroy(&fsSession); - } - - -// --------------------------------------------------------------------------- -// CCscGsPlugin::LaunchCscAppL() -// --------------------------------------------------------------------------- -// -void CCscGsPlugin::LaunchCscAppL() - { - // Get the correct application data - RWsSession ws; - CleanupClosePushL( ws ); - User::LeaveIfError( ws.Connect() ); - - // Find the task with uid - TApaTaskList taskList( ws ); - TApaTask task = taskList.FindApp( KCscAppUid ); - - if ( task.Exists() ) - { - //Bring CSC to foreground. - task.BringToForeground(); - } - else - { - //Launch csc application - TAppInfo app( KCscAppUid, KCscApp ); - iEmbedded = NULL; - EmbedAppL( app ); - } - CleanupStack::PopAndDestroy( &ws ); - } - - -// --------------------------------------------------------------------------- -// CCscGsPlugin::EmbedAppL() -// --------------------------------------------------------------------------- -// -void CCscGsPlugin::EmbedAppL( const TAppInfo& aApp ) - { - // Launch settings app - if ( iNullService ) - { - delete iNullService; - iNullService = NULL; - } - iNullService = CAknNullService::NewL( aApp.iUid, this ); - } - -