diff -r 000000000000 -r f63038272f30 bluetoothengine/btui/Ecom/src/BTUIViewsCommonUtils.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetoothengine/btui/Ecom/src/BTUIViewsCommonUtils.cpp Mon Jan 18 20:28:57 2010 +0200 @@ -0,0 +1,194 @@ +/* +* 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: Utility function for the views. +* +*/ + +#include // Compiled resource ids +#include +#include // Series 60 localisation stringloader +#include +#include +#include // Feature Manager API +#include +#include +#include +#include +#include + +#include "BTUIViewsCommonUtils.h" +#include "debug.h" + + +// ---------------------------------------------------------- +// TBTUIViewsCommonUtils::ShowGeneralErrorNoteL +// ---------------------------------------------------------- +// +void TBTUIViewsCommonUtils::ShowGeneralErrorNoteL() + { + //TRACE_FUNC_ENTRY + + CAknNoteDialog* dlg = new (ELeave) CAknNoteDialog( CAknNoteDialog::EErrorTone, + CAknNoteDialog::ELongTimeout ); + if(FeatureManager::FeatureSupported( KFeatureIdCoverDisplay )) + { + CleanupStack::PushL(dlg); + dlg->PublishDialogL(ECmdShowBtGeneralErrorNote, KUidCoverUiCategoryBtui); // initializes cover support + CleanupStack::Pop(dlg); + } + + TRACE_INFO(_L("ShowGeneralErrorNoteL ")) + dlg->ExecuteLD( R_BT_GENERAL_ERROR_NOTE ); + + //TRACE_FUNC_EXIT + } + +// ---------------------------------------------------------- +// TBTUIViewsCommonUtils::IsAnyDeviceConnectedL() +// ---------------------------------------------------------- +TBool TBTUIViewsCommonUtils::IsAnyDeviceConnectedL() + { + //TRACE_FUNC_ENTRY + + TInt connNum = 0; + TInt retVal = RProperty::Get(KPropertyUidBluetoothCategory, + KPropertyKeyBluetoothGetPHYCount, connNum); + TRACE_INFO((_L("GetConnectionNumber(): %d"), connNum)) + //TRACE_FUNC_EXIT + return (connNum > 0); + } + +// ----------------------------------------------- +// CBTUIPairedDevicesView::TurnBTOnIfNeededL +// ----------------------------------------------- +TInt TBTUIViewsCommonUtils::TurnBTOnIfNeededL(CBTEngSettings* aBtEngSettings,TBool aCoverDisplayEnabled ) + { + //TRACE_FUNC + + TInt errorCode = KErrNone; + TBTPowerStateValue previousPowerMode; + + errorCode=aBtEngSettings->GetPowerState(previousPowerMode); + if(errorCode) + return errorCode; + + if( previousPowerMode==EBTPowerOn ) + return KErrNone; + + if ( previousPowerMode==EBTPowerOff ) // power OFF -> ON + { + TRACE_INFO(_L("[BTUI]\t power OFF -> ON")) + + TInt offlineModeOff = 0; // possible values are 0 and 1 + TInt activationEnabled = 0; // possible values are 0 and 1 + + CRepository* repository = CRepository::NewL(KCRUidCoreApplicationUIs); + CleanupStack::PushL(repository); + repository->Get(KCoreAppUIsNetworkConnectionAllowed, offlineModeOff); + // Closing connection: + CleanupStack::PopAndDestroy(repository); + repository=NULL; + + repository = CRepository::NewL(KCRUidBluetoothEngine); + // Check activation enabled + CleanupStack::PushL(repository); + repository->Get(KBTEnabledInOffline, activationEnabled); + // Closing connection: + CleanupStack::PopAndDestroy(repository); + + + TRACE_INFO((_L("power OFF -> ON, offlineModeOff = %d"), offlineModeOff)) + TRACE_INFO((_L("power OFF -> ON, activationEnabled = %d"), activationEnabled)) + + // Choose user interaction + // + if ( !offlineModeOff && !activationEnabled ) + { + // Load a string, create and show a note + // + HBufC* stringHolder = StringLoader::LoadLC( R_BT_OFFLINE_DISABLED ); + CAknInformationNote* note = new (ELeave) CAknInformationNote(); + + if(aCoverDisplayEnabled) + { + CleanupStack::PushL(note); + note->PublishDialogL(ECmdBtuiShowBtOfflineDisableNote, KUidCoverUiCategoryBtui); // initializes cover support + CleanupStack::Pop(note); + } + + note->ExecuteLD( *stringHolder ); + CleanupStack::PopAndDestroy(stringHolder); //stringHolder + } + else + { + // Choose query + // + TInt resource = 0; + + TInt coverUiDlgId = 0; + + if ( offlineModeOff ) + { + resource = R_BT_IS_OFF_QUERY; + if(aCoverDisplayEnabled) + { + coverUiDlgId = ECmdBtuiShowBtIsOffDlg; + } + } + else + { + resource = R_BT_ACTIVATE_IN_OFFLINE_QUERY; + if(aCoverDisplayEnabled) + { + coverUiDlgId = ECmdBtuiShowBtActivateInOfflineDlg; + } + } + + // Create and show query + // + CAknQueryDialog* dlg = CAknQueryDialog::NewL(); + + if(aCoverDisplayEnabled) + { + CleanupStack::PushL(dlg); + dlg->PublishDialogL(coverUiDlgId, KUidCoverUiCategoryBtui); // initializes cover support + CleanupStack::Pop(dlg); + } + + TInt keypress = dlg->ExecuteLD( resource ); + + if( keypress ) + { + // Switch BT ON + // + errorCode=aBtEngSettings->SetPowerState(EBTPowerOn ) ; + if (errorCode) + { + ShowGeneralErrorNoteL(); + } + } else + { + errorCode=KErrCancel; + } + + + } + + } + + return errorCode; + } + + +