diff -r 0ba996a9b75d -r 613943a21004 bluetoothengine/btui/Ecom/src/BTUIBlockedDevicesView.cpp --- a/bluetoothengine/btui/Ecom/src/BTUIBlockedDevicesView.cpp Thu Aug 19 10:05:41 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,439 +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: This is view that handles listing and -* unblocking blocked devices view. -* -*/ - -#include // AVKON components -#include -#include -#include // Compiled resource ids -#include // Feature Manager -#include -#include -#include -#include // Series 60 localisation stringloader -#include -#include // Help launcher -#include - -#include "BTUIBlockedDevicesView.h" -#include "BTUIDeviceContainer.h" -#include "debug.h" -#include "btui.h" - -#include -#include // Tab icon for General Setting -#include -#include "BTUIMainView.h" // base View. - -// --------------------------------------------------------- -// CBTUIBlockedDevicesView::ConstructL -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------- -// -void CBTUIBlockedDevicesView::ConstructL() - { - TRACE_FUNC_ENTRY - - BaseConstructL(R_BTUI_BLOCK_DEVICES_VIEW); - - TRACE_FUNC_EXIT - } - -// --------------------------------------------------------- -// CBTUIBlockedDevicesView::ConstructL -// Symbian 2nd phase constructor when served as GS plugin. -// --------------------------------------------------------- -// -void CBTUIBlockedDevicesView::ConstructL( CBTUIMainView* aBaseView, CArrayPtrFlat* aTabViewArray ) - { - iBaseView = aBaseView, - iTabHelper = CGSTabHelper::NewL(); - aTabViewArray->AppendL(this); - - BaseConstructL(R_BTUI_BLOCK_DEVICES_VIEW_GS); - - TRACE_INFO(_L("CBtuiGSPlugin* aBaseView, CArrayPtrFlat* aTabViewArray")) - } - -// --------------------------------------------------------- -// CBTUIBlockedDevicesView::NewL -// Two phased constructor -// --------------------------------------------------------- -// -CBTUIBlockedDevicesView* CBTUIBlockedDevicesView::NewL(MBtuiPluginViewActivationObserver* aObserver) - { - //TRACE_FUNC_ENTRY - CBTUIBlockedDevicesView* self = new (ELeave) CBTUIBlockedDevicesView(aObserver); - CleanupStack::PushL(self); - self->iConstructAsGsPlugin = EFalse; - self->ConstructL(); - CleanupStack::Pop(self); - - return self; - } - -// --------------------------------------------------------- -// CBTUIBlockedDevicesView::NewL -// Two phased constructor -// --------------------------------------------------------- -// -CBTUIBlockedDevicesView* CBTUIBlockedDevicesView::NewLC(CBTUIMainView* aBaseView, CArrayPtrFlat* aTabViewArray) - { - CBTUIBlockedDevicesView* self = new (ELeave) CBTUIBlockedDevicesView(); - CleanupStack::PushL( self ); - - self->iConstructAsGsPlugin = ETrue; - self->ConstructL( aBaseView, aTabViewArray ); - - return self; - } - -// --------------------------------------------------------- -// CBTUIBlockedDevicesView::CBTUIBlockedDevicesView -// --------------------------------------------------------- - -CBTUIBlockedDevicesView::CBTUIBlockedDevicesView(MBtuiPluginViewActivationObserver* aObserver ) - :iActivationObserver(aObserver) - { - } - -// --------------------------------------------------------- -// Destructor -// --------------------------------------------------------- -// -CBTUIBlockedDevicesView::~CBTUIBlockedDevicesView() - { - TRACE_FUNC_ENTRY - if (iContainer) - { - AppUi()->RemoveFromViewStack(*this, iContainer); - } - - delete iContainer; - delete iModel; - - if(iConstructAsGsPlugin) - delete iTabHelper; - - TRACE_FUNC_EXIT - } - -// --------------------------------------------------------- -// From CAknView -// CBTUIBlockedDevicesView::Id -// --------------------------------------------------------- -// -TUid CBTUIBlockedDevicesView::Id() const - { - TRACE_FUNC_ENTRY - return KBtuiPluginUidBlockedDevicesView;//KBTBlockDevicesViewId; - } - -// --------------------------------------------------------- -// From CAknView -// CBTUIBlockedDevicesView::HandleCommandL -// --------------------------------------------------------- -// -void CBTUIBlockedDevicesView::HandleCommandL(TInt aCommand) - { - TRACE_FUNC_ENTRY - TInt bItemIndex; - switch (aCommand) - { - case EAknSoftkeyBack: - // do not exit if devicechange is in progress. - if(iModel->DeviceChangeInProgress() ) - return; - AppUi()->ActivateLocalViewL(iBaseView->GetParentView().iViewUid ); - break; - - case EAknSoftkeyExit: - // do not exit if devicechange is in progress. - if(iModel->DeviceChangeInProgress() ) - return; - AppUi()->ProcessCommandL(EEikCmdExit); - break; - - case EBTUICmdDelete: - case EBTUICmdUnblock: - { - - bItemIndex = iContainer->CurrentItemIndex(); - if(bItemIndex < 0) - break; - - TBTDevice device; - device.iIndex = bItemIndex; - iModel->GetDevice(device); - - RBuf s; - CleanupClosePushL( s ); - BluetoothUiUtil::LoadResourceAndSubstringL( - s, R_BT_WARN_ERASE_BLOCKED, device.iName, 0); - - CAknQueryDialog* dialog = CAknQueryDialog::NewL(CAknQueryDialog::EConfirmationTone); - TInt keypress = dialog->ExecuteLD(R_BT_GENERIC_QUERY, s); - - CleanupStack::PopAndDestroy(&s); - - if(keypress) // User has accepted the dialog - { - device.iOperation = EOpUnblock; - iModel->ChangeDevice(device); - } - - break; - - } - case EBTUICmdDeleteAll: - case EBTUICmdUnblockAll: - { - CAknQueryDialog* dialog = CAknQueryDialog::NewL(CAknQueryDialog::EConfirmationTone); - HBufC* s=iCoeEnv->AllocReadResourceLC(R_BT_WARN_ERASE_ALL_BLOCKED); - TInt keypress=dialog->ExecuteLD(R_BT_GENERIC_QUERY, *s); - CleanupStack::PopAndDestroy(s); - - if(keypress) - { - iModel->ChangeAllDevices(EOpUnblock); - } - - break; - } - - case EAknCmdHelp: - { - #ifdef __SERIES60_HELP - HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), AppUi()->AppHelpContextL()); - #endif - break; - } - - default: - { - AppUi()->HandleCommandL(aCommand); - break; - } - } - TRACE_FUNC_EXIT - } - - -// --------------------------------------------------------- -// From CAknView -// CBTUIBlockedDevicesView::DoActivateL -// --------------------------------------------------------- -// -void CBTUIBlockedDevicesView::DoActivateL(const TVwsViewId& /*aPrevViewId*/, - TUid /*aCustomMessageId*/, - const TDesC8& /*aCustomMessage*/) - { - TRACE_FUNC_ENTRY - // Setup title - // - iModel = CBTDevModel::NewL(EGroupBlocked, this); - iContainer = CBTUiDeviceContainer::NewL(ClientRect(), this, EGroupBlocked, this); - - HBufC* btBlockDevices = iCoeEnv->AllocReadResourceLC(R_BT_TITLE_BLOCKED_DEV); - CEikStatusPane* statusPane = StatusPane(); - CAknTitlePane* titlePane; - titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle)); - titlePane->SetTextL(*btBlockDevices); - CleanupStack::PopAndDestroy(btBlockDevices); - AppUi()->AddToStackL(*this, iContainer); - DimMskL(ETrue ); - // the MSK will be undimmed, if there are blocked devices when - // the deviceList will be refreshed - - if( iBaseView && iConstructAsGsPlugin) - { - iTabHelper->CreateTabGroupL( Id(), - static_cast*> - (iBaseView->TabbedViews()) ); - } - - - MenuBar()->SetContextMenuTitleResourceId( - R_BTUI_MENUBAR_BLOCK_DEVICES_VIEW); - - // notify observer - if( iActivationObserver && iConstructAsGsPlugin == EFalse) - { - iActivationObserver->PluginViewActivated(EBlockedDevicesViewId); - } - - TRACE_FUNC_EXIT - } - -// --------------------------------------------------------- -// From CAknView -// CBTUIBlockedDevicesView::DoDeactivate -// --------------------------------------------------------- -// -void CBTUIBlockedDevicesView::DoDeactivate() - { - TRACE_FUNC_ENTRY - if (iContainer) - { - AppUi()->RemoveFromStack(iContainer); - delete iContainer; - iContainer = NULL; - } - - delete iModel; - iModel=NULL; - if(iConstructAsGsPlugin) - iTabHelper->RemoveTabGroup(); - - TRACE_FUNC_EXIT - } -// --------------------------------------------------------- -// CBTUIBlockedDevicesView::DimMskL -// This will dim/Undim MSK. -// However the command is sent when the key is pressed -// regardless wether the MSK command is visible and -// the view must be able to receive it anyway. -// --------------------------------------------------------- -void CBTUIBlockedDevicesView::DimMskL(TBool aDimmed) - { - TRACE_FUNC_ENTRY - if(aDimmed) - { - Cba()->SetCommandL (EBTUICmdUnblock,KNullDesC); - } - else - { - if(iConstructAsGsPlugin) - { - Cba()->SetCommandSetL(R_BTUI_SOFTKEYS_OPTIONS_BACK__UNBLOCK); - } - else - { - Cba()->SetCommandSetL(R_BTUI_SOFTKEYS_OPTIONS_EXIT__UNBLOCK); - } - } - - Cba()->DrawDeferred(); - - // NOTE: these will only hide the MSK label. - // The command is still being sent if button is pressed. - // HandleCommanL will take care - // of the situation that there may be no devices to unblock - TRACE_FUNC_EXIT - } - -// --------------------------------------------------------- -// From CAknView -// CBTUIBlockedDevicesView::DynInitMenuPaneL -// Shows selected item's context sensitive options menu. -// --------------------------------------------------------- -// -void CBTUIBlockedDevicesView::DynInitMenuPaneL(TInt aResId, CEikMenuPane* aMenu) - { - TRACE_FUNC_ENTRY - // dim help if it exists and is not supported - TInt tmp; - if ( aMenu->MenuItemExists(EAknCmdHelp,tmp ) ) - { - aMenu->SetItemDimmed(EAknCmdHelp, - !FeatureManager::FeatureSupported( KFeatureIdHelp ) ); - } - - // do not "unblock all" commands - // if there is nothing to unblock - if (aResId == R_BTUI_BLOCK_DEVICES_VIEW_MENU) - { - if( iContainer->CountItems() == 0) - { - aMenu->SetItemDimmed(EBTUICmdUnblockAll, ETrue); - } - else - { - aMenu->SetItemDimmed(EBTUICmdUnblockAll, EFalse); - } - } - TRACE_FUNC_EXIT - } - -// --------------------------------------------------------- -// From MBTDeviceObserver -// CBTUIBlockedDevicesView::NotifyChangeDeviceComplete -// --------------------------------------------------------- -// -void CBTUIBlockedDevicesView::NotifyChangeDeviceComplete(const TInt aErr, - const TBTDevice&, const RBTDevNameArray* ) - { - TRACE_FUNC_ENTRY - // we do not show any note, when blocked devices are unblocked, - // and that is the only command available. - - if(aErr!= KErrNone) - { - TRAP_IGNORE(TBTUIViewsCommonUtils::ShowGeneralErrorNoteL();); - } - TRACE_FUNC_EXIT - } - - -// ----------------------------------------------- -// From MBTDeviceObserver -// CBTUIBlockedDevicesView::RefreshDeviceList -// ----------------------------------------------- -void CBTUIBlockedDevicesView::RefreshDeviceList(const RDeviceArray* aDevices, - TInt aSelectedItemIndex) - { - TRACE_FUNC_ENTRY - - TRAPD(err, - if(iContainer) - { - iContainer->RefreshDeviceListL(aDevices,aSelectedItemIndex ); - } - // dim the MSK if there are no devices to unblock - DimMskL(aDevices->Count()==0); - - ); - if(err!= KErrNone) - { - TRAP_IGNORE( TBTUIViewsCommonUtils::ShowGeneralErrorNoteL(); ); - } - - TRACE_FUNC_EXIT - } - -// --------------------------------------------------------------------------- -// CBTUIBlockedDevicesView::CreateTabIconL() -// Creates icon for tab. -// --------------------------------------------------------------------------- -// -CGulIcon* CBTUIBlockedDevicesView::CreateTabIconL() - { - TFileName bmpFilename; - bmpFilename += KBitmapFileDrive; - bmpFilename += KDC_APP_BITMAP_DIR; - bmpFilename += KBtuiBmpFileName; - - CGulIcon* icon = AknsUtils::CreateGulIconL( - AknsUtils::SkinInstance(), - KAknsIIDQgnPropBtBlockedTab3, - bmpFilename, - EMbmBtuiQgn_prop_bt_blocked_tab3, - EMbmBtuiQgn_prop_bt_blocked_tab3_mask ); - - return icon; - } -