--- /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 <BtuiViewResources.rsg> // Compiled resource ids
+#include <aknnotewrappers.h>
+#include <StringLoader.h> // Series 60 localisation stringloader
+#include <e32property.h>
+#include <bt_subscribe.h>
+#include <featmgr.h> // Feature Manager API
+#include <AknMediatorFacade.h>
+#include <btengsettings.h>
+#include <ctsydomainpskeys.h>
+#include <CoreApplicationUIsSDKCRKeys.h>
+#include <SecondaryDisplay/BtuiSecondaryDisplayAPI.h>
+
+#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;
+ }
+
+
+