--- a/browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp Tue Aug 31 16:17:46 2010 +0300
+++ b/browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp Wed Sep 01 12:28:30 2010 +0100
@@ -19,12 +19,16 @@
*/
-
+#include <browser_platform_variant.hrh>
#include "ConnManActiveConnector.h"
#include "ConnectionManagerLogger.h"
-
+#include <mconnection.h>
#include <nifvar.h>
-#include <commdbconnpref.h>
+#include <CommDbConnPref.h>
+
+#ifdef BRDO_OCC_ENABLED_FF
+#include <extendedconnpref.h>
+#endif
//--------------------------------------------------------------------------
//CConnManActiveConnector::CConnManActiveConnector()
@@ -34,8 +38,10 @@
: CActive( aPriority )
, iConnection( aConnection )
{
+
CLOG_CREATE;
CActiveScheduler::Add( this );//inserting this into the queue
+ occPrefs = EDefault;
}
//--------------------------------------------------------------------------
@@ -43,6 +49,7 @@
//--------------------------------------------------------------------------
CConnManActiveConnector::~CConnManActiveConnector()
{
+
Cancel();//The standard way of destroying an Active object
CLOG_CLOSE;
}
@@ -51,18 +58,56 @@
//CConnManActiveConnector::StartConnection()
//--------------------------------------------------------------------------
void CConnManActiveConnector::StartConnection( TCommDbConnPref* aSettings, TRequestStatus& aStatus)
- {
- CLOG_WRITE( "CConnManActiveConnector:StartConnection is called");
- iExternalRequestStatus = &aStatus;
-
+{
+ CLOG_WRITE( "CConnManActiveConnector:StartConnection AlwaysAsk/Ap is called");
+ iExternalRequestStatus = &aStatus;
+
+#ifdef BRDO_OCC_ENABLED_FF
+
+ TExtendedConnPref extPref;
+ CLOG_WRITE( "CConnManActiveConnector:StartConnection Setting OCC parameters");
+
+#ifdef __WINS__ //This is only for emulator testing purpose
+
+ //For emulator
+ CLOG_WRITE( "CConnManActiveConnector:StartConnection Emulator OCC settings " );
+ extPref.SetSnapPurpose(CMManager::ESnapPurposeUnknown);
+ extPref.SetConnSelectionDialog(ETrue);
+ extPref.SetForcedRoaming(EFalse);
+
+#else
+
+ //For hardware
+ TUint32 bookmarkIap = aSettings->IapId();
+ CLOG_WRITE_1( "CConnManActiveConnector:StartConnection Active Bookmark Iap: %d", bookmarkIap );
+ if (bookmarkIap)
+ {
+ CLOG_WRITE( "CConnManActiveConnector:StartConnection Iap is found for this bookmark");
+ extPref.SetSnapPurpose(CMManager::ESnapPurposeUnknown);
+ extPref.SetIapId(bookmarkIap);
+ }
+ else
+ {
+ CLOG_WRITE( "CConnManActiveConnector:StartConnection Popup ap dialog");
+ extPref.SetSnapPurpose(CMManager::ESnapPurposeUnknown);
+ extPref.SetConnSelectionDialog(ETrue);
+ }
+
+#endif //__WINS__
+
+ extPref.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourDefault);
+ TConnPrefList prefList;
+ TRAP_IGNORE(prefList.AppendL(&extPref));
+#endif //BRDO_OCC_ENABLED_FF
+
if( aSettings )
- {
-#ifdef __WINS__
- // aSettings->SetDialogPreference( ECommDbDialogPrefPrompt );
-#endif
-
- iConnection.Start( *aSettings, iStatus );
- }
+ {
+ #ifdef BRDO_OCC_ENABLED_FF
+ iConnection.Start( prefList, iStatus );
+ #else
+ iConnection.Start( *aSettings, iStatus );
+ #endif
+ }
else
{
iConnection.Start( iStatus );
@@ -77,14 +122,62 @@
//CConnManActiveConnector::StartConnection()
//--------------------------------------------------------------------------
void CConnManActiveConnector::StartConnection( TConnSnapPref* aSettings, TRequestStatus& aStatus)
- {
- CLOG_WRITE( "CConnManActiveConnector:StartConnection is called");
- iExternalRequestStatus = &aStatus;
-
+{
+ CLOG_WRITE( "CConnManActiveConnector:StartConnection SNAP is called");
+ iExternalRequestStatus = &aStatus;
+
+#ifdef BRDO_OCC_ENABLED_FF
+
+ CLOG_WRITE( "CConnManActiveConnector:StartConnection Setting OCC parameters");
+ TExtendedConnPref extPref;
+
+#ifdef __WINS__
+
+ //For emulator
+ CLOG_WRITE( "CConnManActiveConnector:StartConnection Emulator OCC settings " );
+ extPref.SetSnapPurpose(CMManager::ESnapPurposeUnknown);
+ extPref.SetConnSelectionDialog(ETrue);
+ extPref.SetForcedRoaming(EFalse);
+
+#else
+
+ //For hardware
+ if( aSettings->Snap() == 0 )
+ {
+ CLOG_WRITE( "CConnManActiveConnector:StartConnection Using Internet Snap");
+ extPref.SetSnapPurpose(CMManager::ESnapPurposeInternet);
+ }
+ else
+ {
+ CLOG_WRITE( "CConnManActiveConnector:StartConnection Using given Snap");
+ extPref.SetSnapId(aSettings->Snap());
+ }
+
+#endif //__WINS__
+
+ extPref.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourDefault);
+ if ( occPrefs == ESilient )
+ {
+ CLOG_WRITE( "CConnManActiveConnector:StartConnection Setting OCC Silent behaviour");
+ extPref.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourConnSilent);
+ }
+ else
+ {
+ CLOG_WRITE( "CConnManActiveConnector:StartConnection Setting OCC Default behaviour");
+ }
+ TConnPrefList prefList;
+ TRAP_IGNORE(prefList.AppendL(&extPref));
+
+#endif
+
if( aSettings )
- {
- iConnection.Start( *aSettings, iStatus );
- }
+ {
+ #ifdef BRDO_OCC_ENABLED_FF
+ iConnection.Start( prefList, iStatus );
+ #else
+ iConnection.Start( *aSettings, iStatus );
+ #endif
+ }
else
{
iConnection.Start( iStatus );
@@ -101,8 +194,10 @@
void CConnManActiveConnector::DoCancel()
{
CLOG_WRITE( "CConnManActiveConnector: DoCancel called");
- iConnection.Close();
+ //This is work around fix for bug ESNA-855BUN
+ iConnection.Close();
User::RequestComplete( iExternalRequestStatus, KErrCancel );//completing user req
+
CLOG_WRITE( "CConnManActiveConnector: DoCancel returned");
}
@@ -111,10 +206,17 @@
//--------------------------------------------------------------------------
void CConnManActiveConnector::RunL()
{
+
CLOG_WRITE_1( "CConnManAct::RunL(): %d", iStatus.Int() );
User::RequestComplete( iExternalRequestStatus, iStatus.Int() );
}
+void CConnManActiveConnector::SetOccPreferences(TSetOCCPreferences aOCCPreferences)
+ {
+ CLOG_WRITE_1( "CConnManActiveConnector::SetOccPreferences : %d", aOCCPreferences );
+ occPrefs = aOCCPreferences;
+ }
+
//------------------------------------------------------ CActiveConnectorSyncWrapper -------------------------
//--------------------------------------------------------------------------
@@ -196,11 +298,10 @@
{
iActiveConnector->Cancel();
-
- if(iWait.IsStarted())
- {
- iWait.AsyncStop();
- }
+ if(iWait.IsStarted())
+ {
+ iWait.AsyncStop();
+ }
}
@@ -222,5 +323,9 @@
CActiveScheduler::Add( this );
}
-
+void CActiveConnectorSyncWrapper::SetOccPreferences(TSetOCCPreferences aOCCPreferences)
+ {
+ if ( iActiveConnector )
+ iActiveConnector->SetOccPreferences(aOCCPreferences);
+ }
//EOF