--- a/bluetoothengine/btui/Ecom/src/BTUIBlockedDevicesView.cpp Mon May 03 12:40:50 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,437 +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.hrh> // AVKON components
-#include <akntitle.h>
-#include <aknViewAppUi.h>
-#include <BtuiViewResources.rsg> // Compiled resource ids
-#include <featmgr.h> // Feature Manager
-#include <AknGlobalNote.h>
-#include <aknmessagequerydialog.h>
-#include <aknnotewrappers.h>
-#include <StringLoader.h> // Series 60 localisation stringloader
-#include <aknnavi.h>
-#include <hlplch.h> // Help launcher
-#include <secondarydisplay/BtuiSecondaryDisplayAPI.h>
-
-#include "BTUIBlockedDevicesView.h"
-#include "BTUIDeviceContainer.h"
-#include "debug.h"
-#include "btui.h"
-
-#include <gstabhelper.h>
-#include <btui.mbg> // Tab icon for General Setting
-#include <bluetoothuiutil.h>
-#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<MGSTabbedView>* aTabViewArray )
- {
- iBaseView = aBaseView,
- iTabHelper = CGSTabHelper::NewL();
- aTabViewArray->AppendL(this);
-
- BaseConstructL(R_BTUI_BLOCK_DEVICES_VIEW_GS);
-
- TRACE_INFO(_L("CBtuiGSPlugin* aBaseView, CArrayPtrFlat<MGSTabbedView>* 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<MGSTabbedView>* 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<CArrayPtrFlat<MGSTabbedView>*>
- (iBaseView->TabbedViews()) );
- }
-
- // 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 show "unblock" and "unblock all" commands
- // if there is nothing to unblock
- if (aResId == R_BTUI_BLOCK_DEVICES_VIEW_MENU)
- {
- if( iContainer->CountItems() == 0)
- {
- aMenu->SetItemDimmed(EBTUICmdUnblock, ETrue);
- aMenu->SetItemDimmed(EBTUICmdUnblockAll, ETrue);
- }
- else
- {
- aMenu->SetItemDimmed(EBTUICmdUnblockAll, EFalse);
- aMenu->SetItemDimmed(EBTUICmdUnblock, ETrue);
- }
- }
- 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;
- }
-