diff -r 79859ed3eea9 -r 919f36ff910f browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp --- 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 #include "ConnManActiveConnector.h" #include "ConnectionManagerLogger.h" - +#include #include -#include +#include + +#ifdef BRDO_OCC_ENABLED_FF +#include +#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