browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp
changeset 28 d39add9822e2
parent 27 6297cdf66332
child 36 c711bdda59f4
--- a/browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp	Mon Jan 18 21:20:18 2010 +0200
+++ b/browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp	Tue Feb 02 00:56:45 2010 +0200
@@ -19,13 +19,17 @@
 */
 
 
-
+#include <browser_platform_variant.hrh>
 #include "ConnManActiveConnector.h"
 #include "ConnectionManagerLogger.h"
 
 #include <nifvar.h>
 #include <CommDbConnPref.h>
 
+#ifdef BRDO_OCC_ENABLED_FF
+#include <extendedconnpref.h>
+#endif
+
 //--------------------------------------------------------------------------
 //CConnManActiveConnector::CConnManActiveConnector()
 //--------------------------------------------------------------------------
@@ -34,7 +38,7 @@
     : CActive( aPriority )
     , iConnection( aConnection )
 	{
-    iWait = EFalse;
+    
 	CLOG_CREATE;
 	CActiveScheduler::Add( this );//inserting this into the queue
 	}
@@ -44,7 +48,7 @@
 //--------------------------------------------------------------------------
 CConnManActiveConnector::~CConnManActiveConnector()
 	{
-    iWait = EFalse;
+    
 	Cancel();//The standard way of destroying an Active object
 	CLOG_CLOSE;
 	}
@@ -53,18 +57,55 @@
 //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 Using Internet Snap");
+       extPref.SetSnapPurpose(CMManager::ESnapPurposeInternet);
+    }
+
+#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 );
@@ -79,14 +120,45 @@
 //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
+    CLOG_WRITE( "CConnManActiveConnector:StartConnection Using Internet Snap");
+    extPref.SetSnapPurpose(CMManager::ESnapPurposeInternet);
+
+#endif //__WINS__
+
+    extPref.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourDefault);
+    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 );
@@ -103,11 +175,10 @@
 void CConnManActiveConnector::DoCancel()
 	{
 	CLOG_WRITE( "CConnManActiveConnector: DoCancel called");
-    if(iWait)
-        {
-        iConnection.Close();
-        User::RequestComplete( iExternalRequestStatus, KErrCancel );//completing user req
-        }
+    
+	iConnection.Close();
+	User::RequestComplete( iExternalRequestStatus, KErrCancel );//completing user req
+    
 	CLOG_WRITE( "CConnManActiveConnector: DoCancel returned");
 	}
 
@@ -116,7 +187,7 @@
 //--------------------------------------------------------------------------
 void CConnManActiveConnector::RunL()
 	{
-    iWait = ETrue;
+    
     CLOG_WRITE_1( "CConnManAct::RunL(): %d", iStatus.Int() );
 	User::RequestComplete( iExternalRequestStatus, iStatus.Int() );
 	}
@@ -200,14 +271,12 @@
 //--------------------------------------------------------------------------
 void CActiveConnectorSyncWrapper::DoCancel()
 	{
-    if(iActiveConnector->IsActive())
-        {
-        iActiveConnector->Cancel();
-        }
-	if(iWait.IsStarted())
-	  {
-	   iWait.AsyncStop();	
-	  }
+    
+    iActiveConnector->Cancel();
+   	if(iWait.IsStarted())
+	{
+	  iWait.AsyncStop();	
+	}
 	
 	}