gssettingsuis/Gs/GSCallBarringPlugin/Src/GSCallBarringPlugin.cpp
branchRCL_3
changeset 24 8ee96d21d9bf
parent 23 8bda91a87a00
child 25 7e0eff37aedb
--- a/gssettingsuis/Gs/GSCallBarringPlugin/Src/GSCallBarringPlugin.cpp	Thu Aug 19 10:12:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,543 +0,0 @@
-/*
-* 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:  View for the Barring folder
-*
-*/
-
- 
-// INCLUDE FILES
-#include "GSCallBarringPlugin.h"
-#include "GSCallBarringPluginContainer.h"
-#include "GSPhoneSettingConstants.h"
-#include "GSInternetBarringView.h"
-#include "GSCellularCallBarringView.h"
-#include "GSMainBarringView.h"
-#include "CallBarringPlugin.hrh"
-#include "LocalViewIds.h"
-#include "GsLogger.h"
-
-#include <coeaui.h>
-#include <hlplch.h>                 // For HlpLauncher
-#include <e32base.h>
-#include <featmgr.h>
-#include <exterror.h>               //for extended error codes
-#include <StringLoader.h>           //for StringLoader
-#include <PsetContainer.h>          //for CPsetContainer
-#include <PsuiContainer.h>          //for CPsuiContainer
-#include <eikmenup.h>               //for menu bar
-#include <secuicodequerydialog.h>
-#include <nwdefs.h>
-#include <aknViewAppUi.h>
-
-#include <gscommon.hrh>
-#include <gscallbarringpluginrsc.rsg>
-#include <gscallbarringplugin.mbg>
-#include <gsfwviewuids.h>
-#include <gsprivatepluginproviderids.h>
-#include <BTSapInternalPSKeys.h>
-#include <centralrepository.h>
-#include <settingsinternalcrkeys.h>
-
-#if defined(__VOIP) && defined(RD_VOIP_REL_2_2)
-#include <spsettings.h>
-#endif // __VOIP && RD_VOIP_REL_2_2
-// LOCAL CONSTANTS
-_LIT( KGSCallBarringPluginResourceFileName, "z:GSCallBarringPluginRsc.rsc" );
-_LIT( KGSNameOfClass, "CGSCallBarringPlugin" );
-
-enum
-    {
-    EGSCallBarringPluginPanicNullPtr
-    };
- 
-
-// ========================= MEMBER FUNCTIONS ================================
-// ---------------------------------------------------------------------------
-// 
-// C++ constructor.
-// 
-// ---------------------------------------------------------------------------
-CGSCallBarringPlugin::CGSCallBarringPlugin()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// Symbian OS two-phased constructor (second phase)
-// 
-// ---------------------------------------------------------------------------
-void CGSCallBarringPlugin::ConstructL()
-    {
-    __GSLOGSTRING("[GS]--> CGSCallBarringPlugin::ConstructL");
-    FeatureManager::InitializeLibL();
-    OpenLocalizedResourceFileL( KGSCallBarringPluginResourceFileName,
-                                iResourceLoader );
-    //PS listener initialization
-    iBtSapListener = CGSPubSubsListener::NewL( 
-                     KPSUidBluetoothSapConnectionState,
-                     KBTSapConnectionState, this );
-    SetCSPActiveL( ETrue );
-    iBarringView = NULL;
-#if defined(__VOIP) && defined(RD_VOIP_REL_2_2)
-    iVoipSupported = EFalse;
-    CSPSettings* spSettings = CSPSettings::NewL();
-    if ( spSettings->IsFeatureSupported( ESupportVoIPFeature ) &&
-        spSettings->IsFeatureSupported( ESupportVoIPSSFeature ) )
-        {
-        iVoipSupported = ETrue;
-        }
-    delete spSettings;
-#else // __VOIP && RD_VOIP_REL_2_2
-    if ( FeatureManager::FeatureSupported( KFeatureIdCommonVoip ) )
-        {
-        TInt supported( KGSSettingOff );
-        CRepository* telephonyrep = 
-            CRepository::NewL( KCRUidTelephonySettings );
-        telephonyrep->Get( KDynamicVoIP, supported );
-        iVoipSupported = KGSSettingOff != supported;
-        delete telephonyrep;
-        }
-#endif // __VOIP && RD_VOIP_REL_2_2
-    BaseConstructL( R_GS_BARRING_MAIN_VIEW );
-    // VoIP feature supported
-    __GSLOGSTRING("[GS] <--CGSCallBarringPlugin::ConstructL");
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGSCallBarringPlugin::NewL()
-//
-// Symbian OS default constructor
-// ---------------------------------------------------------------------------
-CGSCallBarringPlugin* CGSCallBarringPlugin::NewL( TAny* /*aInitParams*/ )
-    {
-    CGSCallBarringPlugin* self = new( ELeave ) CGSCallBarringPlugin();
-
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// 
-// Symbian OS two-phased constructor (first phase)
-// 
-// ---------------------------------------------------------------------------
-CGSCallBarringPlugin* CGSCallBarringPlugin::NewLC()
-    {
-    __GSLOGSTRING("[GS]--> CGSCallBarringPlugin::NewLC");
-    CGSCallBarringPlugin* self = new ( ELeave ) CGSCallBarringPlugin;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-
-    __GSLOGSTRING("[GS] <--CGSCallBarringPlugin::NewLC");
-    return self;
-    }
- 
-// ---------------------------------------------------------------------------
-// 
-// C++ destructor
-// 
-// ---------------------------------------------------------------------------
-CGSCallBarringPlugin::~CGSCallBarringPlugin()
-    {
-    FeatureManager::UnInitializeLib();
-    TRAP_IGNORE( SetCSPActiveL( EFalse ) );
-    if ( iBtSapListener )
-        {
-        delete iBtSapListener;
-        }
-    }
- 
-// ---------------------------------------------------------------------------
-// 
-// Returns Id of the Barring view.
-// 
-// ---------------------------------------------------------------------------
-TUid CGSCallBarringPlugin::Id() const
-    {
-    return KCallBarringPluginId;
-    }
- 
-// ---------------------------------------------------------------------------
-// 
-// Handles other than list box events.
-// 
-// ---------------------------------------------------------------------------
-void CGSCallBarringPlugin::HandleCommandL( TInt aCommand )
-    {
-    __GSLOGSTRING("[GS]--> CGSCallBarringPlugin::HandleCommandL");
-		switch ( aCommand )
-        {
-        case EAknSoftkeyBack:
-            RemoveLocalViews();
-            iAppUi->ActivateLocalViewL( KGSMainViewUid );
-            break;
-        case EAknCmdHelp:
-            {
-            if( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
-                {
-                HlpLauncher::LaunchHelpApplicationL(
-                    iEikonEnv->WsSession(), iAppUi->AppHelpContextL() );
-                }
-            break;
-            }
-        default:
-            iAppUi->HandleCommandL( aCommand );
-            break;
-        }
-    __GSLOGSTRING("[GS] <--CGSCallBarringPlugin::HandleCommandL");
-    }
-  
-// ---------------------------------------------------------------------------
-// 
-// Activates view.
-// 
-// ---------------------------------------------------------------------------
-void CGSCallBarringPlugin::DoActivateL( const TVwsViewId& aPrevViewId,
-                                        TUid aCustomMessageId,
-                                        const TDesC8& aCustomMessage )
-    {
-    __GSLOGSTRING("[GS]--> CGSCallBarringPlugin::DoActivateL");
-    CGSBaseView::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage );
-    ActivateInternalViewL();
-    __GSLOGSTRING("[GS] <--CGSCallBarringPlugin::DoActivateL");
-    }
- 
-// ---------------------------------------------------------------------------
-// 
-// Deactivates view.
-// 
-// ---------------------------------------------------------------------------
-void CGSCallBarringPlugin::DoDeactivate()
-    {
-    __GSLOGSTRING("[GS]--> CGSCallBarringPlugin::DoDeactivate");
-    CGSBaseView::DoDeactivate();
-    __GSLOGSTRING("[GS] <--CGSCallBarringPlugin::DoDeactivate");
-    }
- 
- 
-// ---------------------------------------------------------------------------
-// 
-// Creates new iContainer.
-// 
-// ---------------------------------------------------------------------------
-void CGSCallBarringPlugin::NewContainerL()
-    {
-    iContainer = new (ELeave) CGSCallBarringPluginContainer();
-    }
-
-// ---------------------------------------------------------------------------
-// CGSCallBarringPlugin::Container
-//
-// Returns call container item
-// ---------------------------------------------------------------------------
-//
-CGSCallBarringPluginContainer* CGSCallBarringPlugin::Container()
-    {
-    return static_cast <CGSCallBarringPluginContainer*> ( iContainer );
-    }
-
-// ========================= from CGSPluginInterface ==================
-
-// ----------------------------------------------------------------------------
-// CGSCallBarringPlugin::GetCaption
-//
-// Return application/view caption.
-// ----------------------------------------------------------------------------
-//
-void CGSCallBarringPlugin::GetCaptionL( TDes& aCaption ) const
-    {
-    // the resource file is already opened.
-    HBufC* result = StringLoader::LoadL( R_GS_CALL_BARRING_CAPTION );
-
-    aCaption.Copy( *result );
-    delete result;
-    }
-
-
-// ----------------------------------------------------------------------------
-// CGSCallBarringPlugin::PluginProviderCategory
-//
-// A means to identify the location of this plug-in in the framework.
-// ----------------------------------------------------------------------------
-//
-TInt CGSCallBarringPlugin::PluginProviderCategory() const
-    {
-    //To identify internal plug-ins.
-    return KGSPluginProviderInternal;
-    }
-
-
-// ----------------------------------------------------------------------------
-// CGSCallBarringPlugin::Visible
-//
-// Provides the visibility status of self to framework.
-// ----------------------------------------------------------------------------
-//
-TBool CGSCallBarringPlugin::Visible() const
-    {
-    TBool result( ETrue );
-    TInt value = 0;
-    RProperty::Get( KPSUidBluetoothSapConnectionState, 
-                    KBTSapConnectionState, value );
-    if ( value == EBTSapNotConnected || value == EBTSapConnecting )
-        {
-        //Now checking also for CSP support
-        __ASSERT_ALWAYS( iCSP != NULL, User::Panic( KGSNameOfClass, 
-                                   EGSCallBarringPluginPanicNullPtr ) );
-        TInt err = KErrNone;
-        err = iCSP->IsCBSupported( result );
-        //CSP modifies result value even if something goes wrong
-        //CSP will return KErrNotSupported (-5) in cases when
-        //it is not possible to read CSP values from SIM card
-        //Call Barring should be still displayed in this case
-        if ( err != KErrNone )
-            {
-            result = ETrue;
-            }
-        }
-    else
-        {
-        result = EFalse;
-        }
-    return result;    
-    }    
-
-// -----------------------------------------------------------------------------
-// CGSCallBarringPlugin::CreateIconL()
-//
-//
-// -----------------------------------------------------------------------------
-//
-CGulIcon* CGSCallBarringPlugin::CreateIconL( const TUid aIconType )
-    {
-    //EMbm<Mbm_file_name><Bitmap_name>
-    CGulIcon* icon;
-    TParse* fp = new( ELeave ) TParse();
-    CleanupStack::PushL( fp );
-    fp->Set( KGSCallBarringPluginIconDirAndName, &KDC_BITMAP_DIR, NULL );
-
-    if( aIconType == KGSIconTypeLbxItem )
-        {
-        icon = AknsUtils::CreateGulIconL(
-        AknsUtils::SkinInstance(),
-        KAknsIIDQgnPropSetBarrSub,
-        fp->FullName(),
-        EMbmGscallbarringpluginQgn_prop_set_barr_sub,
-        EMbmGscallbarringpluginQgn_prop_set_barr_sub_mask );
-        }
-    else
-        {
-        icon = CGSPluginInterface::CreateIconL( aIconType );
-        }
-
-    CleanupStack::PopAndDestroy( fp );
-
-    return icon;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGSCallBarringPlugin::HandleNotifyPSL
-//
-// Handling PS keys change
-// ---------------------------------------------------------------------------
-//  
-void CGSCallBarringPlugin::HandleNotifyPSL( const TUid aUid, const TInt& aKey,
-                                          const TRequestStatus& /* aStatus */ )
-    {
-    if ( aUid == KPSUidBluetoothSapConnectionState && 
-         aKey == KBTSapConnectionState )
-        {
-        Visible();
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGSCallBarringPlugin::SetCSPActiveL
-// 
-// Set Customer Service Profile active
-// ----------------------------------------------------------------------------
-//
-void CGSCallBarringPlugin::SetCSPActiveL( TBool aValue )
-    {
-    if ( aValue )
-        {
-        iCSP = CPsetCustomerServiceProfile::NewL();
-        User::LeaveIfError( iCSP->OpenCSProfileL() );
-        }
-    else
-        {        
-        delete iCSP;
-        iCSP = NULL;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGSCallBarringPlugin::HandleClientRectChange
-//
-// Handle changes to rect().
-// ---------------------------------------------------------------------------
-//
-void CGSCallBarringPlugin::HandleClientRectChange()
-    {
-    if ( iContainer )
-        {
-        iContainer->SetRect( ClientRect() );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGSCallBarringPlugin::ActivateInternalViewL
-//
-// Activate local views within this plug-in.
-// ---------------------------------------------------------------------------
-void CGSCallBarringPlugin::ActivateInternalViewL()
-    {
-    TInt btSapState = 0; 
-    RProperty::Get( KPSUidBluetoothSapConnectionState,
-                    KBTSapConnectionState,
-                    btSapState );
-
-    if ( iVoipSupported )
-        {
-        CreateLocalViewL( KCallMainBarringViewId );
-        }
-    else
-        {
-        if ( btSapState == EBTSapNotConnected )
-            {
-            CreateLocalViewL( KCallBarringViewId );
-            }
-        }
-
-    }
-
-// ---------------------------------------------------------------------------
-// CGSCallBarringPlugin::CreateLocalViewL
-//
-// Initializes local views within this plug-in based on the view ID.
-// ---------------------------------------------------------------------------
-void CGSCallBarringPlugin::CreateLocalViewL( TUid aLocalViewId )
-    {
-    CGSLocalBaseView* view;
-
-    // Check if the view exists. If view does not exist:
-    // 1. Create the view
-    // 2. Add view to cleanupstack (NewLC)
-    // 3. Add view to iAppUi -> iAppUi takes the view ownership.
-    // 4. Remove view from cleanupstack
-    // 5. Assign pointer of created view to member variable
-    //
-    if ( aLocalViewId == KCallBarringViewId )
-        {
-        //Check if BarringView already exists
-        if ( !iBarringView )
-            {
-            view = CGSSettListBarringView::NewLC();
-            iAppUi->AddViewL( view );
-            CleanupStack::Pop( view );
-            iBarringView = view;
-            }
-        iAppUi->ActivateLocalViewL( aLocalViewId );
-        }
-    else if ( aLocalViewId == KCallMainBarringViewId )
-        {
-        TUid viewId = aLocalViewId;
-        if ( !iBarringView )
-            {            
-            if ( FeatureManager::FeatureSupported( KFeatureIdRestrictedCallBarring ) )
-                {
-                // create the barring view directly if it's in restricted
-                // call barring
-                view = CGSSettListBarringView::NewLC();
-                viewId = view->Id();
-                }
-            else
-                {
-                view = CGSSettListMainBarringView::NewLC();
-                }
-            iAppUi->AddViewL( view );
-            CleanupStack::Pop( view );
-            iBarringView = view;    
-            }
-        // Activate the correct view in case restricted call barring is
-        // active
-        iAppUi->ActivateLocalViewL( viewId );    
-        }
-
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGSCallBarringPlugin::RemoveLocalViews
-//
-//
-// ---------------------------------------------------------------------------
-//
-void CGSCallBarringPlugin::RemoveLocalViews()
-    {
-    // Remove view from iAppUi -> View is deleted by iAppUi automatically.
-    if ( iBarringView )
-        {
-        if ( iVoipSupported )
-            {
-            iAppUi->RemoveView( KCallMainBarringViewId );// Also deletes view.
-            }
-        else
-            {
-            iAppUi->RemoveView( KCallBarringViewId );// Also deletes view.
-            }    
-        iBarringView = NULL;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGSCallBarringPlugin::HandleListBoxSelectionL
-//
-// Handle any user actions while in the list view.
-// ---------------------------------------------------------------------------
-void CGSCallBarringPlugin::HandleListBoxSelectionL()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CGSCallBarringPlugin::VoIPSupported
-//
-// Is VoIP feature supported.
-// ---------------------------------------------------------------------------
-
-TBool CGSCallBarringPlugin::VoipSupported() const 
-    {
-    return iVoipSupported;
-    }
-
-TGSListboxItemTypes CGSCallBarringPlugin::ItemType()
-    {
-    __GSLOGSTRING1( "[CGSCallBarringPlugin::ItemType] type %d", EGSItemTypeSettingDialog );
-    return EGSItemTypeSettingDialog;
-    }
-
-void CGSCallBarringPlugin::HandleSelection(
-                const TGSSelectionTypes /*aSelectionType*/ )
-    {
-    __GSLOGSTRING( "[CGSCallBarringPlugin::HandleSelection] Start" );
-    ActivateInternalViewL();
-    __GSLOGSTRING( "[CGSCallBarringPlugin::HandleSelection] End" );
-    }
- // End of file