# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1286971295 -10800 # Node ID ea98413ce11f84b35e55ceca3958f06d6f74ad8e # Parent 10852b179f6443802a717e93a5c506e6e834ece1 Revision: 201038 Kit: 201041 diff -r 10852b179f64 -r ea98413ce11f layers.sysdef.xml --- a/layers.sysdef.xml Wed Sep 15 12:40:28 2010 +0300 +++ b/layers.sysdef.xml Wed Oct 13 15:01:35 2010 +0300 @@ -14,11 +14,6 @@ mrp="" bldFile="&layer_real_source_path;/supl/locationomasuplprotocolhandler/asnpluginimplementation/group" filter="dfs_build" name="lodo_locationsrv_supl_asnpluginimplementation>" /> - - - SetItemDimmed( ELocServerEditorDefine, ETrue ); + aMenuPane->SetItemDimmed( ELocServerEditorChange, ETrue ); break; } case ELocSuplServerIdAccessPoint: { + TInt isIapChanged = EFalse; + CEikEdwin* apSelector = + static_cast < CEikEdwin* > ( ControlOrNull( IdOfFocusControl() ) ); + if( apSelector ) + { + if( iIap->Length() > 0 ) + isIapChanged = ETrue; + } + + if( isIapChanged ) + { + aMenuPane->SetItemDimmed( ELocServerEditorDefine, ETrue ); + } + else + { + aMenuPane->SetItemDimmed( ELocServerEditorChange, ETrue ); + } break; } case ELocSuplServerIdUsageInHomeNw: @@ -197,6 +215,8 @@ TBool editableFlag = ETrue; if( iSlpId ) TRAP_IGNORE( iEngine.GetEditableFlagL( iSlpId, editableFlag ) ); + if( editableFlag == EFalse ) + aMenuPane->SetItemDimmed( ELocServerEditorChange, ETrue ); break; } @@ -234,6 +254,7 @@ } aMenuPane->SetItemDimmed( ELocServerEditorDefine, ETrue ); + aMenuPane->SetItemDimmed( ELocServerEditorChange, ETrue ); aMenuPane->SetItemDimmed( ELocServerEditorRemove, ETrue ); } } @@ -279,10 +300,22 @@ TRAP_IGNORE( iEngine.SetServerEnabledFlagL( iSlpId, ETrue ) ); break; } + case ELocServerEditorDefine: + { + TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) ); + break; + } + case ELocServerEditorChange: case ELocServerEditorMSKChange: { CEikEdwin* usageInHomeNWPopupFieldText = (CEikEdwin*) Control( ELocSuplServerIdUsageInHomeNw); + if (IdOfFocusControl() == ELocSuplServerIdAccessPoint) + { + TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) ); + } + else + { HBufC* string; string = StringLoader::LoadLC( R_LOC_SERVER_USAGEINHOMENETWORK_NO, iCoeEnv); @@ -316,8 +349,9 @@ SetUsageinHomeNetwork(EFalse); } } + } CleanupStack::PopAndDestroy(string); - } + } break; } case EAknCmdHelp: @@ -429,6 +463,13 @@ retVal = EFalse; break; } + case ELocServerEditorMSKDefine: + { + TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) ); + //dont close editor + retVal = EFalse; + break; + } case ELocServerEditorMSKChange: { ProcessCommandL( ELocServerEditorMSKChange ); @@ -454,11 +495,9 @@ { if( iIsNewServer ) { - // iap name is always set as KNullDesC since defining the access point is - // not allowed while creating a new server manually TRAPD( err, iEngine.AddNewServerL( iServerAddress->Des(), - KNullDesC, + iIap->Des(), iUsageInHomeNw ) ); if( err == KErrNone ) { @@ -611,11 +650,11 @@ usageInHomeNWPopupFieldText->GetText(des); if (!des.CompareC(string->Des())) { - iUsageInHomeNw = EFalse; + iUsageInHomeNw = ETrue; } else { - iUsageInHomeNw = ETrue; + iUsageInHomeNw = EFalse; } CleanupStack::PopAndDestroy(string); } @@ -721,18 +760,10 @@ // ----------------------------------------------------------------------------- // TInt CLocSUPLServerEditor::ExecuteLD() - { - if (!iIsAccessPointDefined) - { - return CAknForm::ExecuteLD(R_SUPLSERVER_EDITOR_FORM_DIALOG_NOAP); - } - else - { - return CAknForm::ExecuteLD(R_SUPLSERVER_EDITOR_FORM_DIALOG); - } + { + return CAknForm::ExecuteLD( R_SUPLSERVER_EDITOR_FORM_DIALOG ); } - // ----------------------------------------------------------------------------- // CLocSUPLServerEditor::HandleControlStateChangeL // ----------------------------------------------------------------------------- @@ -785,6 +816,15 @@ DEBUG( + CLocSUPLServerEditor::LoadFormValuesFromDataL ); if( IsEditable() && iIsNewServer ) //if create new server { + CEikEdwin* apSelector = + static_cast < CEikEdwin* > ( ControlOrNull( ELocSuplServerIdAccessPoint ) ); + if( apSelector ) + { + HBufC* apString = StringLoader::LoadL( R_LOC_SERVER_NONE ); + apSelector->SetTextL( apString ); + delete apString; + } + apSelector->DrawNow(); CEikEdwin* usageInHNWPopupFieldText = (CEikEdwin*) Control( ELocSuplServerIdUsageInHomeNw); @@ -830,7 +870,7 @@ { // Error has occured } - + CEikEdwin* serverAddress = static_cast < CEikEdwin* > ( ControlOrNull( ELocSuplServerIdServerAddr ) ); if( serverAddress ) @@ -841,24 +881,31 @@ serverAddress->DrawDeferred(); iServerAddress->Des().Copy( hslpAddr->Des() ); } - - if (iIsAccessPointDefined) - { - CEikEdwin* apSelector = static_cast (ControlOrNull( - ELocSuplServerIdAccessPoint)); - if (apSelector) - { - apSelector->SetTextL(iapName); - apSelector->DrawNow(); - iIap->Des().Copy(iapName->Des()); - } - } - + + CEikEdwin* apSelector = + static_cast < CEikEdwin* > ( ControlOrNull( ELocSuplServerIdAccessPoint ) ); + if( apSelector ) + { + if( iapName->Length() > 0 ) + { + apSelector->SetTextL( iapName ); + } + else + { + HBufC* apString = StringLoader::LoadL( R_LOC_SERVER_NONE ); + apSelector->SetTextL( apString ); + delete apString; + } + + apSelector->DrawNow(); + iIap->Des().Copy( iapName->Des() ); + } + CEikEdwin* usageInHNWPopupFieldText = (CEikEdwin*) Control( ELocSuplServerIdUsageInHomeNw); if (usageInHNWPopupFieldText) { - if (!usageInHomeNwFlag) + if (usageInHomeNwFlag) SetUsageinHomeNetwork(EFalse); else SetUsageinHomeNetwork(ETrue); @@ -943,6 +990,22 @@ } case ELocSuplServerIdAccessPoint: { + TInt isIapChanged = EFalse; + CEikEdwin* apSelector = + static_cast < CEikEdwin* > ( ControlOrNull( IdOfFocusControl() ) ); + if( apSelector && iIap ) + { + if( iIap->Length() > 0 ) + isIapChanged = ETrue; + } + if( isIapChanged ) + { + cba->SetCommandSetL( R_SUPLSERVER_EDITOR_OPTIONS_CHANGE_DONE ); + } + else + { + cba->SetCommandSetL( R_SUPLSERVER_EDITOR_OPTIONS_DEFINE_DONE ); + } break; } case ELocSuplServerIdUsageInHomeNw: @@ -1084,12 +1147,10 @@ if (!IsEditable()) { if (focusControl == ELocSuplServerIdUsageInHomeNw - || focusControl == ELocSuplServerIdServerAddr) + || ELocSuplServerIdServerAddr || ELocSuplServerIdAccessPoint) { ProcessCommandL(EAknFormCmdEdit); } - else - return; } else if (aEventID == MEikDialogPageObserver::EDialogPageTapped) { @@ -1118,6 +1179,14 @@ } return; } + if (focusControl == ELocSuplServerIdAccessPoint) + { + if (iapEditor) + { + //Launch IAP Dialog + TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) ); + } + } }DEBUG( -CLocSUPLServerEditor::HandleDialogPageEventL ); } @@ -1148,15 +1217,4 @@ CleanupStack::PopAndDestroy(string); } -// ----------------------------------------------------------------------------- -// CLocSUPLServerEditor::SetAccessPointEnabled -// -// ----------------------------------------------------------------------------- -// -void CLocSUPLServerEditor::SetAccessPointEnabled (TBool aEnabled) - { - iIsAccessPointDefined = aEnabled; - } - - // End of file diff -r 10852b179f64 -r ea98413ce11f locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettings.cpp --- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettings.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettings.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -543,8 +543,14 @@ iAppUi.ActivateLocalViewL( iSettingsViewId ); } else if( ELocSUPLIAPSelection == iLaunchParams ) - { - // Do nothing,since there is no access point selection + { + // Check if the User intended to Launch IAP confirmation + iSettingsEngine->SelectConnectionL(); + } + else if( ELocSuplIAPDialog == iLaunchParams ) + { + // Check if the User intended to Launch IAP Selection + iSettingsEngine->LaunchIAPDialogL(); } else { diff -r 10852b179f64 -r ea98413ce11f locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsadapter.cpp --- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsadapter.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsadapter.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -58,6 +58,17 @@ delete iSUPLSettings; iSUPLSettings = NULL; + delete iAutomatic; + iAutomatic = NULL; + + delete iAutomaticatHome; + iAutomaticatHome = NULL; + + delete iAsk; + iAsk = NULL; + + delete iDisable; + iDisable = NULL; DEBUG( - CLocSUPLSettingsAdapter::~CLocSUPLSettingsAdapter ); } @@ -99,6 +110,11 @@ // Set the Observer for SUPL Sessions iSUPLSettings->SetSessionObserverL( *this ); + // Load the SUPL settings usage strings + iAutomatic = StringLoader::LoadL( R_LOC_SUPL_AUTOMATIC ); + iAutomaticatHome = StringLoader::LoadL( R_LOC_SUPL_HOME_AUTOMATIC ); + iAsk = StringLoader::LoadL( R_LOC_SUPL_ASK ); + iDisable = StringLoader::LoadL( R_LOC_SUPL_DISABLED ); CActiveScheduler::Add( this ); DEBUG( - CLocSUPLSettingsAdapter::ConstructL ); @@ -131,7 +147,210 @@ Cancel(); } +// --------------------------------------------------------------------------- +// void CLocSUPLSettingsAdapter::SetSuplUsageL +// --------------------------------------------------------------------------- +// +void CLocSUPLSettingsAdapter::SetSuplUsageL( + const CLocSUPLSettingsAdapter::TLocSuplUsage aIndex ) + { + DEBUG( + CLocSUPLSettingsAdapter::SetSuplUsageL ); + CSuplSettings::TSuplSettingsUsage value = CSuplSettings::ESuplUsageAlwaysAsk; + switch ( aIndex ) + { + case ELocSuplAutomatic: + { + value = CSuplSettings::ESuplUsageAutomatic; + break; + } + case ELocSuplAutomaticatHome: + { + value = CSuplSettings::ESuplUsageHomeAutomatic; + break; + } + case ELocSuplAlwaysAsk: + { + value = CSuplSettings::ESuplUsageAlwaysAsk; + break; + } + case ELocSuplDisable: + { + value = CSuplSettings::ESuplUsageDisabled; + break; + } + default: + { + User::Leave( KErrNotFound ); + break; + } + } + // Write back to the SUPL settings API + TInt ret = iSUPLSettings->SetSuplUsage( value ); + + // If the Set failed, then Leave with the corresponding Error code + if( ret ) + { + User::Leave ( ret ); + } + DEBUG( - CLocSUPLSettingsAdapter::SetSuplUsageL ); + } + +// --------------------------------------------------------------------------- +// void CLocSUPLSettingsAdapter::GetSuplUsageL +// --------------------------------------------------------------------------- +// +void CLocSUPLSettingsAdapter::GetSuplUsageL( TDes& aSuplUsage ) + { + DEBUG( + CLocSUPLSettingsAdapter::GetSuplUsageL ); + CSuplSettings::TSuplSettingsUsage value = CSuplSettings::ESuplUsageAlwaysAsk; + User::LeaveIfError( iSUPLSettings->GetSuplUsage( value )); + + switch ( value ) + { + case CSuplSettings::ESuplUsageAutomatic: + { + if ( aSuplUsage.MaxLength() < iAutomatic->Des().Length()) + { + User::Leave( KErrNoMemory ); + } + aSuplUsage.Copy( *iAutomatic ); + break; + } + case CSuplSettings::ESuplUsageHomeAutomatic: + { + if ( aSuplUsage.MaxLength() < iAutomaticatHome->Des().Length()) + { + User::Leave( KErrNoMemory ); + } + aSuplUsage.Copy( *iAutomaticatHome ); + break; + } + case CSuplSettings::ESuplUsageAlwaysAsk: + { + if ( aSuplUsage.MaxLength() < iAsk->Des().Length()) + { + User::Leave( KErrNoMemory ); + } + aSuplUsage.Copy( *iAsk ); + break; + } + case CSuplSettings::ESuplUsageDisabled: + { + if ( aSuplUsage.MaxLength() < iDisable->Des().Length()) + { + User::Leave( KErrNoMemory ); + } + aSuplUsage.Copy( *iDisable ); + break; + } + default: + { + User::Leave( KErrNotSupported ); + break; + } + } + DEBUG( - CLocSUPLSettingsAdapter::GetSuplUsageL ); + } + +// --------------------------------------------------------------------------- +// TLocSuplUsage CLocSUPLSettingsAdapter::GetSuplUsage +// --------------------------------------------------------------------------- +// +TInt CLocSUPLSettingsAdapter::GetSuplUsage() + { + DEBUG( + CLocSUPLSettingsAdapter::GetSuplUsage TInt ); + CSuplSettings::TSuplSettingsUsage value = CSuplSettings::ESuplUsageAlwaysAsk; + TInt error = iSUPLSettings->GetSuplUsage( value ); + if ( error ) + { + // If there is an error then return the default value + return CSuplSettings::ESuplUsageAlwaysAsk; + } + DEBUG( - CLocSUPLSettingsAdapter::GetSuplUsage TInt ); + return value; + } + +// --------------------------------------------------------------------------- +// TLocSuplUsage CLocSUPLSettingsAdapter::GetSuplUsageIndex +// --------------------------------------------------------------------------- +// +CLocSUPLSettingsAdapter::TLocSuplUsage CLocSUPLSettingsAdapter::GetSuplUsageIndex() + { + DEBUG( + CLocSUPLSettingsAdapter::GetSuplUsageIndex ); + TLocSuplUsage index = ELocSuplAutomatic; + CSuplSettings::TSuplSettingsUsage value = CSuplSettings::ESuplUsageAlwaysAsk; + if ( iSUPLSettings->GetSuplUsage( value )) + { + // If there is an error then return the default value. + return index; + } + + switch ( value ) + { + case CSuplSettings::ESuplUsageAutomatic: + { + index = ELocSuplAutomatic; + break; + } + case CSuplSettings::ESuplUsageHomeAutomatic: + { + index = ELocSuplAutomaticatHome; + break; + } + case CSuplSettings::ESuplUsageAlwaysAsk: + { + index = ELocSuplAlwaysAsk; + break; + } + case CSuplSettings::ESuplUsageDisabled: + { + index = ELocSuplDisable; + break; + } + default: + { + break; + } + } + return index; + } + +// --------------------------------------------------------------------------- +// const TDesC& CLocSUPLSettingsAdapter::Automatic +// --------------------------------------------------------------------------- +// +const TDesC& CLocSUPLSettingsAdapter::Automatic() + { + return *iAutomatic; + } + +// --------------------------------------------------------------------------- +// const TDesC& CLocSUPLSettingsAdapter::AutomaticAtHome +// --------------------------------------------------------------------------- +// +const TDesC& CLocSUPLSettingsAdapter::AutomaticAtHome() + { + return *iAutomaticatHome; + } + +// --------------------------------------------------------------------------- +// const TDesC& CLocSUPLSettingsAdapter::AlwaysAsk +// --------------------------------------------------------------------------- +// +const TDesC& CLocSUPLSettingsAdapter::AlwaysAsk() + { + return *iAsk; + } + +// --------------------------------------------------------------------------- +// const TDesC& CLocSUPLSettingsAdapter::Disable +// --------------------------------------------------------------------------- +// +const TDesC& CLocSUPLSettingsAdapter::Disable() + { + return *iDisable; + } // --------------------------------------------------------------------------- // void CLocSUPLSettingsAdapter::HandleSuplSettingsChangeL diff -r 10852b179f64 -r ea98413ce11f locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingscontainer.cpp --- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingscontainer.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingscontainer.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -283,7 +283,16 @@ case EEventEnterKeyPressed: case EEventItemSingleClicked: //case EEventItemDoubleClicked: { - iSettingsView.HandleCommandL(ELocSuplMSKOpen); + // Settings element has been selected. Command has to be issued to + // change the settings configuration + if ( SelectedItemIndex() == 0 ) + { + iSettingsView.HandleCommandL( ELocSuplMSKChange ); + } + else if ( SelectedItemIndex() == 1 || SelectedItemIndex() == 2 ) + { + iSettingsView.HandleCommandL( ELocSuplMSKOpen ); + } break; } default: diff -r 10852b179f64 -r ea98413ce11f locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingslbmodel.cpp --- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingslbmodel.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingslbmodel.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -68,10 +68,14 @@ delete iServerDetailTitle; iServerDetailTitle = NULL; + delete iSuplUsageTitle; + iSuplUsageTitle = NULL; delete iSuplServerDetail; iSuplServerDetail = NULL; + delete iDefaultSuplUsage; + iDefaultSuplUsage = NULL; DEBUG( - CLocSUPLSettingsLBModel::~CLocSUPLSettingsLBModel ); } @@ -144,7 +148,32 @@ ptr.Copy( KDefaultServerIPAddress ); } - + // Reinitializing the flag value + flagValue = 0; + TRAPD( error, repository = CRepository::NewL( KCRUidOMASuplConfiguration ) ); + if ( !error ) + { + error = repository->Get( KOMASuplConfigurationSuplPermissionQueryUsage, flagValue ); + if ( error || flagValue < 0 ) + { + flagValue = 0; + } + delete repository; + repository = NULL; + } + + // Check for SUPL Setting usage variationing. + if( flagValue ) + { + iSuplUsagePresent = ETrue; + + // Allocate and set the server ip address title field + iSuplUsageTitle = StringLoader::LoadL( R_LOC_SUPL_USE ); + + iDefaultSuplUsage = StringLoader::LoadL( R_AVKON_SELEC_SETT_VAL_FIELD_NONE ); + // Default value can be used for this field as well + // So no need to have another variable. + } DEBUG( - CLocSUPLSettingsLBModel::ConstructL ); } @@ -160,16 +189,21 @@ CLocSUPLSettingsLBModel::ResolveSettingsItem( TInt aListboxIndex ) const { DEBUG( + CLocSUPLSettingsLBModel::ResolveSettingsItem ); - TSUPLSettingsItemId selectedItem = ESUPLSettingsServersDetail; + TSUPLSettingsItemId selectedItem = ESUPLSettingsUsage; switch ( aListboxIndex ) { case 0: { + selectedItem = ESUPLSettingsUsage; + break; + } + case 1: + { selectedItem = ESUPLSettingsServersDetail; break; } - case 1: + case 2: { selectedItem = ESUPLSettingsActiveSessions; break; @@ -193,15 +227,27 @@ // TInt CLocSUPLSettingsLBModel::MdcaCount() const { - DEBUG( + CLocSUPLSettingsLBModel::MdcaCount ); - // Initialize the count to 0 - TInt itemCount = 0; - - // Check for Server address - iServerAddressPresent ? itemCount++ : itemCount; - itemCount++; // For the third entry "Active sessions" - DEBUG( - CLocSUPLSettingsLBModel::MdcaCount ); - return itemCount; + DEBUG( + CLocSUPLSettingsLBModel::MdcaCount ); + // Initialize the count to 0 + TInt itemCount = 0; + + // Check for SUPL usage. + if ( iSuplUsagePresent ) + { + itemCount++; + // Check if the usage value is disabled + if ( iEngine.GetSuplUsage() == CSuplSettings::ESuplUsageDisabled ) + { + return itemCount; + } + // Check for Server address + iServerAddressPresent ? itemCount++ : itemCount; + } + itemCount++; // For the third entry "Active sessions" + // Check if the SUPL Usage value is Disabled + // If that is the case then only SUPL usage will be displayed + DEBUG( - CLocSUPLSettingsLBModel::MdcaCount ); + return itemCount; } // --------------------------------------------------------------------------- @@ -229,6 +275,11 @@ TSUPLSettingsItemId index = ResolveSettingsItem( aIndex ); switch( index ) { + case ESUPLSettingsUsage: + { + AppendSuplUsage( ptr ); + break; + } case ESUPLSettingsServersDetail: { AppendSuplServerDetail( ptr ); @@ -252,7 +303,41 @@ return iBuffer->Des(); } - +// --------------------------------------------------------------------------- +// TPtrC16 CLocSUPLSettingsLBModel::AppendSuplServerDetail() +// Packs the server address to the end of the buffer passed. +// +// @param aPtr Buffer to which the server address needs to be appended. +// --------------------------------------------------------------------------- +// +void CLocSUPLSettingsLBModel::AppendSuplUsage( TDes& aPtr ) const + { + DEBUG( + CLocSUPLSettingsLBModel::AppendSuplUsage ); + // Append the Title text + aPtr.Append( iSuplUsageTitle->Des() ); + + // Append the second tab + aPtr.Append( EKeyTab ); + + // Append the third tab + aPtr.Append( EKeyTab ); + + // Obtain the SUPL usage from the SUPL Settings Engine. If + // the settings is not set then a Not defined value would be + // displayed to the user + TPtr16 suplUsagePtr( NULL, 0 ); + TRAPD( error, suplUsagePtr.Set( iEngine.GetSuplUsageL() ) ); + if( error || !suplUsagePtr.Length() ) + { + // Using the same string as SUPL settings AP + aPtr.Append( iDefaultSuplUsage->Des() ); + } + else + { + aPtr.Append( suplUsagePtr ); + } + DEBUG( - CLocSUPLSettingsLBModel::AppendSuplUsage ); + } // --------------------------------------------------------------------------- // TPtrC16 CLocSUPLSettingsLBModel::AppendSuplServerDetail() diff -r 10852b179f64 -r ea98413ce11f locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsuiengine.cpp --- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsuiengine.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsuiengine.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -51,6 +51,7 @@ #include "locsuplservereditor.h" #include "locsuplsessioneditor.h" #include "locsupldebug.h" +#include "locsettingsuiclient.h" // For the Launch parameter values // Constants const TInt KMaxBufferLength = 0x100; @@ -63,9 +64,13 @@ // CLocSUPLSettingsUiEngine::CLocSUPLSettingsUiEngine( MLocSUPLSettingsUiEngObserver& aObserver ) - : iObserver( aObserver ), + : CActive( EPriorityStandard ), + iObserver( aObserver ), iConversionBufferPtr( NULL, 0 ), - iEditorDlg(NULL), + iSettingsBufferPtr( NULL, 0 ), + iConnectionMgmtQuery( NULL ), + iCurrentSlpId( -1 ), + iEditorObserver( NULL ), iTempAP(-1) { // No implementation @@ -79,7 +84,15 @@ CLocSUPLSettingsUiEngine::~CLocSUPLSettingsUiEngine() { DEBUG( + CLocSUPLSettingsUiEngine::~CLocSUPLSettingsUiEngine ); + Cancel(); + // Delete the Confirmation query + delete iConfirmQuery; + iConfirmQuery = NULL; + + // Delete the ConnectionMgmt query + delete iConnectionMgmtQuery; + iConnectionMgmtQuery = NULL; delete iSUPLSettingsAdapter; iSUPLSettingsAdapter = NULL; @@ -88,6 +101,8 @@ delete iConversionBuffer; iConversionBuffer = NULL; + delete iSettingsBuffer; + iSettingsBuffer = NULL; // Delete the Error handling utilities delete iTextResolver; @@ -142,12 +157,15 @@ iConversionBuffer = HBufC16::NewL( KMaxBufferLength ); iConversionBufferPtr.Set( iConversionBuffer->Des() ); + iSettingsBuffer = HBufC::NewL( KMaxBufferLength ); + iSettingsBufferPtr.Set( iSettingsBuffer->Des()); iTextResolver = CTextResolver::NewL( *( CCoeEnv::Static() ) ); // Create the SUPL Settings API adapter. iSUPLSettingsAdapter = CLocSUPLSettingsAdapter::NewL( *this ); + CActiveScheduler::Add( this ); DEBUG( - CLocSUPLSettingsUiEngine::ConstructL ); } @@ -165,8 +183,244 @@ DEBUG( - CLocSUPLSettingsUiEngine::Initalize ); } +void CLocSUPLSettingsUiEngine::SelectConnectionL() + { + DEBUG( + CLocSUPLSettingsUiEngine::SelectConnectionL ); + if( iDialogActive || IsActive() || iConfirmQuery || iConnectionMgmtQuery ) + { + User::Leave( KErrInUse ); + } + + // set the Launch type + iLaunchParams = ELocSUPLIAPSelection; + + // In the case of a framework launching SUPL UI, the user is ignorant + // of the action. Hence, a confirmation dialog is popped up to intimate + // the user that he needs to configure SUPL settings. + + iConfirmQuery = CAknGlobalConfirmationQuery::NewL(); + CAknSDData* secondaryData = CAknSDData::NewL( KCatUidLocationSuplSettingsUi, + ECmdSuplSettingsMissing, + KNullDesC8 ); + + // Send the Confirmation query information to the Secondary display + // The ownership of 'secondaryData' is taken up by the Global confirmation query + iConfirmQuery->SetSecondaryDisplayData( secondaryData ); + + // Load the SUPL IAP confirmation query prompt text from the resource file + HBufC* promptText = StringLoader::LoadL( R_LOC_SUPL_IAP_QUERY ); + + // Display the Confirmation query. + iConfirmQuery->ShowConfirmationQueryL( iStatus, + *promptText, + R_AVKON_SOFTKEYS_YES_NO__YES, + R_QGN_NOTE_QUERY_ANIM ); + + SetActive(); + delete promptText; // + promptText = NULL; + DEBUG( - CLocSUPLSettingsUiEngine::SelectConnectionL ); + } +// --------------------------------------------------------------------------- +// void CLocSUPLSettingsUiEngine::LaunchApConfiguratorL +// Launches the Access Point Configurator dialog +// +// --------------------------------------------------------------------------- +// +void CLocSUPLSettingsUiEngine::LaunchApConfiguratorL( TInt64 aSlpId, + MSuplServerEditorObserver* aEditorObserver ) + { + DEBUG( + CLocSUPLSettingsUiEngine::LaunchApConfiguratorL ); + iCurrentSlpId = aSlpId; + iEditorObserver = aEditorObserver; + + if( iDialogActive ) + { + User::Leave( KErrInUse ); + } + + // Zeroing the Temporary buffers so that it doesn't contain any + // left over value from the previous access + iSettingsBufferPtr.Zero(); + + // Obtain the UID for the selected Access point so that the configurator + // can be highlighted + TUint32 highlightUid( 0 ); + + // if AP value is NULL, or zero, no temp AP, all previous changes have been frozen. + TInt32 tempAP = GetTempAPValue(); + if ( tempAP == -1) + { + // Obtain the Server address value from the SUPL settings + // API. If the value is set then it has to be shown to the user + // as the existing value when he tries to configure the UI + TRAP_IGNORE( iSUPLSettingsAdapter->GetIapNameL( iCurrentSlpId, iSettingsBufferPtr ) ); + + TRAPD( error, highlightUid = ConvertIAPNameToIdL( iSettingsBufferPtr ) ); + + if( error == KErrNotFound ) + { + highlightUid = 0; + } + } + else + { + highlightUid = tempAP; + } + + iConnectionMgmtQuery = CCmApplicationSettingsUi::NewL(); + + iDialogActive = ETrue; + TBool ret = EFalse; + TCmSettingSelection selectionUid; + selectionUid.iId = highlightUid; + selectionUid.iResult = CMManager::EConnectionMethod ; + TBearerFilterArray filter; + CleanupClosePushL( filter ); + + // Need access points for bearer type CSD and Packet data only + filter.AppendL( KUidCSDBearerType ); + filter.AppendL( KUidPacketDataBearerType ); + + // Run CCmApplicationSettingsUi dialog only for Access points (Connection methods) + // selectionUid contains UID to be highlighted, on return it will contain UID of selected CM + TRAPD( error, ret = + iConnectionMgmtQuery->RunApplicationSettingsL( + selectionUid , CMManager::EShowConnectionMethods, filter + ) ); // | CMManager::EShowAlwaysAsk + + iDialogActive = EFalse; + if( error == CMManager::KErrConnectionNotFound ) + { + // No AP defined, Show Note + TRAP_IGNORE( ShowNoteL(); ) + //User::Leave( error ); + } + CleanupStack::PopAndDestroy( &filter ); + delete iConnectionMgmtQuery; + iConnectionMgmtQuery = NULL; + + if( ret ) + { + SetTempAPValue(selectionUid.iId); + RCmManager cmManager; + cmManager.OpenLC(); + + RArray< TUint32 > cmArray; + HBufC* cmName = NULL; + RCmConnectionMethod method; + // Get all the CMs into cmArray + cmManager.ConnectionMethodL( cmArray, ETrue, EFalse ); + CleanupClosePushL( cmArray ); + + // Get name of selected CM + TInt count = cmArray.Count(); + for ( TInt i = 0; i < count; i++ ) + { + if (selectionUid.iId == cmArray[i] ) + { + method = cmManager.ConnectionMethodL( cmArray[i] ); + CleanupClosePushL( method ); + cmName = method.GetStringAttributeL( CMManager::ECmName ); + CleanupStack::PushL( cmName ); + iSettingsBufferPtr.Copy( cmName->Des() ); + CleanupStack::PopAndDestroy( cmName ); + CleanupStack::PopAndDestroy( &method ); + break; + } + } + CleanupStack::PopAndDestroy( &cmArray ); + CleanupStack::PopAndDestroy( &cmManager ); + + if( iEditorObserver ) + { + iEditorObserver->UpdateIapL( iSettingsBufferPtr ); + } + } + + DEBUG( - CLocSUPLSettingsUiEngine::LaunchApConfiguratorL ); + } + +// --------------------------------------------------------------------------- +// void CLocSUPLSettingsUiEngine::LaunchSuplUsageConfiguratorL +// Launches the SUPL Usage Configurator +// +// --------------------------------------------------------------------------- +// +void CLocSUPLSettingsUiEngine::LaunchSuplUsageConfiguratorL() + { + DEBUG( + CLocSUPLSettingsUiEngine::LaunchSuplUsageConfiguratorL ); + if( iDialogActive ) + { + User::Leave( KErrInUse ); + } + + // Allocate the descriptor array for Text settings for System + // of measurement + CDesCArrayFlat* items = new( ELeave ) CDesCArrayFlat( KNoofUsageSettings ); + CleanupStack::PushL( items ); + + // Allocate all the Settings usage string + + // Append the radio-button list items + items->AppendL( iSUPLSettingsAdapter->Automatic() ); + items->AppendL( iSUPLSettingsAdapter->AutomaticAtHome() ); + items->AppendL( iSUPLSettingsAdapter->AlwaysAsk() ); + items->AppendL( iSUPLSettingsAdapter->Disable() ); + + // Obtain the current value for SUPL settings usage + // This would be used for setting the default value for + // the text settings page + TInt currentSettings = iSUPLSettingsAdapter->GetSuplUsageIndex(); + + CAknRadioButtonSettingPage* dlg = + new ( ELeave )CAknRadioButtonSettingPage( R_LOC_SUPLUSAGE_SETTINGS, + currentSettings, + items ); + // Settings Outstanding flag is marked True to enable dismissal incase + // of a Cancel event + iDialogActive = ETrue; + if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) ) + { + CLocSUPLSettingsAdapter::TLocSuplUsage newValue = + static_cast( currentSettings ); + + iSUPLSettingsAdapter->SetSuplUsageL( newValue ); + } + + iDialogActive = EFalse; + + // Free the items resource + CleanupStack::PopAndDestroy( items ); + DEBUG( - CLocSUPLSettingsUiEngine::LaunchSuplUsageConfiguratorL ); + } + +// --------------------------------------------------------------------------- +// void CLocSUPLSettingsUiEngine::LaunchIAPDialogL +// Launches the IAP Dialog +// +// --------------------------------------------------------------------------- +// +void CLocSUPLSettingsUiEngine::LaunchIAPDialogL( ) + { + DEBUG( + CLocSUPLSettingsUiEngine::LaunchIAPDialogL ); + if( iDialogActive || IsActive() || iConfirmQuery || iConnectionMgmtQuery ) + { + User::Leave( KErrInUse ); + } + + // set the Launch type + iLaunchParams = ELocSuplIAPDialog; + + // Self complete + SetActive(); + TRequestStatus* status = &iStatus; + User::RequestComplete(status, KErrNone); + + DEBUG( - CLocSUPLSettingsUiEngine::LaunchIAPDialogL ); + } // --------------------------------------------------------------------------- // void CLocSUPLSettingsUiEngine::Close @@ -176,14 +430,59 @@ void CLocSUPLSettingsUiEngine::Close() { DEBUG( + CLocSUPLSettingsUiEngine::Close ); + Cancel(); // Cancel the Initalization request. This call Cancels if there is an // outstanding request. If not, does nothing iSUPLSettingsAdapter->CancelInitialize(); + // If any of the dialogs are active then issue a cancel event on the + // dialogs + if( iDialogActive ) + { + TKeyEvent keyEvent; + keyEvent.iCode = EKeyCBA2; + keyEvent.iScanCode = EStdKeyDevice1; + keyEvent.iModifiers = EAllModifiers; + keyEvent.iRepeats = 0; + CCoeEnv* cCoeEnv = CCoeEnv::Static(); + + // Simulate a Cancel event on the running dialogs. The Simulated event + // is for the Left Soft Key. + // Ignore the error incase of a leave + + TRAP_IGNORE( cCoeEnv->SimulateKeyEventL( keyEvent, EEventKey ) ); + } DEBUG( - CLocSUPLSettingsUiEngine::Close ); } +// --------------------------------------------------------------------------- +// TPtr16 CLocSUPLSettingsAdapter::GetSuplUsage +// --------------------------------------------------------------------------- +// +TPtr16 CLocSUPLSettingsUiEngine::GetSuplUsageL() + { + DEBUG( + CLocSUPLSettingsUiEngine::GetSuplUsageL ); + // Zeroing the Temporary buffers so that it doesn't contain any + // left over value from the previous access + iSettingsBufferPtr.Zero(); + iConversionBufferPtr.Zero(); + + // Obtain the Settings values from the SUPL settings API + iSUPLSettingsAdapter->GetSuplUsageL( iSettingsBufferPtr ); + iConversionBufferPtr.Copy( iSettingsBufferPtr ); + DEBUG( - CLocSUPLSettingsUiEngine::GetSuplUsageL ); + return iConversionBufferPtr; + } + +// --------------------------------------------------------------------------- +// TInt CLocSUPLSettingsAdapter::GetSuplUsage +// --------------------------------------------------------------------------- +// +TInt CLocSUPLSettingsUiEngine::GetSuplUsage() + { + return iSUPLSettingsAdapter->GetSuplUsage(); + } // --------------------------------------------------------------------------- // void CLocSUPLSettingsUiEngine::HandleSuplSettingsChangeL @@ -201,6 +500,92 @@ } // --------------------------------------------------------------------------- +// void CLocSUPLSettingsUiEngine::RunL() +// +// --------------------------------------------------------------------------- +// +void CLocSUPLSettingsUiEngine::RunL() + { + DEBUG( + CLocSUPLSettingsUiEngine::RunL ); + // If the Confirmation query is present then we have to Pop up the + // IAP Selection dialog based on User Action + if( iConfirmQuery && iLaunchParams == ELocSUPLIAPSelection ) + { + // Incase there has been a response from the User then the Key pressed + // is present in the iStatus variable + if( EAknSoftkeyYes == iStatus.Int() ) + { + iObserver.HandleSettingsEventL( + MLocSUPLSettingsUiEngObserver::EIAPSelectionComplete ); + } + else + { + iObserver.HandleSettingsEventL( + MLocSUPLSettingsUiEngObserver::EIAPSelectionCancelled ); + } + + // Destroy the IAP confirmation query handle + delete iConfirmQuery; + iConfirmQuery = NULL; + } + else if( iLaunchParams == ELocSuplIAPDialog ) // Launch IAP Dialog + { + // Launch Access Point dialog to get the access point + TRAPD(err, LaunchApConfiguratorL(KErrNotFound, NULL) ); + + // Update the Access points for all the Slp whose AP is missing. + if( KErrNone == err ) + TRAP(err, UpdateMissingIAPL( iSettingsBufferPtr ) ); + + // Incase of any errors. + if( KErrNone == err ) + { + iObserver.HandleSettingsEventL( + MLocSUPLSettingsUiEngObserver::EIAPSelectionComplete ); + } + else + { + iObserver.HandleSettingsEventL( + MLocSUPLSettingsUiEngObserver::EIAPSelectionCancelled ); + } + } + else + { + iObserver.HandleSettingsEventL( + MLocSUPLSettingsUiEngObserver::EIAPSelectionCancelled ); + } + + DEBUG( - CLocSUPLSettingsUiEngine::RunL ); + } + +// --------------------------------------------------------------------------- +// void CLocSUPLSettingsUiEngine::DoCancel() +// +// --------------------------------------------------------------------------- +// +void CLocSUPLSettingsUiEngine::DoCancel() + { + DEBUG( + CLocSUPLSettingsUiEngine::DoCancel ); + if( iConfirmQuery ) + { + // If the confirmation query is running Cancel the query + iConfirmQuery->CancelConfirmationQuery(); + + delete iConfirmQuery; + iConfirmQuery = NULL; + + } + + if( iConnectionMgmtQuery ) + { + delete iConnectionMgmtQuery; + iConnectionMgmtQuery = NULL; + } + + DEBUG( - CLocSUPLSettingsUiEngine::DoCancel ); + } + +// --------------------------------------------------------------------------- // void CLocSUPLSettingsUiEngine::GenerateHslpAddressFromImsi() // // --------------------------------------------------------------------------- @@ -212,6 +597,56 @@ DEBUG( - CLocSUPLSettingsUiEngine::DoCancel ); } +// --------------------------------------------------------------------------- +// void CLocSUPLSettingsUiEngine::UpdateMissingIAPL() +// Updates Access point for ALL SLPs which do not have AP defined. +// +// --------------------------------------------------------------------------- +// +void CLocSUPLSettingsUiEngine::UpdateMissingIAPL(const TDesC& aAccessPoint ) + { + // return if there is no access point in aAccessPoint + if( aAccessPoint.Length() <=0 ) + return; + + RPointerArray serverParamValues; + CleanupClosePushL( serverParamValues ); + + GetAllSlpL( serverParamValues ); + + HBufC* hslpAddr = HBufC::NewLC( KMaxHSLPAddrLen ); + HBufC* iapName = HBufC::NewLC( KMaxIAPLen ); + TInt64 slpId; + TBool enabledFlag, simChangeFlag, usageInHomeNwFlag, editFlag; + + TInt count = serverParamValues.Count(); + for( TInt i=0; iDes().Zero(); + iapName->Des().Zero(); + + // Get Server detils + TInt errParams = serverParamValues[i]->Get( + slpId, + hslpAddr->Des(), + iapName->Des(), + enabledFlag, + simChangeFlag, + usageInHomeNwFlag, + editFlag + ); + + // Update IAP name if it is not present. + if( errParams == KErrNone && iapName->Length() <= 0 ) + { + SetIapNameL( slpId, aAccessPoint ); + } + } + + CleanupStack::PopAndDestroy(2); // hslpAddr, iapName + CleanupStack::PopAndDestroy( &serverParamValues ); // serverParamValues + } // --------------------------------------------------------------------------- // TUint CLocSUPLSettingsUiEngine::ConvertIAPNameToIdL() @@ -289,6 +724,33 @@ DEBUG( - CLocSUPLSettingsUiEngine::DisplayErrorL ); } +// --------------------------------------------------------------------------- +// void CLocSUPLSettingsUiEngine::ShowNoteL() +// Displays No access point defined note +// +// @param None +// --------------------------------------------------------------------------- +// +TInt CLocSUPLSettingsUiEngine::ShowNoteL() + { + DEBUG( + CLocSUPLSettingsUiEngine::ShowNoteL ); + // Show Info Note "No Access Points Defined" + HBufC* tmp = StringLoader::LoadL( R_LOC_NO_AP_DEFINED ); + CleanupStack::PushL( tmp ); + CAknNoteDialog* dlg = + new ( ELeave ) CAknNoteDialog + ( + REINTERPRET_CAST( CEikDialog**, &dlg ), + CAknNoteDialog::ENoTone, + CAknNoteDialog::EShortTimeout + ); + dlg->PrepareLC( R_GENERAL_NOTE ); + dlg->SetTextL( *tmp ); + TInt retval = dlg->RunLD(); + CleanupStack::PopAndDestroy( tmp ); // temp + DEBUG( - CLocSUPLSettingsUiEngine::ShowNoteL ); + return retval; + } // --------------------------------------------------------------------------- // void CLocSUPLSettingsUiEngine::EditServerL() @@ -300,43 +762,21 @@ // void CLocSUPLSettingsUiEngine::EditServerL( TBool iIsEditable, TInt64 aSlpId ) { - DEBUG( + CLocSUPLSettingsUiEngine::EditServerL ); - if (iEditorDlg) - { - delete iEditorDlg; - iEditorDlg = NULL; - } - iEditorDlg = CLocSUPLServerEditor::NewL(iIsEditable, *this, aSlpId); - if (aSlpId > 0) + DEBUG( + CLocSUPLSettingsUiEngine::EditServerL ); + if( iEditorDlg ) + { + delete iEditorDlg; + iEditorDlg = NULL; + } + iEditorDlg = CLocSUPLServerEditor::NewL( iIsEditable, *this, aSlpId ); + TInt error = iEditorDlg->ExecuteLD(); + if ( EEikCmdExit == error ) { - CServerParams *params = CServerParams::NewL(); - CleanupStack::PushL(params); - GetSlpInfoFromIdL(aSlpId, params); - - HBufC* hslpAddr = HBufC::NewLC(KMaxHSLPAddrLen); - HBufC* iapName = HBufC::NewLC(KMaxIAPLen); - TInt64 slpId; - TBool enabledFlag, simChangeFlag, usageInHomeNwFlag, editFlag; - - TInt errParams = params->Get(slpId, hslpAddr->Des(), iapName->Des(), - enabledFlag, simChangeFlag, usageInHomeNwFlag, editFlag); - if (iapName->Length() > 0) - { - iEditorDlg->SetAccessPointEnabled(ETrue); - } - - CleanupStack::PopAndDestroy(3, params); - } + ( ( CAknViewAppUi* ) CEikonEnv::Static()->EikAppUi())->HandleCommandL( EEikCmdExit ); + } + iEditorDlg = NULL; - TInt error = iEditorDlg->ExecuteLD(); - if (EEikCmdExit == error) - { - ((CAknViewAppUi*) CEikonEnv::Static()->EikAppUi())->HandleCommandL( - EEikCmdExit); - } - iEditorDlg = NULL; - - DEBUG( - CLocSUPLSettingsUiEngine::EditServerL ); + DEBUG( - CLocSUPLSettingsUiEngine::EditServerL ); } // --------------------------------------------------------------------------- diff -r 10852b179f64 -r ea98413ce11f locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsview.cpp --- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsview.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsview.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -292,33 +292,42 @@ ChangeMSKL(); break; } - + // Handle all the internal view specific commands here + case ELocSuplChange: + case ELocSuplMSKChange: + { + // Launch the SUPL Settings usage configurator. + // The error code is ignored since the necessary UI + // notification would be convveyed by the Engine + TRAP_IGNORE( iEngine.LaunchSuplUsageConfiguratorL() ); + break; + } case ELocSuplOpen: case ELocSuplMSKOpen: { TInt index = SelectedItemIndex(); switch( index ) { - case 0: - { - // Launch the Supl Server List. - // The error code is ignored since the necessary UI - // notification would be convveyed by the Engine - iViewLaunched = 0; - TRAP_IGNORE( AppUi()->ActivateLocalViewL ( KLocSUPLServerUiViewId ) ); - break; - } - case 1: - { - TInt sessionCount = iContainer->ActiveSessionCount(); - if (sessionCount) - { - iViewLaunched = 1; - // Launch the Supl sessions view. - TRAP_IGNORE( AppUi()->ActivateLocalViewL ( KLocSUPLSessionUiViewId ) ); - } - break; - } + case 1: + { + // Launch the Supl Server List. + // The error code is ignored since the necessary UI + // notification would be convveyed by the Engine + iViewLaunched = 1; + TRAP_IGNORE( AppUi()->ActivateLocalViewL ( KLocSUPLServerUiViewId ) ); + break; + } + case 2: + { + TInt sessionCount = iContainer->ActiveSessionCount(); + if( sessionCount ) + { + iViewLaunched = 2; + // Launch the Supl sessions view. + TRAP_IGNORE( AppUi()->ActivateLocalViewL ( KLocSUPLSessionUiViewId ) ); + } + break; + } default: break; } @@ -435,27 +444,37 @@ { case 0: { - aMenuPane->SetItemDimmed( ELocSuplOpen, EFalse ); + //aMenuPane->SetItemDimmed( ELocSuplChange, EFalse ); + //aMenuPane->SetItemDimmed( ELocSuplOpen, ETrue ); aMenuPane->SetItemDimmed( ELocSuplClearSession, ETrue ); aMenuPane->SetItemDimmed( ELocSuplClearSessions, ETrue ); break; } case 1: { + //aMenuPane->SetItemDimmed( ELocSuplChange, ETrue ); + //aMenuPane->SetItemDimmed( ELocSuplOpen, EFalse ); + aMenuPane->SetItemDimmed( ELocSuplClearSession, ETrue ); + aMenuPane->SetItemDimmed( ELocSuplClearSessions, ETrue ); + break; + } + case 2: + { + aMenuPane->SetItemDimmed( ELocSuplChange, ETrue ); TInt sessionCount = iContainer->ActiveSessionCount(); switch( sessionCount ) { case 0: { - aMenuPane->SetItemDimmed( ELocSuplOpen, ETrue ); + //aMenuPane->SetItemDimmed( ELocSuplOpen, ETrue ); aMenuPane->SetItemDimmed( ELocSuplClearSession, ETrue ); aMenuPane->SetItemDimmed( ELocSuplClearSessions, ETrue ); break; } case 1: { - aMenuPane->SetItemDimmed( ELocSuplOpen, EFalse ); + //aMenuPane->SetItemDimmed( ELocSuplOpen, EFalse ); aMenuPane->SetItemDimmed( ELocSuplClearSession, EFalse ); aMenuPane->SetItemSpecific(ELocSuplClearSession, ETrue); aMenuPane->SetItemDimmed( ELocSuplClearSessions, ETrue ); @@ -463,7 +482,7 @@ } default: { - aMenuPane->SetItemDimmed( ELocSuplOpen, EFalse ); + //aMenuPane->SetItemDimmed( ELocSuplOpen, EFalse ); aMenuPane->SetItemDimmed( ELocSuplClearSession, ETrue ); aMenuPane->SetItemDimmed( ELocSuplClearSessions, EFalse ); aMenuPane->SetItemSpecific(ELocSuplClearSessions, ETrue); diff -r 10852b179f64 -r ea98413ce11f locationsystemui/locationsysui/queryandnotification/inc/EPos_CPosPrivacyNotifierExtension.h --- a/locationsystemui/locationsysui/queryandnotification/inc/EPos_CPosPrivacyNotifierExtension.h Wed Sep 15 12:40:28 2010 +0300 +++ b/locationsystemui/locationsysui/queryandnotification/inc/EPos_CPosPrivacyNotifierExtension.h Wed Oct 13 15:01:35 2010 +0300 @@ -30,7 +30,7 @@ // INCLUDES #include #include -#include +#include #include // FORWARD DECLARATIONS class CPosRequestHandler; diff -r 10852b179f64 -r ea98413ce11f locationsystemui/locationsysui/queryandnotification/inc/EPos_CPosRequestHandler.h --- a/locationsystemui/locationsysui/queryandnotification/inc/EPos_CPosRequestHandler.h Wed Sep 15 12:40:28 2010 +0300 +++ b/locationsystemui/locationsysui/queryandnotification/inc/EPos_CPosRequestHandler.h Wed Oct 13 15:01:35 2010 +0300 @@ -29,7 +29,7 @@ // INCLUDES #include -#include +#include #include // FORWARD DECLARATIONS diff -r 10852b179f64 -r ea98413ce11f locsrv_plat/location_settings_launch_api/inc/locsettingsuiclient.h --- a/locsrv_plat/location_settings_launch_api/inc/locsettingsuiclient.h Wed Sep 15 12:40:28 2010 +0300 +++ b/locsrv_plat/location_settings_launch_api/inc/locsettingsuiclient.h Wed Oct 13 15:01:35 2010 +0300 @@ -66,7 +66,8 @@ ELocSUPLDefault = KDefaultParamValue, // Default Settings View ELocSUPLIAPSelection = 0x00000001, // IAP Selection dialog ELocSUPLStateSelection = 0x00000002, // State enable dialog - ELocSuplSettingsPage = 0x00000010 // SUPL settings page + ELocSuplSettingsPage = 0x00000010, // SUPL settings page + ELocSuplIAPDialog = 0x00000020 // SUPL IAP dialog }; diff -r 10852b179f64 -r ea98413ce11f locsrv_plat/query_and_notification_api/inc/EPos_CPosPrivacyNotifier.h --- a/locsrv_plat/query_and_notification_api/inc/EPos_CPosPrivacyNotifier.h Wed Sep 15 12:40:28 2010 +0300 +++ b/locsrv_plat/query_and_notification_api/inc/EPos_CPosPrivacyNotifier.h Wed Oct 13 15:01:35 2010 +0300 @@ -23,7 +23,7 @@ // INCLUDES #include #include -#include +#include // DATA TYPES diff -r 10852b179f64 -r ea98413ce11f supl/group/bld.inf --- a/supl/group/bld.inf Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/group/bld.inf Wed Oct 13 15:01:35 2010 +0300 @@ -17,11 +17,10 @@ PRJ_PLATFORMS -WINSCW ARMV5 +WINSCW ARMV5 GCCE #include "../locationsuplfw/group/bld.inf" #include "../locationomasuplprotocolhandler/group/bld.inf" //#include "../locationomasuplpostester/group/bld.inf" #include "../supltiapiimplementation/group/bld.inf" -//#include "../locationsupllocinfoconverter/group/bld.inf" // End of File diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/group/bld.inf --- a/supl/locationomasuplprotocolhandler/group/bld.inf Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/group/bld.inf Wed Oct 13 15:01:35 2010 +0300 @@ -44,5 +44,6 @@ #include "../waplistener/group/bld.inf" #include "../syncmlprovhandler/group/bld.inf" #include "../provisioninghandler/group/bld.inf" +#include "../notifier/group/bld.inf" // End of File diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/notifier/notifier/data/epos_omasuplnotifier.rss --- a/supl/locationomasuplprotocolhandler/notifier/notifier/data/epos_omasuplnotifier.rss Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/notifier/notifier/data/epos_omasuplnotifier.rss Wed Oct 13 15:01:35 2010 +0300 @@ -29,7 +29,7 @@ #include // User Includes -#include +#include // RESOURCE IDENTIFIER NAME SUNO // 4 Letter Identifier diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandler/bwins/eposomasuplprotocolhandleru.def --- a/supl/locationomasuplprotocolhandler/protocolhandler/bwins/eposomasuplprotocolhandleru.def Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandler/bwins/eposomasuplprotocolhandleru.def Wed Oct 13 15:01:35 2010 +0300 @@ -15,24 +15,24 @@ ??1COMASuplSettings@@UAE@XZ @ 14 NONAME ; COMASuplSettings::~COMASuplSettings(void) ?IsHslpNull@COMASuplSettings@@QAEHXZ @ 15 NONAME ; int COMASuplSettings::IsHslpNull(void) ?NotifyTriggerFiredL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@AAVTSuplTriggerFireInfo@@@Z @ 16 NONAME ; void COMASUPLProtocolManager::NotifyTriggerFiredL(class CSuplSessionBase *, class TRequestStatus &, class TSuplTriggerFireInfo &) - ?MakeLocationConversionRequestL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTGeoCellInfo@@AAVTRequestStatus@@@Z @ 17 NONAME ; void COMASUPLProtocolManager::MakeLocationConversionRequestL(class CSuplSessionBase *, class TGeoCellInfo &, class TRequestStatus &) - ?IAPId@COMASuplSettings@@QBEHXZ @ 18 NONAME ; int COMASuplSettings::IAPId(void) const - ?CancelLocationConversionRequest@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 19 NONAME ; void COMASUPLProtocolManager::CancelLocationConversionRequest(class CSuplSessionBase *) - ?DeInitialize@COMASUPLProtocolManager@@UAEXAAVTRequestStatus@@@Z @ 20 NONAME ; void COMASUPLProtocolManager::DeInitialize(class TRequestStatus &) - ?RunSuplTriggerSessionL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@AAVTSuplTerminalPeriodicTrigger@@ABVTDesC16@@HHH@Z @ 21 NONAME ; void COMASUPLProtocolManager::RunSuplTriggerSessionL(class CSuplSessionBase *, class TRequestStatus &, class TSuplTerminalPeriodicTrigger &, class TDesC16 const &, int, int, int) - ?ConvertIAPNameToIdL@COMASuplSettings@@QAEHABVTDesC16@@AAK@Z @ 22 NONAME ; int COMASuplSettings::ConvertIAPNameToIdL(class TDesC16 const &, unsigned long &) - ?CreateNewSessionL@COMASUPLProtocolManager@@UAEPAVCSuplSessionBase@@W4TSuplReqType@CSUPLProtocolManagerBase@@HW4TSuplServiceType@RSuplTerminalSubSession@@@Z @ 23 NONAME ; class CSuplSessionBase * COMASUPLProtocolManager::CreateNewSessionL(enum CSUPLProtocolManagerBase::TSuplReqType, int, enum RSuplTerminalSubSession::TSuplServiceType) - ?SetIAPId@COMASuplSettings@@QAEXH@Z @ 24 NONAME ; void COMASuplSettings::SetIAPId(int) - ?ReadOMASuplSettingsL@COMASuplCommonConfig@@QAEXXZ @ 25 NONAME ; void COMASuplCommonConfig::ReadOMASuplSettingsL(void) - ?CancelRunSession@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 26 NONAME ; void COMASUPLProtocolManager::CancelRunSession(class CSuplSessionBase *) - ??1COMASUPLProtocolManager@@UAE@XZ @ 27 NONAME ; COMASUPLProtocolManager::~COMASUPLProtocolManager(void) - ?HandleSuplMessageL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@PAVHBufC8@@@Z @ 28 NONAME ; void COMASUPLProtocolManager::HandleSuplMessageL(class CSuplSessionBase *, class TRequestStatus &, class HBufC8 *) - ?GetSUPLMessageVersionL@COMASUPLProtocolManager@@UAEHAAHABVTDesC8@@@Z @ 29 NONAME ; int COMASUPLProtocolManager::GetSUPLMessageVersionL(int &, class TDesC8 const &) - ?ConstructL@COMASuplSettings@@AAEXXZ @ 30 NONAME ; void COMASuplSettings::ConstructL(void) - ?NewL@COMASUPLProtocolManager@@SAPAV1@XZ @ 31 NONAME ; class COMASUPLProtocolManager * COMASUPLProtocolManager::NewL(void) - ?HandlePacket@COMASUPLProtocolManager@@UAEXABVTDesC8@@I@Z @ 32 NONAME ; void COMASUPLProtocolManager::HandlePacket(class TDesC8 const &, unsigned int) - ?CancelSuplTriggerSession@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 33 NONAME ; void COMASUPLProtocolManager::CancelSuplTriggerSession(class CSuplSessionBase *) - ?InitializeL@COMASUPLProtocolManager@@UAEXPAVCSuplCommunicationManager@@AAVTRequestStatus@@@Z @ 34 NONAME ; void COMASUPLProtocolManager::InitializeL(class CSuplCommunicationManager *, class TRequestStatus &) + ?IAPId@COMASuplSettings@@QBEHXZ @ 17 NONAME ; int COMASuplSettings::IAPId(void) const + ?DeInitialize@COMASUPLProtocolManager@@UAEXAAVTRequestStatus@@@Z @ 18 NONAME ; void COMASUPLProtocolManager::DeInitialize(class TRequestStatus &) + ?RunSuplTriggerSessionL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@AAVTSuplTerminalPeriodicTrigger@@ABVTDesC16@@HHH@Z @ 19 NONAME ; void COMASUPLProtocolManager::RunSuplTriggerSessionL(class CSuplSessionBase *, class TRequestStatus &, class TSuplTerminalPeriodicTrigger &, class TDesC16 const &, int, int, int) + ?ConvertIAPNameToIdL@COMASuplSettings@@QAEHABVTDesC16@@AAK@Z @ 20 NONAME ; int COMASuplSettings::ConvertIAPNameToIdL(class TDesC16 const &, unsigned long &) + ?CreateNewSessionL@COMASUPLProtocolManager@@UAEPAVCSuplSessionBase@@W4TSuplReqType@CSUPLProtocolManagerBase@@HW4TSuplServiceType@RSuplTerminalSubSession@@@Z @ 21 NONAME ; class CSuplSessionBase * COMASUPLProtocolManager::CreateNewSessionL(enum CSUPLProtocolManagerBase::TSuplReqType, int, enum RSuplTerminalSubSession::TSuplServiceType) + ?SetIAPId@COMASuplSettings@@QAEXH@Z @ 22 NONAME ; void COMASuplSettings::SetIAPId(int) + ?ReadOMASuplSettingsL@COMASuplCommonConfig@@QAEXXZ @ 23 NONAME ; void COMASuplCommonConfig::ReadOMASuplSettingsL(void) + ?CancelRunSession@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 24 NONAME ; void COMASUPLProtocolManager::CancelRunSession(class CSuplSessionBase *) + ?SetSUPLUsage@COMASuplSettings@@QAEXAAW4TSuplSettingsUsage@CSuplSettings@@@Z @ 25 NONAME ; void COMASuplSettings::SetSUPLUsage(enum CSuplSettings::TSuplSettingsUsage &) + ??1COMASUPLProtocolManager@@UAE@XZ @ 26 NONAME ; COMASUPLProtocolManager::~COMASUPLProtocolManager(void) + ?HandleSuplMessageL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@PAVHBufC8@@@Z @ 27 NONAME ; void COMASUPLProtocolManager::HandleSuplMessageL(class CSuplSessionBase *, class TRequestStatus &, class HBufC8 *) + ?GetSUPLMessageVersionL@COMASUPLProtocolManager@@UAEHAAHABVTDesC8@@@Z @ 28 NONAME ; int COMASUPLProtocolManager::GetSUPLMessageVersionL(int &, class TDesC8 const &) + ?ConstructL@COMASuplSettings@@AAEXXZ @ 29 NONAME ; void COMASuplSettings::ConstructL(void) + ?NewL@COMASUPLProtocolManager@@SAPAV1@XZ @ 30 NONAME ; class COMASUPLProtocolManager * COMASUPLProtocolManager::NewL(void) + ?HandlePacket@COMASUPLProtocolManager@@UAEXABVTDesC8@@I@Z @ 31 NONAME ; void COMASUPLProtocolManager::HandlePacket(class TDesC8 const &, unsigned int) + ?CancelSuplTriggerSession@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 32 NONAME ; void COMASUPLProtocolManager::CancelSuplTriggerSession(class CSuplSessionBase *) + ?InitializeL@COMASUPLProtocolManager@@UAEXPAVCSuplCommunicationManager@@AAVTRequestStatus@@@Z @ 33 NONAME ; void COMASUPLProtocolManager::InitializeL(class CSuplCommunicationManager *, class TRequestStatus &) + ?SUPLUsage@COMASuplSettings@@QBE?AW4TSuplSettingsUsage@CSuplSettings@@XZ @ 34 NONAME ; enum CSuplSettings::TSuplSettingsUsage COMASuplSettings::SUPLUsage(void) const ?NewL@COMASuplCommonConfig@@SAPAV1@XZ @ 35 NONAME ; class COMASuplCommonConfig * COMASuplCommonConfig::NewL(void) ?SLPAddress@COMASuplSettings@@QBEABVTDesC8@@XZ @ 36 NONAME ; class TDesC8 const & COMASuplSettings::SLPAddress(void) const ?HandlePacketError@COMASUPLProtocolManager@@UAEXH@Z @ 37 NONAME ; void COMASUPLProtocolManager::HandlePacketError(int) diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandler/eabi/eposomasuplprotocolhandleru.def --- a/supl/locationomasuplprotocolhandler/protocolhandler/eabi/eposomasuplprotocolhandleru.def Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandler/eabi/eposomasuplprotocolhandleru.def Wed Oct 13 15:01:35 2010 +0300 @@ -3,40 +3,40 @@ _ZN16COMASuplSettings10ConstructLEv @ 2 NONAME _ZN16COMASuplSettings10IsHslpNullEv @ 3 NONAME _ZN16COMASuplSettings11SetUIActiveEi @ 4 NONAME - _ZN16COMASuplSettings14SetHSLPAddressERK7TDesC16 @ 5 NONAME - _ZN16COMASuplSettings19ConvertIAPNameToIdLERK7TDesC16Rm @ 6 NONAME - _ZN16COMASuplSettings22SetHSLPAddressFromIMSIERK7TDesC16 @ 7 NONAME - _ZN16COMASuplSettings4NewLEv @ 8 NONAME - _ZN16COMASuplSettings8SetIAPIdEi @ 9 NONAME - _ZN20COMASuplCommonConfig20ReadOMASuplSettingsLEv @ 10 NONAME - _ZN20COMASuplCommonConfig4NewLEv @ 11 NONAME - _ZN23COMASUPLProtocolManager11InitializeLEP25CSuplCommunicationManagerR14TRequestStatus @ 12 NONAME - _ZN23COMASUPLProtocolManager11RunSessionLEP16CSuplSessionBaseR14TRequestStatusRK7TDesC16iiiR16TSuplTerminalQopi @ 13 NONAME - _ZN23COMASUPLProtocolManager11RunSessionLEP16CSuplSessionBaseR14TRequestStatusRK7TDesC16iiii @ 14 NONAME - _ZN23COMASUPLProtocolManager12HandlePacketERK6TDesC8j @ 15 NONAME - _ZN23COMASUPLProtocolManager14DestroySessionEP16CSuplSessionBase @ 16 NONAME - _ZN23COMASUPLProtocolManager15SetCommonConfigERP20COMASuplCommonConfig @ 17 NONAME - _ZN23COMASUPLProtocolManager16CancelInitializeEv @ 18 NONAME - _ZN23COMASUPLProtocolManager16CancelRunSessionEP16CSuplSessionBase @ 19 NONAME - _ZN23COMASUPLProtocolManager17CreateNewSessionLEN24CSUPLProtocolManagerBase12TSuplReqTypeEiN23RSuplTerminalSubSession16TSuplServiceTypeE @ 20 NONAME - _ZN23COMASUPLProtocolManager17HandlePacketErrorEi @ 21 NONAME - _ZN23COMASUPLProtocolManager18HandleSuplMessageLEP16CSuplSessionBaseR14TRequestStatusP6HBufC8 @ 22 NONAME - _ZN23COMASUPLProtocolManager19NotifyTriggerFiredLEP16CSuplSessionBaseR14TRequestStatusR20TSuplTriggerFireInfo @ 23 NONAME - _ZN23COMASUPLProtocolManager22GetSUPLMessageVersionLERiRK6TDesC8 @ 24 NONAME - _ZN23COMASUPLProtocolManager22RunSuplTriggerSessionLEP16CSuplSessionBaseR14TRequestStatusR28TSuplTerminalPeriodicTriggerRK7TDesC16iii @ 25 NONAME - _ZN23COMASUPLProtocolManager24CancelSuplTriggerSessionEP16CSuplSessionBase @ 26 NONAME - _ZN23COMASUPLProtocolManager30MakeLocationConversionRequestLEP16CSuplSessionBaseR12TGeoCellInfoR14TRequestStatus @ 27 NONAME - _ZN23COMASUPLProtocolManager31CancelLocationConversionRequestEP16CSuplSessionBase @ 28 NONAME - _ZN23COMASUPLProtocolManager4NewLEv @ 29 NONAME - _ZN23COMASUPLProtocolManagerC1Ev @ 30 NONAME - _ZN23COMASUPLProtocolManagerC2Ev @ 31 NONAME - _ZN23COMASUPLProtocolManagerD0Ev @ 32 NONAME - _ZN23COMASUPLProtocolManagerD1Ev @ 33 NONAME - _ZN23COMASUPLProtocolManagerD2Ev @ 34 NONAME - _ZNK16COMASuplSettings10IsUIActiveEv @ 35 NONAME - _ZNK16COMASuplSettings10SLPAddressEv @ 36 NONAME - _ZNK16COMASuplSettings18SLPAddressfromImsiEv @ 37 NONAME - _ZNK16COMASuplSettings5IAPIdEv @ 38 NONAME + _ZN16COMASuplSettings12SetSUPLUsageERN13CSuplSettings18TSuplSettingsUsageE @ 5 NONAME + _ZN16COMASuplSettings14SetHSLPAddressERK7TDesC16 @ 6 NONAME + _ZN16COMASuplSettings19ConvertIAPNameToIdLERK7TDesC16Rm @ 7 NONAME + _ZN16COMASuplSettings22SetHSLPAddressFromIMSIERK7TDesC16 @ 8 NONAME + _ZN16COMASuplSettings4NewLEv @ 9 NONAME + _ZN16COMASuplSettings8SetIAPIdEi @ 10 NONAME + _ZN20COMASuplCommonConfig20ReadOMASuplSettingsLEv @ 11 NONAME + _ZN20COMASuplCommonConfig4NewLEv @ 12 NONAME + _ZN23COMASUPLProtocolManager11InitializeLEP25CSuplCommunicationManagerR14TRequestStatus @ 13 NONAME + _ZN23COMASUPLProtocolManager11RunSessionLEP16CSuplSessionBaseR14TRequestStatusRK7TDesC16iiiR16TSuplTerminalQopi @ 14 NONAME + _ZN23COMASUPLProtocolManager11RunSessionLEP16CSuplSessionBaseR14TRequestStatusRK7TDesC16iiii @ 15 NONAME + _ZN23COMASUPLProtocolManager12HandlePacketERK6TDesC8j @ 16 NONAME + _ZN23COMASUPLProtocolManager14DestroySessionEP16CSuplSessionBase @ 17 NONAME + _ZN23COMASUPLProtocolManager15SetCommonConfigERP20COMASuplCommonConfig @ 18 NONAME + _ZN23COMASUPLProtocolManager16CancelInitializeEv @ 19 NONAME + _ZN23COMASUPLProtocolManager16CancelRunSessionEP16CSuplSessionBase @ 20 NONAME + _ZN23COMASUPLProtocolManager17CreateNewSessionLEN24CSUPLProtocolManagerBase12TSuplReqTypeEiN23RSuplTerminalSubSession16TSuplServiceTypeE @ 21 NONAME + _ZN23COMASUPLProtocolManager17HandlePacketErrorEi @ 22 NONAME + _ZN23COMASUPLProtocolManager18HandleSuplMessageLEP16CSuplSessionBaseR14TRequestStatusP6HBufC8 @ 23 NONAME + _ZN23COMASUPLProtocolManager19NotifyTriggerFiredLEP16CSuplSessionBaseR14TRequestStatusR20TSuplTriggerFireInfo @ 24 NONAME + _ZN23COMASUPLProtocolManager22GetSUPLMessageVersionLERiRK6TDesC8 @ 25 NONAME + _ZN23COMASUPLProtocolManager22RunSuplTriggerSessionLEP16CSuplSessionBaseR14TRequestStatusR28TSuplTerminalPeriodicTriggerRK7TDesC16iii @ 26 NONAME + _ZN23COMASUPLProtocolManager24CancelSuplTriggerSessionEP16CSuplSessionBase @ 27 NONAME + _ZN23COMASUPLProtocolManager4NewLEv @ 28 NONAME + _ZN23COMASUPLProtocolManagerC1Ev @ 29 NONAME + _ZN23COMASUPLProtocolManagerC2Ev @ 30 NONAME + _ZN23COMASUPLProtocolManagerD0Ev @ 31 NONAME + _ZN23COMASUPLProtocolManagerD1Ev @ 32 NONAME + _ZN23COMASUPLProtocolManagerD2Ev @ 33 NONAME + _ZNK16COMASuplSettings10IsUIActiveEv @ 34 NONAME + _ZNK16COMASuplSettings10SLPAddressEv @ 35 NONAME + _ZNK16COMASuplSettings18SLPAddressfromImsiEv @ 36 NONAME + _ZNK16COMASuplSettings5IAPIdEv @ 37 NONAME + _ZNK16COMASuplSettings9SUPLUsageEv @ 38 NONAME _ZTI13COMASuplTrace @ 39 NONAME _ZTI16COMASuplSettings @ 40 NONAME _ZTI20COMASuplCommonConfig @ 41 NONAME diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandler/group/omasuplprotocolhandler.mmp --- a/supl/locationomasuplprotocolhandler/protocolhandler/group/omasuplprotocolhandler.mmp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandler/group/omasuplprotocolhandler.mmp Wed Oct 13 15:01:35 2010 +0300 @@ -72,7 +72,7 @@ LIBRARY insock.lib LIBRARY lbs.lib LIBRARY eposnwprv.lib - +LIBRARY locsettingsuiclient.lib LIBRARY hash.lib LIBRARY bafl.lib //logging LIBRARY flogger.lib diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandler/inc/epos_comasuplprotocolmanager.h --- a/supl/locationomasuplprotocolhandler/protocolhandler/inc/epos_comasuplprotocolmanager.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandler/inc/epos_comasuplprotocolmanager.h Wed Oct 13 15:01:35 2010 +0300 @@ -254,32 +254,6 @@ */ IMPORT_C virtual TInt GetSUPLMessageVersionL(TInt& aMajorVersion, const TDesC8& aReceivedMessage); - /** - * Function: CancelLocationConversionRequest - * @since S60 v5.2 - * @Description: Cancels the location conversion request - * @Param: aSuplSession, session object - * @Returns: None - * - */ - - IMPORT_C void CancelLocationConversionRequest(CSuplSessionBase* aSuplSession); - - /** - * Function: MakeLocationConversionRequestL - * @since S60 v5.2 - * @Description: issues the location conversion request - * @Param: aSuplSession, session object - * @Param: aCellInfo, cell information - * @Param: aStatus, request status - * @Returns: None - * - */ - - IMPORT_C void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn, - TGeoCellInfo& aCellInfo, - TRequestStatus& aStatus ); - protected: // Construction /** * COMASUPLProtocolManager,Perform the first phase of two phase construction diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandler/inc/epos_comasuplsettings.h --- a/supl/locationomasuplprotocolhandler/protocolhandler/inc/epos_comasuplsettings.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandler/inc/epos_comasuplsettings.h Wed Oct 13 15:01:35 2010 +0300 @@ -90,7 +90,13 @@ */ IMPORT_C void SetIAPId(TInt aIAPId); - + /** + * SetSUPLUsage Method. + * @since S60 v3.2 + * @param aSUPLUsage + * @return None + */ + IMPORT_C void SetSUPLUsage(CSuplSettings::TSuplSettingsUsage& aSUPLUsage ); /** * SetUIActive Method. @@ -125,7 +131,13 @@ */ IMPORT_C TInt IAPId() const; - + /** + * SUPL Usage Method. + * @since S60 v3.2 + * @param None + * @return SUPL Usage + */ + IMPORT_C CSuplSettings::TSuplSettingsUsage SUPLUsage() const; /** * IAPId Method. @@ -153,7 +165,8 @@ // IAP Id TInt iIAPId; - + // SUPL Usage + CSuplSettings::TSuplSettingsUsage iSUPLUsage; // Flag indicating the activation of settings UI TBool iSettingsUIActive; }; diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplprotocolmanager.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplprotocolmanager.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplprotocolmanager.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -577,7 +577,7 @@ else { iTrace->Trace(_L("COMASUPLProtocolManager::DeInitialize ph1 not present"), KTraceFileName, __LINE__); - TRAP_IGNORE(DeInitilizationCompletedL( KErrNotFound )); //ph1 is not present. + DeInitilizationCompletedL( KErrNotFound ); //ph1 is not present. } } @@ -804,39 +804,6 @@ return GetSuplVersion(aMajorVersion,aReceivedMessage); } -// ----------------------------------------------------------------------------- -// COMASUPLProtocolManager::MakeLocationConversionRequestL -// -// -// ----------------------------------------------------------------------------- -// - -EXPORT_C void COMASUPLProtocolManager::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,TGeoCellInfo& aCellInfo,TRequestStatus& aStatus ) - { - iTrace->Trace(_L("COMASUPLProtocolManager::MakeLocationConversionRequestL"), KTraceFileName, __LINE__); - if(iOMASuplProtocolHandler1) - { - iTrace->Trace(_L("COMASUPLProtocolManager::MakeLocationConversionRequestL if condition true"), KTraceFileName, __LINE__); - COMASUPLProtocolManager* ph1= (COMASUPLProtocolManager*) (iOMASuplProtocolHandler1); - ph1->MakeLocationConversionRequestL(aSuplSessn,aCellInfo,aStatus); - }; - } - -// ----------------------------------------------------------------------------- -// COMASUPLProtocolManager::CancelLocationConversionRequest -// -// -// ----------------------------------------------------------------------------- -// - -EXPORT_C void COMASUPLProtocolManager::CancelLocationConversionRequest(CSuplSessionBase* aSuplSession) - { - if(iOMASuplProtocolHandler1) - { - COMASUPLProtocolManager* ph1= (COMASUPLProtocolManager*) (iOMASuplProtocolHandler1); - ph1->CancelLocationConversionRequest(aSuplSession); - }; - } // ----------------------------------------------------------------------------- // COMASUPLProtocolManager::DeInitilizationCompletedL diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplsettings.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplsettings.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplsettings.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -127,6 +127,27 @@ return iIAPId; } +// ----------------------------------------------------------------------------- +// COMASuplSettings::SetSUPLUsage +// Sets the SUPL Usage +// +// ----------------------------------------------------------------------------- +// +EXPORT_C void COMASuplSettings::SetSUPLUsage(CSuplSettings::TSuplSettingsUsage& aSUPLUsage ) + { + iSUPLUsage = aSUPLUsage; + } + +// ----------------------------------------------------------------------------- +// COMASuplSettings::SUPLUsage() +// Gets the SUPL Usage +// +// ----------------------------------------------------------------------------- +// +EXPORT_C CSuplSettings::TSuplSettingsUsage COMASuplSettings::SUPLUsage() const + { + return iSUPLUsage; + } // ----------------------------------------------------------------------------- diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/eabi/eposomasuplprotocolhandler1u.def --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/eabi/eposomasuplprotocolhandler1u.def Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/eabi/eposomasuplprotocolhandler1u.def Wed Oct 13 15:01:35 2010 +0300 @@ -36,27 +36,29 @@ _ZTI23COMASuplFallBackHandler @ 35 NONAME _ZTI24COMASUPLProtocolManager1 @ 36 NONAME _ZTI24COMASuplEcomEventWatcher @ 37 NONAME - _ZTI29COMASuplCompleteSelfRequestor @ 38 NONAME - _ZTV12COMASuplETel @ 39 NONAME - _ZTV13COMASuplState @ 40 NONAME - _ZTV13COMASuplTrace @ 41 NONAME - _ZTV15COMASuplSession @ 42 NONAME - _ZTV16COMASuplEndState @ 43 NONAME - _ZTV16COMASuplPosState @ 44 NONAME - _ZTV17COMASuplInitState @ 45 NONAME - _ZTV18COMASuplStartState @ 46 NONAME - _ZTV19COMASuplDialogTimer @ 47 NONAME - _ZTV19COMASuplIapNotifier @ 48 NONAME - _ZTV20COMASuplETelNotifier @ 49 NONAME - _ZTV20COMASuplPOSRequestor @ 50 NONAME - _ZTV20COMASuplPosInitState @ 51 NONAME - _ZTV20COMASuplTimeoutTimer @ 52 NONAME - _ZTV21COMASuplConnRequestor @ 53 NONAME - _ZTV21COMASuplResponseState @ 54 NONAME - _ZTV23COMASuplFallBackHandler @ 55 NONAME - _ZTV24COMASUPLProtocolManager1 @ 56 NONAME - _ZTV24COMASuplEcomEventWatcher @ 57 NONAME - _ZTV29COMASuplCompleteSelfRequestor @ 58 NONAME - _ZThn4_N24COMASUPLProtocolManager112HandlePacketERK6TDesC8j @ 59 NONAME - _ZThn4_N24COMASUPLProtocolManager117HandlePacketErrorEi @ 60 NONAME + _ZTI24COMASuplSettingsLauncher @ 38 NONAME + _ZTI29COMASuplCompleteSelfRequestor @ 39 NONAME + _ZTV12COMASuplETel @ 40 NONAME + _ZTV13COMASuplState @ 41 NONAME + _ZTV13COMASuplTrace @ 42 NONAME + _ZTV15COMASuplSession @ 43 NONAME + _ZTV16COMASuplEndState @ 44 NONAME + _ZTV16COMASuplPosState @ 45 NONAME + _ZTV17COMASuplInitState @ 46 NONAME + _ZTV18COMASuplStartState @ 47 NONAME + _ZTV19COMASuplDialogTimer @ 48 NONAME + _ZTV19COMASuplIapNotifier @ 49 NONAME + _ZTV20COMASuplETelNotifier @ 50 NONAME + _ZTV20COMASuplPOSRequestor @ 51 NONAME + _ZTV20COMASuplPosInitState @ 52 NONAME + _ZTV20COMASuplTimeoutTimer @ 53 NONAME + _ZTV21COMASuplConnRequestor @ 54 NONAME + _ZTV21COMASuplResponseState @ 55 NONAME + _ZTV23COMASuplFallBackHandler @ 56 NONAME + _ZTV24COMASUPLProtocolManager1 @ 57 NONAME + _ZTV24COMASuplEcomEventWatcher @ 58 NONAME + _ZTV24COMASuplSettingsLauncher @ 59 NONAME + _ZTV29COMASuplCompleteSelfRequestor @ 60 NONAME + _ZThn4_N24COMASUPLProtocolManager112HandlePacketERK6TDesC8j @ 61 NONAME + _ZThn4_N24COMASUPLProtocolManager117HandlePacketErrorEi @ 62 NONAME diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/group/omasuplprotocolhandler1.mmp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/group/omasuplprotocolhandler1.mmp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/group/omasuplprotocolhandler1.mmp Wed Oct 13 15:01:35 2010 +0300 @@ -51,7 +51,7 @@ SOURCE epos_comasuplinitstate.cpp SOURCE epos_comasuplposrequestor.cpp SOURCE epos_comasuplecomeventwatcher.cpp - +SOURCE epos_comasuplsettingslauncher.cpp SOURCE epos_comasupltrace.cpp SOURCE epos_comasupldialogtimer.cpp SOURCE epos_comasuplfallbackhandler.cpp @@ -83,7 +83,7 @@ LIBRARY insock.lib LIBRARY lbs.lib LIBRARY eposnwprv.lib - +LIBRARY locsettingsuiclient.lib LIBRARY hash.lib LIBRARY bafl.lib //logging LIBRARY flogger.lib diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplconnrequestor.h --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplconnrequestor.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplconnrequestor.h Wed Oct 13 15:01:35 2010 +0300 @@ -33,7 +33,6 @@ class COMASuplFallBackHandler; class COMASUPLProtocolManager1; class COMASuplDialogTimer; -class CRepository; /** * Class for doing asynchronous service i.e. used for Sending Packet to Socket. * @@ -41,7 +40,9 @@ * @since S60 v3.1 */ -class COMASuplConnRequestor : public CActive +class COMASuplConnRequestor : public CActive, + public MOMASuplUICompletionObserver, + public MOMASuplDialogTimeOutNotifier { enum TConnState @@ -93,18 +94,6 @@ */ void CreateConnectionL(TInt aDialogTimeOutDelay); - - /** - * CreateConnection Method Overload. Creates the Socket required to - * communicate with the SLP. Called in case of NI case. - * @since - * @param aPrompt used to show connection dialog using OCC Api's. - * @param aWlanOnly used to connect server using wlan only. - * @return None - * Added CreateConnectionL with aPrompt and aWLANOnly for OCC. - */ - void CreateConnectionL(TBool aPrompt,TBool aWlanOnly); - /** * SendPacket Method. * @since Series 60 3.1 @@ -183,7 +172,9 @@ void GetUsedServerAddress(TDes& aHSLPAddressUsed); - + void SettingsUICompletedL(TInt aError); + void SettingsUsageUICompletedL(TInt /*aError*/) {} + void SettingsTimeOutUICompletedL(TInt /*aError*/) {} TBool ConvertIAPNameToIdL(const TDesC& aIAPName, TUint32& aIAPId); void UpdateNetInfo(const TTime& aLastTimeUsed,TInt& aMcc,TInt& aMnc, TInt& aCid,TInt& aLac,TInt& aType,TInt& aErrorCode); @@ -217,7 +208,13 @@ void SaveAccessPoint(const TDesC& aIapName); - + /** + * Dialog Timeout Notifier Method. + * @since Series 60 9.1 TB + * @param None + * @return None + */ + virtual void DialogTimerExpiredL(); protected : // Functions from CActive /** * From CActive @@ -274,28 +271,29 @@ //For trying for once with newly generated HSLP. TBool iTLSAuthenticationFailed; - //SUPLSettings,Ownership is with the object + //SUPLSettings CSuplSettingsInternal *iSuplSettings; - CRepository* iRepository;//Ownership is with the object - //Trace Utility - COMASuplTrace* iTrace; //Ownership is with the object + COMASuplTrace* iTrace; TBool iIsHSLPGenerated; TBool iHslpAddrFromImsiUsed; TInt iLastConnectionError; - COMASuplFallBackHandler* iFallBackHandler;//Ownership is with the object + COMASuplFallBackHandler* iFallBackHandler; TBool iIsSettingInitilized; TInt64 iCurrentSLPId; - TBool iPrompt; + + COMASuplDialogTimer* iDialogTimer; - TBool iWlanOnly; + TBool iIapDialogShown; - TBool iIsStaleLocIdPresent; + TBool iIapDlgTimerExpired; + + TBool iIsTimeoutDialogTimerStarted; }; diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplfallbackhandler.h --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplfallbackhandler.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplfallbackhandler.h Wed Oct 13 15:01:35 2010 +0300 @@ -88,6 +88,8 @@ void UpdateSLPListForHomeUsage(TBool aHomeNetwork); + void UpdateSLPListWithAccessPoint(const TDesC& aIapName); + private : diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplprotocolmanager1.h --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplprotocolmanager1.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplprotocolmanager1.h Wed Oct 13 15:01:35 2010 +0300 @@ -81,6 +81,7 @@ public MSuplEcomEventObserver, public MSuplSettingsObserver, public MOMASuplTimeOutNotifier, + public MOMASuplUISettingsObserver, public MOMASuplETelNotifierObserver { @@ -271,12 +272,40 @@ public: + // For setting UI observer + TInt LaunchSettingsUI(MOMASuplUICompletionObserver* aObserver,const TDesC& aForHslp); + TInt LaunchSuplUsageSettingsUI(MOMASuplUICompletionObserver* aObserver, TBool aRoaming); + TInt LaunchSuplDialogTimeoutUI(MOMASuplUICompletionObserver* aObserver ); + void UpdateAllSubSessnsInSameSession(TInt aIpcSessionId); - void UpdateAllSubSessnsInSameSession(TInt aIpcSessionId); + void CancelUiLaunch(); void SettingsChanged(); - + TInt GetLastUsedAccessPoint(TDes& aLastlyUsedAccessPoint,TUint32& iIAPId); + /** + * This callback method is used to notify the client about + * the completion of UI launch + * @param aError - Error during Launch + * @return None + */ + void SettingsUICompletedL(TInt aError); + + /** + * This callback method is used to notify the client about + * the completion of UI launch + * @param aError - Error during Launch + * @return None + */ + void SettingsUsageUICompletedL(TInt aError); + + /** + * This callback method is used to notify the client about + * the completion of UI completion + * @param aError - Error during Launch + * @return None + */ + void SettingsTimeOutUICompletedL(TInt aError); public: //From base class MSuplSettingsObserver @@ -429,7 +458,13 @@ void ProcessInvalidSessionL(COMASuplAsnMessageBase* aDecodedMsg); - + /** + * ReadSuplUsage, Reads OMA Supl Usage. + * @since S60 v3.1u + * @param None. + * @return None. + */ + void ReadSuplUsage(); /** @@ -477,28 +512,6 @@ public: // COMASUPLProtocolManager void SetCommonConfig(COMASuplCommonConfig*& aCommmonConfig); -public: - /* - * Method used to make conversion request for retrieving position of a location id. - * - * @since S60 v5.2 - * @param aSuplSessn session object on which processing will start,ownership is not transferred - * @param aCellInfo contains cell id information and cell id type - * @param aStatus On return, the status of the request - * - */ - void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn, - TGeoCellInfo& aCellInfo, - TRequestStatus& aStatus ); - /* - * Method used to make cancel a conversion request for retrieving position of a location id,,ownership is not transferred. - * - * @since S60 v5.2 - * @param aSuplSessn session object which is to be cancelled - * - */ - void CancelLocationConversionRequest(CSuplSessionBase* aSuplSession); - private: // Data Members //Holds all session objects created by CreateNewSession diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsession.h --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsession.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsession.h Wed Oct 13 15:01:35 2010 +0300 @@ -95,13 +95,15 @@ class COMASuplSession : public CSuplSessionBase, public MOMASuplConnObserver, + public MOMASuplUICompletionObserver, public MCompleteSelfRequest, public MOMASuplMsgStateObserver, public MOMASuplObserver, public MOMASuplPrivacyObserver, public MOMASuplTimeOutNotifier, public MOMASuplEtelCompletionObserver, - public MOMASuplIapChangeNotifierObserver + public MOMASuplIapChangeNotifierObserver, + public MOMASuplDialogTimeOutNotifier { public: // Constructors and destructor @@ -207,6 +209,27 @@ */ void GetPositionComplete(TInt aError); + /** + * This callback method is used to notify the client about + * the completion of UI launch + * @param aError - Error during Launch + * @return None + */ + void SettingsUICompletedL(TInt aError); + + /** + * This callback method is used to notify the client about + * the completion of UI + * @return None + */ + void SettingsUsageUICompletedL(TInt aError); + + /** + * This callback method is used to notify the client about + * the completion of UI + * @return None + */ + void SettingsTimeOutUICompletedL(TInt aError); public: /** @@ -232,14 +255,10 @@ * @param aAllowedCapabilities, Capabilities of SET * @param aSessionIdSeed, seed value of session * @param aRequestID, Request Identification number. - * @param aIsStaleCellId, indicates if this session is for a stale cell id conversion - * @param aLocationId , contains cell id parameters for which position is to be retrieved,ownership is transferred to this object - * @param aPrompt indicates if the user is to be prompted when making location requests - * @param aWlanOnly ,request to connect server using wlan connection only using OCC Api's * @return None */ virtual void RunSuplSessionL(TRequestStatus& aStatus, TBool aFirstReq, const TDesC& aHslpAddress, TBool aFallBack, TInt aAllowedCapabilities, - TInt aSessionIdSeed, TInt aRequestID = 0,TBool aIsStaleCellId = EFalse,COMASuplLocationId* aLocationId = NULL,TBool aPrompt = EFalse,TBool aWlanOnly = EFalse); + TInt aSessionIdSeed, TInt aRequestID = 0); /** * RunSessionL, Starts the SUPL Sesssion for Terminal Initiated Location Request @@ -906,7 +925,13 @@ */ virtual void TimerExpiredL(); - + /** + * Dialog Timeout Notifier Method. + * @since Series 60 9.1 TB + * @param None + * @return None + */ + virtual void DialogTimerExpiredL(); public: // Usage dialog void SetSuplUsageFlag(); void ReSetSuplUsageFlag(); @@ -914,7 +939,6 @@ void StartUsageDialogLaunchL(); TBool IsEtelNotifySet(); TBool IsEtelRoamingSet(); - TBool HasMeLaunchedUsageDialog(); TUint GetPortNumUsed(); private: @@ -1061,7 +1085,8 @@ //Timeout Timer COMASuplTimeoutTimer* iTimer; - + + COMASuplDialogTimer* iDialogTimer; //Roaming indicator TBool iRoaming; @@ -1110,20 +1135,9 @@ COMASuplAsnHandlerBase* iOMASuplAsnHandlerBaseImpl; - // Network privacy handle.Ownership is with this object CPosNetworkPrivacy* iNetworkPrivacy; - //Stale cell id which for which position is to be retrieved.Ownership is with this object - COMASuplLocationId* iStaleLocationId; - //indicates if this session is for a stale cell id conversion - TBool iIsStaleLocIdPresent; - //indicates if the user needs to be prompted when making a location request - TBool iStaleLocIdPrompt; - TBool iIhaveLaunchedUsagedialog; TUint iPortNum; - - //To indicate WLAN connection for OCC - TBool iWlanOnly; }; #endif // C_COMASUPLSESSION_H diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsettingslauncher.h --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsettingslauncher.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsettingslauncher.h Wed Oct 13 15:01:35 2010 +0300 @@ -151,12 +151,7 @@ TBuf8<256> buffer1; TBuf8<256> buffer2; TBool iRoaming; - - /** - * IAP Selector Handle - */ - RGenConAgentDialogServer iIapSelector; - + /** * Selected IAP ID */ diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstartstate.h --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstartstate.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstartstate.h Wed Oct 13 15:01:35 2010 +0300 @@ -108,17 +108,6 @@ * @return None */ void SetQop(TSuplTerminalQop& aQop); - - /* - * SetStaleCellIdToUse Method is used to set the Stale Cell id to use in case of - * retrieving position for an already retrieved cell id. - * For example : in case of Geo Tagged Images - * @since S60 v5.2 - * @param aLocationId This is the locatiod id parameter containing the stale cell id - * @return None - */ - - void SetStaleCellIdToUse(COMASuplLocationId* aLocationId); public: //MOMASuplETelObserver @@ -295,9 +284,6 @@ TOMASuplECellInfo iMmCellInfo; COMASuplAsnHandlerBase* iOMASuplAsnHandlerBase; - - //Indicates whether we need to create start message with Stale Cell Id - TBool iIsStaleCellId; }; diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstate.h --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstate.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstate.h Wed Oct 13 15:01:35 2010 +0300 @@ -25,6 +25,8 @@ #define PRINT_MESSAGE #endif +//#undef PRINT_MESSAGE + /** MOMASuplMsgStateObserver Notifies about complaetion of operation with or without error. * @lib eposomasuplprotocolhandler.lib diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplconnrequestor.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplconnrequestor.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplconnrequestor.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -16,23 +16,21 @@ */ -#include #include "epos_comasuplprotocolmanager1.h" #include "epos_csuplcommunicationmanager.h" #include "epos_csuplsettingsinternal.h" - +#include "epos_csuplsettingparams.h" #include "epos_omasuplconstants.h" #include "epos_comasuplconnrequestor.h" #include "epos_momasuplconnobserver.h" #include "epos_comasupltrace.h" #include "epos_comasuplfallbackhandler.h" -#include "epos_csuplsettingsinternalcrkeys.h" - #include "epos_comasupldialogtimer.h" _LIT(KTraceFileName,"SUPL_OMA_SESSION::epos_comasuplconnrequestor.cpp"); +const TInt KStringLength = 100; // ============================ MEMBER FUNCTIONS =============================== @@ -42,18 +40,17 @@ // C++ constructor can NOT contain any code, that might leave. // ----------------------------------------------------------------------------- // -COMASuplConnRequestor::COMASuplConnRequestor(CSuplCommunicationManager& aCommMgr, - COMASUPLProtocolManager1& aProtoMgr, - TUint aPort, - MOMASuplConnObserver& aObserver): - CActive( EPriorityStandard ), - iCommMgr(aCommMgr), - iProtocolManager(aProtoMgr), - iPort(aPort), - iObserver( aObserver),iPrompt(EFalse),iWlanOnly(EFalse),iIsStaleLocIdPresent(EFalse) - { +COMASuplConnRequestor::COMASuplConnRequestor( + CSuplCommunicationManager& aCommMgr, + COMASUPLProtocolManager1& aProtoMgr, TUint aPort, + MOMASuplConnObserver& aObserver) : + CActive(EPriorityStandard), iCommMgr(aCommMgr), iProtocolManager( + aProtoMgr),iConnection(NULL), iPort(aPort), iObserver(aObserver), iIapDialogShown( + EFalse), iIapDlgTimerExpired(EFalse), + iIsTimeoutDialogTimerStarted(EFalse) + { - } + } // ----------------------------------------------------------------------------- // COMASuplConnRequestor::ConstructL @@ -72,11 +69,12 @@ iHslpAddrFromImsiUsed = EFalse; iFallBackHandler = COMASuplFallBackHandler::NewL(*iSuplSettings); - iRepository = CRepository::NewL(KCRUidSuplSettings); + iLastConnectionError = KErrNone; iCurrentSLPId = KErrNotFound; + iDialogTimer = COMASuplDialogTimer::NewL(*this); } // ----------------------------------------------------------------------------- @@ -106,12 +104,15 @@ COMASuplConnRequestor::~COMASuplConnRequestor() { Cancel(); - + if(iDialogTimer) + { + iDialogTimer->Cancel(); + delete iDialogTimer; + iDialogTimer = NULL; + } delete iSuplSettings; delete iTrace; delete iFallBackHandler; - delete iRepository; - iRepository = NULL; } // ----------------------------------------------------------------------------- @@ -135,73 +136,57 @@ if(errorCode == KErrNone) { - TBool ret = ConvertIAPNameToIdL(iapName,iIAPId); - if(!ret) - { - buffer.Copy(_L("No access point configured for ")); - buffer.Append(iHostAddress); - iTrace->Trace(buffer,KTraceFileName, __LINE__); - buffer.Copy(_L("Calling CreateConnection with no IAP")); - iTrace->Trace(buffer,KTraceFileName, __LINE__); - iConnection = iCommMgr.CreateConnectionL(iHostAddress,iTls,iPskTls,iPort,-1); - OpenConnection(); - - } - else - { - buffer.Copy(_L("Connecting to ")); - buffer.Append(iHostAddress); - iTrace->Trace(buffer,KTraceFileName, __LINE__); - iConnection = iCommMgr.CreateConnectionL(iHostAddress,iTls,iPskTls,iPort,iIAPId); - OpenConnection(); - } - } - else - { - iHostAddress.Zero(); - iObserver.OperationCompleteL(errorCode); - } + TBool ret = ConvertIAPNameToIdL(iapName,iIAPId); + if(!ret) + { + buffer.Copy(_L("No access point configured for ")); + buffer.Append(iHostAddress); + iTrace->Trace(buffer,KTraceFileName, __LINE__); + if( isIapDialogShown ) + { + TInt err = iProtocolManager.LaunchSettingsUI(this,iHostAddress); + if(err != KErrNone) + { + buffer.Copy(_L("Error in launching UI : ")); + buffer.AppendNum(err); + iTrace->Trace(buffer,KTraceFileName, __LINE__); + iHostAddress.Zero(); + iObserver.OperationCompleteL(err); + } + else + iIapDialogShown = ETrue; + } + + + } + else + { + iIsTimeoutDialogTimerStarted = EFalse; + iDialogTimer->Cancel(); + buffer.Copy(_L("Connecting to ")); + buffer.Append(iHostAddress); + iTrace->Trace(buffer,KTraceFileName, __LINE__); + iConnection = iCommMgr.CreateConnectionL(iHostAddress,iTls,iPskTls,iPort,iIAPId); + OpenConnection(); + } + } + else + { + iHostAddress.Zero(); + iObserver.OperationCompleteL(errorCode); + } } } - - - // ----------------------------------------------------------------------------- -// COMASuplConnRequestor::CreateConnection for OCC -// ----------------------------------------------------------------------------- -// -void COMASuplConnRequestor::CreateConnectionL(TBool aPrompt,TBool aWlanOnly) - { - TBuf<30> GeoTagServerName; - TBuf<128> buffer; - iState = EConnecting; - - iPrompt = aPrompt; - iWlanOnly = aWlanOnly; - iIsStaleLocIdPresent = ETrue; - - TInt err; - err = iRepository->Get(KSuplGeoInfoConvServerName, GeoTagServerName); - User::LeaveIfError(err); - buffer.Copy(_L("Connecting to")); - buffer.Append(GeoTagServerName); - iTrace->Trace(buffer,KTraceFileName, __LINE__); - iTls = ETrue; - iPskTls = EFalse; - iIAPId = 0; - - - iConnection = iCommMgr.CreateConnectionL(GeoTagServerName,iTls,iPskTls,iPort,iIAPId); - - OpenConnection(); - - } // ----------------------------------------------------------------------------- // COMASuplConnRequestor::OpenConnection // ----------------------------------------------------------------------------- - -void COMASuplConnRequestor::CreateConnectionL(TInt /*aDialogTimeOutDelay*/) +// +void COMASuplConnRequestor::CreateConnectionL(TInt aDialogTimeOutDelay) { + iIsTimeoutDialogTimerStarted = ETrue; + + iDialogTimer->StartTimer(aDialogTimeOutDelay); CreateConnectionL(); } // ----------------------------------------------------------------------------- @@ -245,17 +230,8 @@ if(iConnection) { iState = EConnecting; - if(iIsStaleLocIdPresent) - { - iTrace->Trace(_L("OpenConnection OCC"),KTraceFileName, __LINE__); - iConnection->Connect(iStatus,iPrompt,iWlanOnly); - } - else - { - iConnection->Connect(iStatus); - } - SetActive(); - + iConnection->Connect(iStatus); + SetActive(); } } else @@ -324,17 +300,7 @@ { iHostAddress.Zero(); CloseConnection(); - if(iIsStaleLocIdPresent) - { - iTrace->Trace(_L("Request completed with error..."), KTraceFileName, __LINE__); - iObserver.OperationCompleteL(iLastConnectionError); - } - else - { - iTrace->Trace(_L("Setting API Initilizing Completed..."), KTraceFileName, __LINE__); - CreateConnectionL(); - } - + CreateConnectionL(); } else { @@ -429,7 +395,6 @@ void COMASuplConnRequestor::InitilizeSetting() { iTrace->Trace(_L("Intilizing Setting API..."), KTraceFileName, __LINE__); - iSuplSettings->Initialize(iStatus); SetActive(); } @@ -453,13 +418,15 @@ } TUint COMASuplConnRequestor::GetPortNumber() - { - if(iConnection) - return iConnection->GetPortNumberUsed(); - else - return 0; - } - + { + if (iConnection) + { + return iConnection->GetPortNumberUsed(); + } + else + return 0; + } + // ----------------------------------------------------------------------------- // COMASuplConnRequestor::SetDefaultParametersL // ----------------------------------------------------------------------------- @@ -507,7 +474,106 @@ return result; } +// ----------------------------------------------------------------------------- +// COMASuplConnRequestor::SettingsUICompleted +// +// ----------------------------------------------------------------------------- +void COMASuplConnRequestor::SettingsUICompletedL(TInt aError) + { + TBuf<128> buffer(_L("COMASuplConnRequestor:SettingsUICompleted Error: ")); + buffer.AppendNum(aError); + iTrace->Trace(buffer,KTraceFileName, __LINE__); + + if (iIsTimeoutDialogTimerStarted) + { + iTrace->Trace(_L("COMASuplSession::SettingsUICompleted, stopping timer "), KTraceFileName, __LINE__); + iIsTimeoutDialogTimerStarted = EFalse; + iDialogTimer->StopTimer(); + } + if (iIapDlgTimerExpired) + { + iIapDlgTimerExpired = EFalse; + iIapDialogShown = EFalse; + iProtocolManager.LaunchSuplDialogTimeoutUI(this); + iObserver.OperationCompleteL(KErrNone); + return; + } + if(aError == KErrNone) + { + TInt err = KErrGeneral; + iTrace->Trace( + _L("COMASuplConnRequestor::SettingsUICompletedL KErrNone"), + KTraceFileName, __LINE__); + TBuf<100> IapName, buffer; + CServerParams* params = CServerParams::NewL(); + + err = iSuplSettings->GetSlpInfoAddress(iHostAddress, params); + iTrace->Trace(_L("iSuplSettings->GetSlpInfoAddress returned : "), + KTraceFileName, __LINE__); + buffer.AppendNum(err); + iTrace->Trace(buffer, KTraceFileName, __LINE__); + + // Fix for ou1cimx#475026 and ou1cimx#471138 + // When there are no access points defined for any SUPL server, the user is asked to + // select the access point only once and same access point is used for the following servers. + if (err == KErrNone) + { + HBufC* aServerAddress = HBufC::NewL(KStringLength); + HBufC* aIapName = HBufC::NewL(KStringLength); + TInt64 aSlpId; + TBool aServerEnabled, aSimChangeRemove, aUsageInHomeNw, aEditable; + + err = params->Get(aSlpId, aServerAddress->Des(), aIapName->Des(), + aServerEnabled, aSimChangeRemove, aUsageInHomeNw, + aEditable); + + iTrace->Trace(_L("params->Get() returned: "), KTraceFileName, + __LINE__); + buffer.Zero(); + buffer.AppendNum(err); + iTrace->Trace(buffer, KTraceFileName, __LINE__); + IapName.Copy(*aIapName); + IapName.LowerCase(); + + //converting the iap name to id. + ConvertIAPNameToIdL(IapName, iIAPId); + //updating the list of SLP with the chosen access point + iFallBackHandler->UpdateSLPListWithAccessPoint(IapName); + + delete aServerAddress; + delete aIapName; + delete params; + + // if the getting the list parameters is success opening the connection with the chosen access point + if (err == KErrNone) + { + buffer.Copy(_L("Connecting to ")); + buffer.Append(iHostAddress); + buffer.Append(_L(" using IAP ")); + buffer.Append(IapName); + iTrace->Trace(buffer, KTraceFileName, __LINE__); + iConnection = iCommMgr.CreateConnectionL(iHostAddress, iTls, + iPskTls, iPort, iIAPId); + OpenConnection(); + } + else + { + iObserver.OperationCompleteL(err); + } + } + else + { + delete params; + iObserver.OperationCompleteL(err); + } + } + else + { + iObserver.OperationCompleteL(aError); + } + + } // ----------------------------------------------------------------------------- // COMASuplConnRequestor::SaveAccessPoint @@ -573,5 +639,19 @@ iFallBackHandler->UpdateSLPListForHomeUsage(aHomeNetwork); } +// ----------------------------------------------------------------------------- +// COMASuplConnRequestor::DialogTimerExpiredL +// Checks whether UI is displayed or not previously +// +// ----------------------------------------------------------------------------- +void COMASuplConnRequestor::DialogTimerExpiredL() + { + iTrace->Trace(_L("COMASuplConnRequestor:Timer Expired for SUPL IAP Dialog"), KTraceFileName, __LINE__); + if (!iIapDialogShown) + iProtocolManager.LaunchSuplDialogTimeoutUI(this); + else + iIapDlgTimerExpired = ETrue; + return; + } // End of File diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplendstate.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplendstate.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplendstate.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -259,15 +259,10 @@ { return ETrue; } - + if(iEncodedSuplInit && (iEncodedSuplInit->Length()) > 0 && iHSLPAddress && iHSLPAddress->Length() > 0) { - TBuf<64> serverCheck; - serverCheck.Copy(*iHSLPAddress); - iTrace->Trace(_L("Server Address for VER : "), KTraceFileName, __LINE__); - iTrace->Trace(serverCheck, KTraceFileName, __LINE__); - TInt blockSize = 64; TChar ipad = 0x36; TChar opad = 0x5c; diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasupletel.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasupletel.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasupletel.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -12,7 +12,7 @@ * Contributors: * * Description: Implementation of COMASuplEtel Class -* Version : %version: 3.1.1 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: 3 % << Don't touch! Updated by Synergy at check-out. * */ @@ -524,7 +524,7 @@ for(TInt k = 0; k < KOMASUPLMaxTimeSlotIscpAmount; k++ ) { - iOMASuplwcdmaCellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k] = iCustomWCDMACellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k]; + iOMASuplwcdmaCellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k] = iOMASuplwcdmaCellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k]; } } diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplfallbackhandler.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplfallbackhandler.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplfallbackhandler.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -804,6 +804,31 @@ } // ----------------------------------------------------------------------------- +// COMASuplFallBackHandler::UpdateSLPListWithAccessPoint +// ----------------------------------------------------------------------------- +// +void COMASuplFallBackHandler::UpdateSLPListWithAccessPoint(const TDesC& aIapName) +{ + iTrace->Trace(_L("UpdateSLPListWithAccessPoint Start"),KTraceFileName, __LINE__); + + TInt TotalServers = iSLPList->Count(); + TInt cnt = 0; + while( cnt < TotalServers ) + { + if (((*iSLPList)[cnt].iIapName.Length() == 0)) ; + { + (*iSLPList)[cnt].iIapName.Copy(aIapName); + } + cnt++; + } + + iTrace->Trace(_L("UpdateSLPListWithAccessPoint End"),KTraceFileName, __LINE__); + + PrintSLPList(); + +} + +// ----------------------------------------------------------------------------- // COMASuplFallBackHandler::GetFirstEnabledSLPL // ----------------------------------------------------------------------------- // diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplinitstate.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplinitstate.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplinitstate.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -257,7 +257,7 @@ // Notify Network Privacy of the request information // Synchronous call TInt RequestId; - TRAP_IGNORE(iNetworkPrivacy->NotifyLocationRequestL(*suplReqInfo,RequestId);) + iNetworkPrivacy->NotifyLocationRequestL(*suplReqInfo,RequestId); if(iIsNotificationOnly) { @@ -304,6 +304,7 @@ if(!clientError) { // Set name of Client + if(client) { suplReqInfo->SetLCSClientL(*client,iIdType); @@ -320,12 +321,8 @@ // what decision the GSM Network will make if the user won't answer before // a timeout comes in from GSM Network. In this case verification will // be rejected. - iTrace->Trace(_L("Calling iNetworkPrivacy->VerifyLocationRequestL"), KTraceFileName, __LINE__); - - - TRAP_IGNORE(iNetworkPrivacy->VerifyLocationRequestL(*suplReqInfo, - iGSMRequestId, *this, aTimeOutStrategy);) - + iNetworkPrivacy->VerifyLocationRequestL(*suplReqInfo, + iGSMRequestId, *this, aTimeOutStrategy); TBuf<64> msg; msg.Copy(_L("1.0 Privacy Fw Generated Verification Request id:")); msg.AppendNum(iGSMRequestId); diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplposinitstate.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplposinitstate.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplposinitstate.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -242,10 +242,7 @@ iVerPresent = ComputeSuplInitVerL(); if(iVerPresent) { - if(!iIsStaleCellId) // if this request is for a stale cell id conversion then do not retrieve current location id - iLocationIDRequestor->GetLocationID(); - else - iMsgStateObserver->OperationCompleteL(KErrNone); + iLocationIDRequestor->GetLocationID(); } else { diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -46,9 +46,6 @@ #include "epos_comasupltimeouttimer.h" #include "epos_omasuplconstants.h" #include "epos_comasuplcommonconfig.h" -#include "epos_suplgeocellinfo.h" - -#include "epos_comasupllocationid.h" _LIT(KTraceFileName,"SUPL_OMA_PH::EPos_COMASUPLProtocolManager1.cpp"); @@ -105,7 +102,11 @@ // Destructor. EXPORT_C COMASUPLProtocolManager1::~COMASUPLProtocolManager1() { - + if(iSettingsLauncher) + { + iSettingsLauncher->CancelLaunch(); + } + if(iSuplSettings) { iSuplSettings->SetUIActive( EFalse ); @@ -134,7 +135,7 @@ delete iSuplEcomEventWatcher; - + delete iSettingsLauncher; delete iNotifier; iMobilePhone.Close(); iTelServer.Close(); @@ -172,7 +173,7 @@ iSuplStorageSettings = CSuplSettingsInternal::NewL(); iSuplStorageSettings->SetObserverL(*this); - + iSettingsLauncher = COMASuplSettingsLauncher::NewL( *this ); iIMSI.CreateL( KMaxIMSILen ); iIsPreviouslyDecodingFailed = EFalse; @@ -249,7 +250,7 @@ //Connect to ETel User::LeaveIfError(ConnectToETelL()); - + ReadSuplUsage(); if(iSuplEcomEventWatcher) { @@ -527,11 +528,6 @@ iTrace->Trace(_L("COMASUPLProtocolManager1::DestroySession Destroy Session"), KTraceFileName, __LINE__); COMASuplSession* OMASession = static_cast(aSuplSession); - if (OMASession->HasMeLaunchedUsageDialog()) - { - iTrace->Trace(_L("Setting NULL."), KTraceFileName, __LINE__); - iSessnUIObserver = NULL; - } if (OMASession->GetSessionUIFlag()) { OMASession->DestroySession(); @@ -1042,14 +1038,6 @@ iTrace->Trace(_L("Cannot found Supl session."), KTraceFileName, __LINE__); return; } - - COMASuplSession* OMASession = static_cast(aSuplSession); - if (OMASession->HasMeLaunchedUsageDialog()) - { - iTrace->Trace(_L("Setting NULL."), KTraceFileName, __LINE__); - iSessnUIObserver = NULL; - } - aSuplSession->CancelRunSession(); return ; } @@ -1199,6 +1187,7 @@ if( aEvent == MSuplSettingsObserver::ESuplSettingsEventSuplUsageChange) { iTrace->Trace(_L("Setting Changed.SUPL Usage changed.. Reeading once again..."), KTraceFileName, __LINE__); + ReadSuplUsage(); } else if( aEvent == MSuplSettingsObserver::ESuplSettingsEventCommParameterChange) { @@ -1625,6 +1614,68 @@ } +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager1::LaunchSettingsUI +// +// +// ----------------------------------------------------------------------------- +// +TInt COMASUPLProtocolManager1::LaunchSettingsUI(MOMASuplUICompletionObserver* aObserver,const TDesC& aForHslp) + { + iTrace->Trace(_L("COMASUPLProtocolManager1::LaunchSettingsUI"), KTraceFileName, __LINE__); + + if(iUIRequestArray.Count() <= 0 ) + { + iTrace->Trace(_L("COMASUPLProtocolManager1::LaunchSettingsUI"), KTraceFileName, __LINE__); + iUIRequestArray.Append(aObserver); + iSuplSettings->SetUIActive(ETrue); + iCurrentlyUsedHslp.Copy(aForHslp); + return iSettingsLauncher->LaunchSettings(); + } + else if(iCurrentlyUsedHslp.Compare(aForHslp) == KErrNone) + { + iUIRequestArray.Append(aObserver); + } + else + { + return KErrInUse; + } + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager1::SettingsUICompletedL +// +// +// ----------------------------------------------------------------------------- +// +void COMASUPLProtocolManager1::SettingsUICompletedL(TInt aError) + { + iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsUICompletedL"), KTraceFileName, __LINE__); + iSuplSettings->SetUIActive(EFalse); + + if (iDeInitDone) + { + iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsUICompletedL, de-init done. Completing request"), KTraceFileName, __LINE__); + iDeInitDone = EFalse; + User::RequestComplete(iDeInitRequestStatus,KErrNone); + } + else + { + for(TInt i = 0; i < iUIRequestArray.Count(); i++) + { + iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsUICompletedL,Forwarding ConnRerquestor "), KTraceFileName, __LINE__); + MOMASuplUICompletionObserver* observer = iUIRequestArray[i]; + observer->SettingsUICompletedL(aError); + } + + } + + iCurrentlyUsedHslp.Copy(_L("")); + iUIRequestArray.Reset(); + } + // ----------------------------------------------------------------------------- // COMASUPLProtocolManager1::DeInitialize @@ -1678,11 +1729,72 @@ return networkMode; } - - +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager1::LaunchSuplUsageSettingsUI +// +// +// ----------------------------------------------------------------------------- +// +TInt COMASUPLProtocolManager1::LaunchSuplUsageSettingsUI(MOMASuplUICompletionObserver* aObserver, TBool aRoaming) + { + iTrace->Trace(_L("COMASUPLProtocolManager1::LaunchSuplUsageSettingsUI"), KTraceFileName, __LINE__); + if (iSuplSettings->IsUIActive() && !iTimeOutDialogPresent) + return KErrInUse; + // If timeout dialog is present, close it + if (iTimeOutDialogPresent) + { + iTimeOutDialogPresent = EFalse; + iSuplSettings->SetUIActive(EFalse); + iSettingsLauncher->Cancel(); + } + iSessnUIObserver = aObserver; + iSuplSettings->SetUIActive(ETrue); + return iSettingsLauncher->LaunchSuplUsageSettingsUI(aRoaming); + } +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager1::SettingsUsageUICompletedL +// +// +// ----------------------------------------------------------------------------- +// +void COMASUPLProtocolManager1::SettingsUsageUICompletedL(TInt aError) + { + iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsUsageUICompletedL"), KTraceFileName, __LINE__); + iSuplSettings->SetUIActive(EFalse); + if (iDeInitDone) + { + iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsUsageUICompletedL, de-init done. Completing request"), KTraceFileName, __LINE__); + iDeInitDone = EFalse; + User::RequestComplete(iDeInitRequestStatus,KErrNone); + } + else + { + if (iSessnUIObserver) + iSessnUIObserver->SettingsUsageUICompletedL(aError); + } + CheckOutstandingUsageUIRequestsL(); + } + +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager1::ReadSuplUsage +// Reads Supl Usage from Central Repository +// +// ----------------------------------------------------------------------------- +// +void COMASUPLProtocolManager1::ReadSuplUsage() + { + iTrace->Trace(_L("COMASUPLProtocolManager1::ReadSuplUsage start"), KTraceFileName, __LINE__); + CSuplSettings::TSuplSettingsUsage suplUsage; + TInt err = iSuplStorageSettings->GetSuplUsage(suplUsage); + if(err == KErrNone ) + { + iSuplSettings->SetSUPLUsage(suplUsage); + } + iTrace->Trace(_L("COMASUPLProtocolManager1::ReadSuplUsage end"), KTraceFileName, __LINE__); + } void COMASUPLProtocolManager1::UpdateAllSubSessnsInSameSession(TInt aIpcSessionId) { @@ -1722,7 +1834,8 @@ OMAsuplSession = static_cast(iSuplSessions[cnt]); if (OMAsuplSession->GetSuplUsageFlag()) - { + { + OMAsuplSession->StartUsageDialogLaunchL(); break; } } @@ -1806,7 +1919,62 @@ } } +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager1::LaunchSuplDialogTimeoutUI +// +// +// ----------------------------------------------------------------------------- +// +TInt COMASUPLProtocolManager1::LaunchSuplDialogTimeoutUI(MOMASuplUICompletionObserver* aObserver ) + { + iTrace->Trace(_L("COMASUPLProtocolManager1::LaunchTimeOutUI"), KTraceFileName, __LINE__); + + iSessnUIObserver = aObserver; + if (iSuplSettings->IsUIActive()) + { + iSuplSettings->SetUIActive(EFalse); + iSettingsLauncher->Cancel(); + } + iSuplSettings->SetUIActive(ETrue); + iTimeOutDialogPresent = ETrue; + return iSettingsLauncher->LaunchSessionTimeOutDialog(); + } + +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager1::SettingsTimeOutUICompletedL +// +// +// ----------------------------------------------------------------------------- +// +void COMASUPLProtocolManager1::SettingsTimeOutUICompletedL(TInt aError) + { + iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsTimeOutUICompletedL"), KTraceFileName, __LINE__); + iSuplSettings->SetUIActive(EFalse); + iTimeOutDialogPresent = EFalse; + + if (iDeInitDone) + { + iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsTimeOutUICompletedL, Completing request"), KTraceFileName, __LINE__); + iDeInitDone = EFalse; + User::RequestComplete(iDeInitRequestStatus,KErrNone); + } + else + { + if (iSessnUIObserver) + iSessnUIObserver->SettingsTimeOutUICompletedL(aError); + } + } + +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager1::GetLastUsedAccessPoint +// +// ----------------------------------------------------------------------------- +// +TInt COMASUPLProtocolManager1::GetLastUsedAccessPoint(TDes& aLastlyUsedAccessPoint,TUint32& iIAPId) + { + return iSettingsLauncher->GetIAPName(aLastlyUsedAccessPoint,iIAPId); + } // ----------------------------------------------------------------------------- // COMASUPLProtocolManager1::PrintHex @@ -1904,100 +2072,17 @@ iSuplInitTimeOut = aCommmonConfig->iSuplInitTimeOut; iPersistFailTimer = aCommmonConfig->iPersistFailTimer; } - - -// ----------------------------------------------------------------------------- -// COMASUPLProtocolManager1::MakeLocationConversionRequestL + + // ----------------------------------------------------------------------------- +// COMASUPLProtocolManager1::CancelUiLaunch // -// To make conversion request to retrieve position for a given cell id +// // ----------------------------------------------------------------------------- // -void COMASUPLProtocolManager1::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn, - TGeoCellInfo& aCellInfo, - TRequestStatus& aStatus ) +void COMASUPLProtocolManager1::CancelUiLaunch() { - iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL"), KTraceFileName, __LINE__); - TBuf<64> tempBuf; - - if ( iSuplSessions.Find(aSuplSessn) == KErrNotFound ) - { - TRequestStatus *status = &aStatus; - User::RequestComplete(status,KErrNotFound ); - return; - } - - CheckForSessionCount(); - iRunningSessionCount++; - - COMASuplLocationId* locationId = COMASuplLocationId::NewL(); - COMASuplLocationId::TOMASuplStatus status = COMASuplLocationId::EStale; - switch(aCellInfo.iGeoCellType) - { - case EGeoGsmCell: - { - iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL - Setting GSM Cell Info"), KTraceFileName, __LINE__); - COMASuplGSMCellInfo* cellInfo = COMASuplGSMCellInfo::NewL(); - cellInfo->SetSuplGSMCellInfo(aCellInfo.iMNC,aCellInfo.iMCC,aCellInfo.iCid,aCellInfo.iLac); - locationId->SetSuplLocationId(cellInfo,status); - } - break; - case EGeoWcdmaCell: - { - iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL - Setting WCDMA Cell Info"), KTraceFileName, __LINE__); - COMASuplCellInfo* cellInfo = COMASuplCellInfo::NewL(); - cellInfo->SetSuplCellInfo(aCellInfo.iMNC,aCellInfo.iMCC,aCellInfo.iCid); - locationId->SetSuplLocationId(cellInfo,status); - } - break; - } - - tempBuf.Copy(_L("MCC = ")); - tempBuf.AppendNum(aCellInfo.iMCC); - iTrace->Trace(tempBuf, KTraceFileName, __LINE__); - tempBuf.Copy(_L("MNC = ")); - tempBuf.AppendNum(aCellInfo.iMNC); - iTrace->Trace(tempBuf, KTraceFileName, __LINE__); - tempBuf.Copy(_L("LAC = ")); - tempBuf.AppendNum(aCellInfo.iLac); - iTrace->Trace(tempBuf, KTraceFileName, __LINE__); - tempBuf.Copy(_L("CId = ")); - tempBuf.AppendNum(aCellInfo.iCid); - iTrace->Trace(tempBuf, KTraceFileName, __LINE__); - tempBuf.Copy(_L("Prompt = ")); - tempBuf.AppendNum(aCellInfo.iConnectionPrompt); - iTrace->Trace(tempBuf, KTraceFileName, __LINE__); - - TInt allowedCapabilities = KECID|KCID; - TInt requestID = 1000; - COMASuplSession* OMASession = static_cast(aSuplSessn); - OMASession->SetConfigurationParameters(iUT1_StartTimer,iUT2_PosInitTimer, iUT3_PosTimer,iPrivacyTimer,iSETMode, - iSuplUsage, iPersistFailTimer,iSuplInitTimeOut); - OMASession->RunSuplSessionL(aStatus,ETrue, KNullDesC,EFalse, allowedCapabilities,iRunningSessionCount,requestID,ETrue,locationId,aCellInfo.iConnectionPrompt,aCellInfo.iWlanOnly); - + iTrace->Trace(_L("COMASUPLProtocolManager1::CancelUiLaunch"), KTraceFileName, __LINE__); + iSettingsLauncher->CancelLaunch(); } - -// ----------------------------------------------------------------------------- -// COMASUPLProtocolManager1::CancelLocationConversionRequest -// -// Cancel an ongoing conversion request -// ----------------------------------------------------------------------------- -// -void COMASUPLProtocolManager1::CancelLocationConversionRequest(CSuplSessionBase* aSuplSession) - { - // Log - iTrace->Trace(_L("COMASUPLProtocolManager1::CancelLocationConversionRequest"), KTraceFileName, __LINE__); - - // Check if the Session is valid - TInt index = iSuplSessions.Find(aSuplSession); - - if(KErrNotFound == index) - { - iTrace->Trace(_L("Cannot find Supl session."), KTraceFileName, __LINE__); - return; - } - aSuplSession->CancelRunSession(); - return ; - } - // end of file diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsession.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsession.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsession.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -128,7 +128,7 @@ iEtelRoamingCheck(EFalse), iIapDialogShown(EFalse), iIapDlgTimerExpired(EFalse), - iOMASuplAsnHandlerBaseImpl(aOMASuplAsnHandlerBase),iWlanOnly(EFalse) + iOMASuplAsnHandlerBaseImpl(aOMASuplAsnHandlerBase) { } @@ -193,6 +193,8 @@ iIapNotifier = COMASuplIapNotifier::NewL(*this); + + iDialogTimer = COMASuplDialogTimer::NewL(*this); iIsQoPPresent = EFalse; iIsFirstPOSMessage = ETrue; @@ -251,6 +253,7 @@ SessionEnd(); CompleteSession(KErrCancel); } + iProtocolManager.CancelUiLaunch(); delete this; } @@ -310,14 +313,9 @@ delete iTimer; delete iIapNotifier; iIMSI.Close(); + delete iDialogTimer; delete iNetworkPrivacy; - - if(iStaleLocationId) - { - delete iStaleLocationId; - iStaleLocationId = NULL; - } if(iTrace) iTrace->Trace(_L("End of ~COMASuplSession::COMASuplSession"), KTraceFileName, __LINE__); @@ -426,7 +424,7 @@ // void COMASuplSession::RunSuplSessionL(TRequestStatus& aStatus, TBool aFirstReq, const TDesC& aHslpAddress, TBool aFallBack, TInt aAllowedCapabilities, - TInt aSessionIdSeed,TInt aRequestID,TBool aIsStaleCellId,COMASuplLocationId* aLocationId,TBool aPrompt,TBool aWlanOnly) + TInt aSessionIdSeed,TInt aRequestID) { iRunRequestStatus = & aStatus; *iRunRequestStatus = KRequestPending; @@ -434,32 +432,7 @@ iRequestID = aRequestID; iTrace->Trace(_L("Start COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__); - - if(aIsStaleCellId) - { - iTrace->Trace(_L("Start COMASuplSession::RunSuplSession for Stale Cell Id"), KTraceFileName, __LINE__); - iIsStaleLocIdPresent = ETrue; - - - if(iStaleLocationId) - { - delete iStaleLocationId; - iStaleLocationId = NULL; - } - - iStaleLocationId = aLocationId; - iStaleLocIdPrompt = aPrompt; - iWlanOnly = aWlanOnly; //OCC - - iTrace->Trace(_L("Deleting pos requestor as session is for Stale Cell Id"), KTraceFileName, __LINE__); - delete iOMASuplPOSRequestor; - iOMASuplPOSRequestor = NULL; - - // Delete the POS Session - delete iPOSSession; - iPOSSession = NULL; - - } + // Log Session Id TBuf<64> id; id.Append(_L("Session Id is ")); @@ -472,27 +445,23 @@ iTrace->Trace(id,KTraceFileName, __LINE__); iSETSessionUniqueId = aSessionIdSeed; - - iIhaveLaunchedUsagedialog = EFalse; + TInt networkMode = 1; networkMode = GetNetworkModeL(); - if(!iWlanOnly) //OCC - { - if ( networkMode == ECoreAppUIsNetworkConnectionNotAllowed ) - { - id.Copy(_L("The device is in OFFLINE mode.")); - iTrace->Trace(id,KTraceFileName, __LINE__); - iSessionObserver.TerminateSession(this, KErrGeneral); - return; - } - else - { - id.Copy(_L("The device is in ON LINE mode.")); - iTrace->Trace(id,KTraceFileName, __LINE__); - } - } //OCC + if ( networkMode == ECoreAppUIsNetworkConnectionNotAllowed ) + { + id.Copy(_L("The device is in OFFLINE mode.")); + iTrace->Trace(id,KTraceFileName, __LINE__); + iSessionObserver.TerminateSession(this, KErrGeneral); + return; + } + else + { + id.Copy(_L("The device is in ON LINE mode.")); + iTrace->Trace(id,KTraceFileName, __LINE__); + } if(aAllowedCapabilities == 0) { @@ -507,41 +476,17 @@ iSuplSessionId->SetSLPSessionID(NULL); iConnRequestor->SetDefaultParametersL(aHslpAddress,aFallBack); - - id.Copy(_L("aFallBack value is ")); - id.AppendNum(aFallBack); - iTrace->Trace(id,KTraceFileName, __LINE__); - - if(!iWlanOnly) //OCC - { - iTrace->Trace(_L("iWLANOnly false COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__); - - id.Copy(_L("aFirstReq value is ")); - id.AppendNum(aFirstReq); - iTrace->Trace(id,KTraceFileName, __LINE__); - - if (aFirstReq) - { - iTrace->Trace(_L("start CheckForSuplUsageL COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__); - CheckForSuplUsageL(); - } - else - { - iTrace->Trace(_L("start CheckForPreviousResultL COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__); - CheckForPreviousResultL(); - } - } - else - { - iTrace->Trace(_L("iWLANOnly true COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__); - InitializeL(iRequestID); - } //OCC + + if (aFirstReq) + CheckForSuplUsageL(); + else + CheckForPreviousResultL(); // Clear Position.... delete iPosition; iPosition = NULL; - + iTrace->Trace(_L("End of COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__); } @@ -560,7 +505,6 @@ TSuplTerminalQop& aQop, TInt aRequestID) { - iIhaveLaunchedUsagedialog = EFalse; iClientQop = aQop; @@ -709,18 +653,11 @@ COMASuplStartState* startSuplState = static_cast (iSuplState); startSuplState->SetQop(iClientQop); } - if(iIsStaleLocIdPresent) - { - iTrace->Trace(_L("GenerateSuplStartL setting stale location id in supl start"), KTraceFileName, __LINE__); - COMASuplStartState* startSuplState = static_cast (iSuplState); - startSuplState->SetStaleCellIdToUse(iStaleLocationId->CloneL()); - } - iSuplSessionState = ESUPL_GENERATE; - iSuplMsgType = ESUPL_START; + //SMP Changes + iSuplMsgType = ESUPL_START; + SetPOSMsgPluginState(COMASuplPosSessionBase::EOMASuplCreating); TInt err = iSuplState->GenerateMessageL(); - - - SetPOSMsgPluginState(COMASuplPosSessionBase::EOMASuplCreating); + } @@ -763,12 +700,6 @@ iTrace->Trace(msg, KTraceFileName, __LINE__); iSuplState = COMASuplPosInitState::NewL(iSETCapabilities, iMobilePhone, iUT2_PosInitTimer, iOMASuplPOSRequestor,iAllowedCapabilities,iRequestType, iPosMethod,iOMASuplAsnHandlerBaseImpl); - if(iIsStaleLocIdPresent) - { - iTrace->Trace(_L("COMASuplSession::GenerateSuplPosInitL() Setting Stale Location Id "), KTraceFileName, __LINE__); - COMASuplPosInitState* posInitSuplState = static_cast (iSuplState); - posInitSuplState->SetStaleCellIdToUse(iStaleLocationId->CloneL()); - } } iSuplState->SetMsgStateObserver(this); @@ -884,7 +815,6 @@ // void COMASuplSession::OperationCompleteL(TInt aErrorCode) { - iTrace->Trace(_L("COMASuplSession::OperationCompleteL"), KTraceFileName, __LINE__); TBuf<256> msg; if(KErrNone != aErrorCode) { @@ -897,10 +827,6 @@ HandleSuplErrorL(aErrorCode); return; } - - msg.Copy(_L("iSuplSessionState : ")); - msg.AppendNum(iSuplSessionState); - iTrace->Trace(msg, KTraceFileName, __LINE__); TInt err = KErrNone; @@ -962,15 +888,7 @@ } else //terminal initiated case { - iTrace->Trace(_L("Connection block."), KTraceFileName, __LINE__); - if(iIsStaleLocIdPresent) - { - TRAP( err, iConnRequestor->CreateConnectionL(iStaleLocIdPrompt,iWlanOnly) ); - } - else - { - TRAP( err, iConnRequestor->CreateConnectionL() ); - } + TRAP( err, iConnRequestor->CreateConnectionL() ); } if(KErrNone != err) { @@ -2056,7 +1974,15 @@ iTrace->Trace(msg,KTraceFileName, __LINE__); } - + CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage(); + + if (usage == CSuplSettings::ESuplUsageDisabled) + { + msg.Copy(_L("SUPL Usage is disabled")); + iTrace->Trace(msg,KTraceFileName, __LINE__); + iSessionObserver.TerminateSession(this, KErrGeneral); + return; + } COMASuplAsnMessageBase::TSuplMessageType messageType = aDecodedAsnMessage->MessageType(); @@ -3808,6 +3734,16 @@ } +// ----------------------------------------------------------------------------- +// COMASuplSession::SettingsUICompleted +// +// ----------------------------------------------------------------------------- + +void COMASuplSession::SettingsUICompletedL(TInt /*aError*/) + { + + } + // ----------------------------------------------------------------------------- // COMASuplSession::HandleInvalidMessageL @@ -4109,7 +4045,56 @@ OperationCompleteL(KErrTimedOut); } - +// ----------------------------------------------------------------------------- +// COMASuplSession::SettingsUsageUICompletedL +// +// ----------------------------------------------------------------------------- +void COMASuplSession::SettingsUsageUICompletedL(TInt aError) + { + iUIFlag = EFalse; + TBuf<64> msg; + msg.Copy(_L("SUPL Usage UI completed with ... ")); + msg.AppendNum(aError); + iTrace->Trace(msg,KTraceFileName, __LINE__); + + iPrevUsageResult = aError; + + + if (aError == KErrNone) + { + iProtocolManager.UpdateAllSubSessnsInSameSession(iIpcSessionId); + + if (isTimeoutDialogTimerStarted) + { + iTrace->Trace(_L("COMASuplSession::SettingsUsageUICompletedL, stopping timer "), KTraceFileName, __LINE__); + isTimeoutDialogTimerStarted = EFalse; + iDialogTimer->StopTimer(); + + //Compute how log the dialog was on + TTime nowTime; + nowTime.HomeTime(); + nowTime.SecondsFrom(iDlgStartTime, iDiffTime); + } + if (iNwInitError) + { + iNwInitError = EFalse; + HandleSuplInitErrorL(iNwInitCompletionCode); + } + else + InitializeL(iRequestID); + } + else if (aError == KErrCompletion) + CheckForSuplUsageL(); + else + { + TBuf<64> msg; + msg.Copy(_L("Error after SUPL Usage Popup... ")); + msg.AppendNum(aError); + iTrace->Trace(msg,KTraceFileName, __LINE__); + iSessionObserver.TerminateSession(this, KErrGeneral); + return; + } + } // ----------------------------------------------------------------------------- // COMASuplSession::CheckForSuplUsageL @@ -4118,23 +4103,37 @@ void COMASuplSession::CheckForSuplUsageL() { - + if (iSuplUsage >= 1) + { + CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage(); + if (usage == CSuplSettings::ESuplUsageDisabled) + { + iSessionObserver.TerminateSession(this, KErrGeneral); + } + else if (usage == CSuplSettings::ESuplUsageAutomatic) + { if (iNwInitError) { iNwInitError = EFalse; HandleSuplInitErrorL(iNwInitCompletionCode); } else - { - if (iRoaming) + InitializeL(iRequestID); + } + + else if (usage == CSuplSettings::ESuplUsageHomeAutomatic || usage == CSuplSettings::ESuplUsageAlwaysAsk) + { + if (iRoaming) HandleRoamingCheckCompleteL(KErrNone, EFalse); else { iEtelRoamingCheck = ETrue; iProtocolManager.CheckForRoaming(); } - } - + } + } + else + InitializeL(iRequestID); } @@ -4217,7 +4216,80 @@ { iUsageHomeNW = aHomeNw; iConnRequestor->UpdateSLPListForHomeUsage(iUsageHomeNW); - + CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage(); + + if (usage == CSuplSettings::ESuplUsageAlwaysAsk) + { + TInt err; + if (!aHomeNw) + { + iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__); + err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue); + } + else + { + iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is not roaming"), KTraceFileName, __LINE__); + err = iProtocolManager.LaunchSuplUsageSettingsUI(this, EFalse); + } + + if(KErrNone != err && KErrInUse == err) + { + iTrace->Trace(_L("Dialog in use, setting flag"), KTraceFileName, __LINE__); + SetSuplUsageFlag(); + } + if( KErrNone == err && iRequestType == ESUPL_NETWORK ) + { + iTrace->Trace(_L("Network Session , starting timer"), KTraceFileName, __LINE__); + COMASuplInit* suplInit = static_cast (iDecodedAsnMessage); + TOMASuplQop qop; + TInt retVal = suplInit->Qop(qop); + TInt delay; + qop.Delay(delay); + //if delay is > 7, it is not valid + if (delay > 7) + delay = 0; + if(retVal == KErrNone && delay > 0) + { + TReal delayReal; + Math::Pow(delayReal, 2, (TReal)delay); + delay = (TInt) delayReal; + TBuf<128> msg(_L("Delay present in message, value is = ")); + msg.AppendNum(delay); + iTrace->Trace(msg, KTraceFileName, __LINE__); + isTimeoutDialogTimerStarted = ETrue; + iDialogTimer->StartTimer(delay); + } + else + { + if (iSuplInitTimeOut > 0) + { + TBuf<256> msg(_L("Delay value in CR is")); + msg.AppendNum(iSuplInitTimeOut); + iTrace->Trace(msg, KTraceFileName, __LINE__); + iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond); + isTimeoutDialogTimerStarted = ETrue; + } + else + iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__); + } + iDlgStartTime.HomeTime(); + } + else if (KErrNone != err) + { + iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__); + HandleSuplErrorL(err); + } + + } + else if (usage == CSuplSettings::ESuplUsageHomeAutomatic) + { + if (!aHomeNw) + { + TInt err; + //if (!iSuplSettings->IsUIActive() ) + { + iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__); + err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue); if(iSuplMsgType == ESUPL_INIT) { @@ -4240,35 +4312,47 @@ msg.AppendNum(delay); iTrace->Trace(msg, KTraceFileName, __LINE__); isTimeoutDialogTimerStarted = ETrue; - + iDialogTimer->StartTimer(delay); } else { if (iSuplInitTimeOut > 0) { isTimeoutDialogTimerStarted = ETrue; - + iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond); } else iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__); } } - + } + + if(!iSuplSettings->IsUIActive() && KErrNone != err) + { + SetSuplUsageFlag(); + } + else + { + iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__); + HandleSuplErrorL(err); + } + } + else + { if (iNwInitError) { iNwInitError = EFalse; HandleSuplInitErrorL(iNwInitCompletionCode); } else - { - iTrace->Trace(_L("COMASuplSession::InitializeL called after roaming check"), KTraceFileName, __LINE__); - InitializeL(iRequestID); - } + InitializeL(iRequestID); + } + } } - else - { - iSessionObserver.TerminateSession(this, KErrGeneral); - } + else + { + iSessionObserver.TerminateSession(this, KErrGeneral); + } } TInt COMASuplSession::SuplIpcSessionID() { @@ -4333,7 +4417,173 @@ return iUsageDialog; } - +void COMASuplSession::StartUsageDialogLaunchL() + { + iTrace->Trace(_L("COMASuplSession::StartUsageDialogLaunchL"), KTraceFileName, __LINE__); + ReSetSuplUsageFlag(); + iTrace->Trace(_L("COMASuplSession::StartUsageDialogLaunchL, flag reset done"), KTraceFileName, __LINE__); + + CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage(); + if (usage == CSuplSettings::ESuplUsageAlwaysAsk) + { + TInt err; + if (!iUsageHomeNW) + { + iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__); + err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue); + + if(iRequestType == ESUPL_NETWORK && err == KErrNone) + { + iTrace->Trace(_L("starting Dialog timer "), KTraceFileName, __LINE__); + + COMASuplInit* suplInit = static_cast (iDecodedAsnMessage); + TOMASuplQop qop; + TInt retVal = suplInit->Qop(qop); + TInt delay; + qop.Delay(delay); + //if delay is > 7, it is not valid + if (delay > 7) + delay = 0; + if(retVal == KErrNone && delay > 0) + { + TReal delayReal; + Math::Pow(delayReal, 2, (TReal)delay); + delay = (TInt) delayReal; + TBuf<128> msg(_L("Delay present in message, value is = ")); + msg.AppendNum(delay); + iTrace->Trace(msg, KTraceFileName, __LINE__); + isTimeoutDialogTimerStarted = ETrue; + iDialogTimer->StartTimer(delay); + } + else + { + if (iSuplInitTimeOut > 0) + { + iTrace->Trace(_L("Delay not present in message"), KTraceFileName, __LINE__); + TBuf<256> msg(_L("Delay value in CR is ")); + msg.AppendNum(iSuplInitTimeOut); + iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond); + isTimeoutDialogTimerStarted = ETrue; + } + else + iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__); + } + } + } + else + { + iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is not roaming"), KTraceFileName, __LINE__); + err = iProtocolManager.LaunchSuplUsageSettingsUI(this, EFalse); + + if( iRequestType == ESUPL_NETWORK && err == KErrNone) + { + iTrace->Trace(_L("starting Dialog timer "), KTraceFileName, __LINE__); + + COMASuplInit* suplInit = static_cast (iDecodedAsnMessage); + TOMASuplQop qop; + TInt retVal = suplInit->Qop(qop); + TInt delay; + qop.Delay(delay); + //if delay is > 7, it is not valid + if (delay > 7) + delay = 0; + if(retVal == KErrNone && delay > 0) + { + TReal delayReal; + Math::Pow(delayReal, 2, (TReal)delay); + delay = (TInt) delayReal; + TBuf<128> msg(_L("Delay present in message, value is = ")); + msg.AppendNum(delay); + iTrace->Trace(msg, KTraceFileName, __LINE__); + isTimeoutDialogTimerStarted = ETrue; + iDialogTimer->StartTimer(delay); + } + else + { + if (iSuplInitTimeOut > 0) + { + iTrace->Trace(_L("Delay not present in message"), KTraceFileName, __LINE__); + TBuf<256> msg(_L("Delay value in CR is")); + msg.AppendNum(iSuplInitTimeOut); + iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond); + isTimeoutDialogTimerStarted = ETrue; + } + else + iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__); + } + } + } + + if(KErrNone != err) + { + iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__); + HandleSuplErrorL(err); + } + } + else if (usage == CSuplSettings::ESuplUsageHomeAutomatic) + { + if (!iUsageHomeNW) + { + TInt err; + iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__); + err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue); + + if(KErrNone != err) + { + iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__); + HandleSuplErrorL(err); + } + + if(iRequestType == ESUPL_NETWORK && err == KErrNone) + { + iTrace->Trace(_L("starting Dialog timer "), KTraceFileName, __LINE__); + + COMASuplInit* suplInit = static_cast (iDecodedAsnMessage); + TOMASuplQop qop; + TInt retVal = suplInit->Qop(qop); + TInt delay; + qop.Delay(delay); + //if delay is > 7, it is not valid + if (delay > 7) + delay = 0; + if(retVal == KErrNone && delay > 0) + { + TReal delayReal; + Math::Pow(delayReal, 2, (TReal)delay); + delay = (TInt) delayReal; + TBuf<128> msg(_L("Delay present in message, value is = ")); + msg.AppendNum(delay); + iTrace->Trace(msg, KTraceFileName, __LINE__); + isTimeoutDialogTimerStarted = ETrue; + iDialogTimer->StartTimer(delay); + } + else + { + if (iSuplInitTimeOut > 0) + { + iTrace->Trace(_L("Delay not present in message"), KTraceFileName, __LINE__); + TBuf<256> msg(_L("Delay value in CR is")); + msg.AppendNum(iSuplInitTimeOut); + iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond); + isTimeoutDialogTimerStarted = ETrue; + } + else + iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__); + } + } + } + else + { + if (iNwInitError) + { + iNwInitError = EFalse; + HandleSuplInitErrorL(iNwInitCompletionCode); + } + else + InitializeL(iRequestID); + } + } + } TBool COMASuplSession::IsEtelNotifySet() { @@ -4346,13 +4596,39 @@ iTrace->Trace(_L("COMASuplSession::IsEtelRoamingSet"), KTraceFileName, __LINE__); return iEtelRoamingCheck; } - -TBool COMASuplSession::HasMeLaunchedUsageDialog() + +// ----------------------------------------------------------------------------- +// COMASuplSession::DialogTimerExpiredL +// Checks whether UI is displayed or not previously +// +// ----------------------------------------------------------------------------- +void COMASuplSession::DialogTimerExpiredL() { - return iIhaveLaunchedUsagedialog; + iTrace->Trace(_L("Timer Expired for SUPL Dialog"), KTraceFileName, __LINE__); + + if (!iIapDialogShown) + iProtocolManager.LaunchSuplDialogTimeoutUI(this); + else + iIapDlgTimerExpired = ETrue; + + return; } - +// ----------------------------------------------------------------------------- +// COMASuplSession::SettingsTimeOutUICompletedL +// +// ----------------------------------------------------------------------------- +void COMASuplSession::SettingsTimeOutUICompletedL(TInt aError) + { + + TBuf<64> msg; + msg.Copy(_L("SUPL Timeout UI completed with ... ")); + msg.AppendNum(aError); + iTrace->Trace(msg,KTraceFileName, __LINE__); + iSessionObserver.TerminateSession(this, KErrGeneral); + return; + + } // ----------------------------------------------------------------------------- // COMASuplSession::StoreCurrentCellIDL diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsettingslauncher.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsettingslauncher.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsettingslauncher.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -92,7 +92,6 @@ delete iSettingsLauncher; iNotifier.Close(); delete iTrace; - iIapSelector.Close(); } @@ -101,10 +100,7 @@ iTrace = COMASuplTrace::NewL(); iTrace->Trace(_L("COMASuplSettingsLauncher::ConstructL"), KTraceFileName, __LINE__); iSettingsLauncher = CLocSettingsUiClient::NewL(); - User::LeaveIfError(iNotifier.Connect()); - // Establish a connection to the RGenConAgentDialogServer - User::LeaveIfError( iIapSelector.Connect()); - + User::LeaveIfError(iNotifier.Connect()); } // ----------------------------------------------------------------------------- @@ -122,14 +118,21 @@ { return KErrInUse; } - - TRAPD(error,iSettingsLauncher->LaunchSettingsUiL( TUid::Uid( KLocSUPLSettingsUID ), - ELocSUPLIAPSelection, - iStatus )); - - iDialogType = ESUPLYesNoDialog; - SetActive(); - + TRAPD(error,iSettingsLauncher->LaunchSettingsUiL( TUid::Uid( KLocSUPLSettingsUID ), + ELocSUPLIAPSelection, + iStatus )); + if (error != KErrNone) + { + iCallback.SettingsUICompletedL(error); + } + else + { + iDialogType = ESUPLYesNoDialog; + if (!IsActive()) + { + SetActive(); + } + } return error; } @@ -292,26 +295,36 @@ iDialogType = ESUPLIAPDialog; - TConnectionPrefs prefs; // filtering conditions for the access points list - prefs.iRank = 1; - prefs.iDirection = ECommDbConnectionDirectionOutgoing; - prefs.iBearerSet = KUidCSDBearerType | KUidPacketDataBearerType; + // Launch the IAP Selector iStatus = KRequestPending; - iIapSelector.IapConnection( iSelectedIap, prefs, iStatus ); - SetActive(); - return KErrNone; - } - - -TInt COMASuplSettingsLauncher::GetIAPName(TDes& aIAPName,TUint32& aIAPId) - { - TRAPD( error, ConvertIAPIdtoNameL( iSelectedIap,aIAPName )); - aIAPId = iSelectedIap; - return error; - } - + + + TRAPD(error, iSettingsLauncher->LaunchSettingsUiL( TUid::Uid( KLocSUPLSettingsUID ), + ELocSuplIAPDialog, + iStatus );) + if(error != KErrNone) + { + iCallback.SettingsUICompletedL(error); + } + else + { + if (!IsActive()) + { + SetActive(); + } + } + return error; + } + +TInt COMASuplSettingsLauncher::GetIAPName(TDes& aIAPName, TUint32& aIAPId) + { + TRAPD( error, ConvertIAPIdtoNameL( iSelectedIap,aIAPName )); + aIAPId = iSelectedIap; + return error; + } + // --------------------------------------------------------------------------- // TUint CLocSUPLSettingsUiEngine::ConvertIAPIdtoNameL() // Convert IAP ID to IAP Name. If a valid name exists for the IAP Id diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplstartstate.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplstartstate.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplstartstate.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -149,22 +149,8 @@ // TInt COMASuplStartState::GenerateMessageL() { - iTrace->Trace(_L("Start of COMASuplStartState::GenerateMessage"), KTraceFileName, __LINE__); - //if no cell stale cell id is available, retrieve current cell id - if(!iIsStaleCellId) - { - iTrace->Trace(_L("COMASuplStartState::GenerateMessage stale cell id false"), KTraceFileName, __LINE__); - iLocationIDRequestor->GetLocationID(); - iTrace->Trace(_L("COMASuplStartState::GenerateMessage called get location id"), KTraceFileName, __LINE__); - } - else // dont retrieve current cell id as cell id was already provided - { - iGenerationStatus = EFalse; - iECId = EFalse; - iTrace->Trace(_L("COMASuplStartState::GenerateMessage stale cell id true"), KTraceFileName, __LINE__); - GetAssistceDataFromPluginL(KErrNone); - } - + iTrace->Trace(_L("Start of COMASuplStartState::GenerateMessage"), KTraceFileName, __LINE__); + iLocationIDRequestor->GetLocationID(); return KErrNone; } @@ -1010,15 +996,4 @@ aCurrentCellId.iMCC = lRefMCC; aCurrentCellId.iLac = lRefLAC; } -} -void COMASuplStartState::SetStaleCellIdToUse(COMASuplLocationId* aLocationId) - { - if(iLocationId) - { - delete iLocationId; - iLocationId = NULL; - } - iLocationId = aLocationId; - iIsStaleCellId = ETrue; - } -// End of File +} // End of File diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver2/eabi/eposomasuplprotocolhandler2u.def --- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/eabi/eposomasuplprotocolhandler2u.def Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/eabi/eposomasuplprotocolhandler2u.def Wed Oct 13 15:01:35 2010 +0300 @@ -41,35 +41,37 @@ _ZTI23COMASuplFallBackHandler @ 40 NONAME _ZTI24COMASUPLProtocolManager2 @ 41 NONAME _ZTI24COMASuplEcomEventWatcher @ 42 NONAME - _ZTI24COMASuplTriggerStopState @ 43 NONAME - _ZTI25COMASuplTriggerStartState @ 44 NONAME - _ZTI28COMASuplTriggerResponseState @ 45 NONAME - _ZTI29COMASuplCompleteSelfRequestor @ 46 NONAME - _ZTV12COMASuplETel @ 47 NONAME - _ZTV13COMASuplState @ 48 NONAME - _ZTV13COMASuplTrace @ 49 NONAME - _ZTV15COMASuplSession @ 50 NONAME - _ZTV16COMASuplEndState @ 51 NONAME - _ZTV16COMASuplPosState @ 52 NONAME - _ZTV16COMASuplSettings @ 53 NONAME - _ZTV17COMASuplInitState @ 54 NONAME - _ZTV18COMASuplStartState @ 55 NONAME - _ZTV19COMASuplDialogTimer @ 56 NONAME - _ZTV19COMASuplIapNotifier @ 57 NONAME - _ZTV19COMASuplReportState @ 58 NONAME - _ZTV20COMASuplETelNotifier @ 59 NONAME - _ZTV20COMASuplPOSRequestor @ 60 NONAME - _ZTV20COMASuplPosInitState @ 61 NONAME - _ZTV20COMASuplTimeoutTimer @ 62 NONAME - _ZTV21COMASuplConnRequestor @ 63 NONAME - _ZTV21COMASuplResponseState @ 64 NONAME - _ZTV23COMASuplFallBackHandler @ 65 NONAME - _ZTV24COMASUPLProtocolManager2 @ 66 NONAME - _ZTV24COMASuplEcomEventWatcher @ 67 NONAME - _ZTV24COMASuplTriggerStopState @ 68 NONAME - _ZTV25COMASuplTriggerStartState @ 69 NONAME - _ZTV28COMASuplTriggerResponseState @ 70 NONAME - _ZTV29COMASuplCompleteSelfRequestor @ 71 NONAME - _ZThn4_N24COMASUPLProtocolManager212HandlePacketERK6TDesC8j @ 72 NONAME - _ZThn4_N24COMASUPLProtocolManager217HandlePacketErrorEi @ 73 NONAME + _ZTI24COMASuplSettingsLauncher @ 43 NONAME + _ZTI24COMASuplTriggerStopState @ 44 NONAME + _ZTI25COMASuplTriggerStartState @ 45 NONAME + _ZTI28COMASuplTriggerResponseState @ 46 NONAME + _ZTI29COMASuplCompleteSelfRequestor @ 47 NONAME + _ZTV12COMASuplETel @ 48 NONAME + _ZTV13COMASuplState @ 49 NONAME + _ZTV13COMASuplTrace @ 50 NONAME + _ZTV15COMASuplSession @ 51 NONAME + _ZTV16COMASuplEndState @ 52 NONAME + _ZTV16COMASuplPosState @ 53 NONAME + _ZTV16COMASuplSettings @ 54 NONAME + _ZTV17COMASuplInitState @ 55 NONAME + _ZTV18COMASuplStartState @ 56 NONAME + _ZTV19COMASuplDialogTimer @ 57 NONAME + _ZTV19COMASuplIapNotifier @ 58 NONAME + _ZTV19COMASuplReportState @ 59 NONAME + _ZTV20COMASuplETelNotifier @ 60 NONAME + _ZTV20COMASuplPOSRequestor @ 61 NONAME + _ZTV20COMASuplPosInitState @ 62 NONAME + _ZTV20COMASuplTimeoutTimer @ 63 NONAME + _ZTV21COMASuplConnRequestor @ 64 NONAME + _ZTV21COMASuplResponseState @ 65 NONAME + _ZTV23COMASuplFallBackHandler @ 66 NONAME + _ZTV24COMASUPLProtocolManager2 @ 67 NONAME + _ZTV24COMASuplEcomEventWatcher @ 68 NONAME + _ZTV24COMASuplSettingsLauncher @ 69 NONAME + _ZTV24COMASuplTriggerStopState @ 70 NONAME + _ZTV25COMASuplTriggerStartState @ 71 NONAME + _ZTV28COMASuplTriggerResponseState @ 72 NONAME + _ZTV29COMASuplCompleteSelfRequestor @ 73 NONAME + _ZThn4_N24COMASUPLProtocolManager212HandlePacketERK6TDesC8j @ 74 NONAME + _ZThn4_N24COMASUPLProtocolManager217HandlePacketErrorEi @ 75 NONAME diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver2/group/omasuplprotocolhandler2.mmp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/group/omasuplprotocolhandler2.mmp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/group/omasuplprotocolhandler2.mmp Wed Oct 13 15:01:35 2010 +0300 @@ -52,6 +52,7 @@ SOURCE epos_comasuplinitstate.cpp SOURCE epos_comasuplposrequestor.cpp SOURCE epos_comasuplecomeventwatcher.cpp +SOURCE epos_comasuplsettingslauncher.cpp SOURCE epos_comasupltrace.cpp SOURCE epos_comasupldialogtimer.cpp SOURCE epos_comasuplfallbackhandler.cpp @@ -87,7 +88,7 @@ LIBRARY insock.lib LIBRARY lbs.lib LIBRARY eposnwprv.lib - +LIBRARY locsettingsuiclient.lib LIBRARY hash.lib LIBRARY bafl.lib //logging LIBRARY flogger.lib diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplconnrequestor.h --- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplconnrequestor.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplconnrequestor.h Wed Oct 13 15:01:35 2010 +0300 @@ -40,7 +40,9 @@ * @since S60 v3.1 */ -class COMASuplConnRequestor : public CActive +class COMASuplConnRequestor : public CActive, + public MOMASuplUICompletionObserver, + public MOMASuplDialogTimeOutNotifier { enum TConnState @@ -170,6 +172,9 @@ void GetUsedServerAddress(TDes& aHSLPAddressUsed); + void SettingsUICompletedL(TInt aError); + void SettingsUsageUICompletedL(TInt /*aError*/) {} + void SettingsTimeOutUICompletedL(TInt /*aError*/) {} TBool ConvertIAPNameToIdL(const TDesC& aIAPName, TUint32& aIAPId); void UpdateNetInfo(const TTime& aLastTimeUsed,TInt& aMcc,TInt& aMnc, TInt& aCid,TInt& aLac,TInt& aType,TInt& aErrorCode); @@ -209,7 +214,13 @@ void SaveAccessPoint(const TDesC& aIapName); - + /** + * Dialog Timeout Notifier Method. + * @since Series 60 9.1 TB + * @param None + * @return None + */ + virtual void DialogTimerExpiredL(); protected : // Functions from CActive /** * From CActive @@ -282,7 +293,15 @@ TInt64 iCurrentSLPId; - TBool iTriggerSession; + COMASuplDialogTimer* iDialogTimer; + + TBool iIapDialogShown; + + TBool iIapDlgTimerExpired; + + TBool iIsTimeoutDialogTimerStarted; + + TBool iTriggerSession; }; diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplprotocolmanager2.h --- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplprotocolmanager2.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplprotocolmanager2.h Wed Oct 13 15:01:35 2010 +0300 @@ -81,6 +81,7 @@ public MOMASuplSessionObserver, public MSuplSettingsObserver, public MOMASuplTimeOutNotifier, + public MOMASuplUISettingsObserver, public MOMASuplETelNotifierObserver, public MSuplSessionObserver { @@ -275,14 +276,39 @@ */ virtual void TerminateSession(CSuplSessionBase *aSession, TInt aErrorCode); -public: - +public: // For setting UI observer + TInt LaunchSettingsUI(MOMASuplUICompletionObserver* aObserver,const TDesC& aForHslp); + TInt LaunchSuplUsageSettingsUI(MOMASuplUICompletionObserver* aObserver, TBool aRoaming); + TInt LaunchSuplDialogTimeoutUI(MOMASuplUICompletionObserver* aObserver ); void UpdateAllSubSessnsInSameSession(TInt aIpcSessionId); void SettingsChanged(); - - + TInt GetLastUsedAccessPoint(TDes& aLastlyUsedAccessPoint,TUint32& iIAPId); + /** + * This callback method is used to notify the client about + * the completion of UI launch + * @param aError - Error during Launch + * @return None + */ + void SettingsUICompletedL(TInt aError); + + /** + * This callback method is used to notify the client about + * the completion of UI launch + * @param aError - Error during Launch + * @return None + */ + void SettingsUsageUICompletedL(TInt aError); + + /** + * This callback method is used to notify the client about + * the completion of UI completion + * @param aError - Error during Launch + * @return None + */ + void SettingsTimeOutUICompletedL(TInt aError); + public: //From base class MSuplSettingsObserver /** @@ -445,7 +471,13 @@ */ void ReadOMASuplSettingsL(); - + /** + * ReadSuplUsage, Reads OMA Supl Usage. + * @since S60 v3.1u + * @param None. + * @return None. + */ + void ReadSuplUsage(); /** * ReadOMASuplConfigurationL, Reads OMA Supl Configuration. @@ -471,7 +503,7 @@ TInt GetNetworkModeL(); - + void CheckOutstandingUsageUIRequestsL(); /** * LoadOMASUPLPluginsL, Loads supl protocolhandler plugins diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsession2.h --- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsession2.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsession2.h Wed Oct 13 15:01:35 2010 +0300 @@ -97,6 +97,7 @@ class COMASuplSession : public CSuplSessionBase, public MOMASuplConnObserver, + public MOMASuplUICompletionObserver, public MCompleteSelfRequest, public MOMASuplMsgStateObserver, public MOMASuplObserver, @@ -215,7 +216,27 @@ */ void GetPositionCompleteL(TInt aError); - + /** + * This callback method is used to notify the client about + * the completion of UI launch + * @param aError - Error during Launch + * @return None + */ + void SettingsUICompletedL(TInt aError); + + /** + * This callback method is used to notify the client about + * the completion of UI + * @return None + */ + void SettingsUsageUICompletedL(TInt aError); + + /** + * This callback method is used to notify the client about + * the completion of UI + * @return None + */ + void SettingsTimeOutUICompletedL(TInt aError); public: /** @@ -362,6 +383,13 @@ */ TInt SuplIpcSessionID(); + /** + * UpdateSuplUsage Method. Updates SUPL usage + * @since S60 v3.2 + * @param None + * @return None + */ + void UpdateSuplUsage(); /** * SettingsChanged Method. Updates flag to indicate that @@ -1004,8 +1032,10 @@ */ virtual void DialogTimerExpiredL(); public: // Usage dialog - - + void SetSuplUsageFlag(); + void ReSetSuplUsageFlag(); + TBool GetSuplUsageFlag(); + void StartUsageDialogLaunchL(); TBool IsEtelNotifySet(); TBool IsEtelRoamingSet(); TUint GetPortNumUsed(); diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsettings.h --- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsettings.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsettings.h Wed Oct 13 15:01:35 2010 +0300 @@ -90,7 +90,13 @@ */ void SetIAPId(TInt aIAPId); - + /** + * SetSUPLUsage Method. + * @since S60 v3.2 + * @param aSUPLUsage + * @return None + */ + void SetSUPLUsage(CSuplSettings::TSuplSettingsUsage& aSUPLUsage ); /** * SetUIActive Method. @@ -125,7 +131,13 @@ */ TInt IAPId() const; - + /** + * SUPL Usage Method. + * @since S60 v3.2 + * @param None + * @return SUPL Usage + */ + CSuplSettings::TSuplSettingsUsage SUPLUsage() const; /** * IAPId Method. @@ -153,7 +165,8 @@ // IAP Id TInt iIAPId; - + // SUPL Usage + CSuplSettings::TSuplSettingsUsage iSUPLUsage; // Flag indicating the activation of settings UI TBool iSettingsUIActive; }; diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplstate.h --- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplstate.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplstate.h Wed Oct 13 15:01:35 2010 +0300 @@ -25,6 +25,8 @@ #define PRINT_MESSAGE #endif +//#undef PRINT_MESSAGE + /** MOMASuplMsgStateObserver Notifies about complaetion of operation with or without error. * @lib eposomasuplprotocolhandler.lib diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplconnrequestor.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplconnrequestor.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplconnrequestor.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -47,8 +47,11 @@ iCommMgr(aCommMgr), iProtocolManager(aProtoMgr), iPort(aPort), - iObserver( aObserver), - iTriggerSession(EFalse) + iObserver( aObserver), + iIapDialogShown(EFalse), + iIapDlgTimerExpired(EFalse), + iIsTimeoutDialogTimerStarted(EFalse), + iTriggerSession(EFalse) { } @@ -75,7 +78,7 @@ iCurrentSLPId = KErrNotFound; - + iDialogTimer = COMASuplDialogTimer::NewL(*this); } // ----------------------------------------------------------------------------- @@ -105,8 +108,13 @@ COMASuplConnRequestor::~COMASuplConnRequestor() { Cancel(); - - delete iSuplSettings; + if(iDialogTimer) + { + iDialogTimer->Cancel(); + delete iDialogTimer; + iDialogTimer = NULL; + } + delete iSuplSettings; delete iTrace; delete iFallBackHandler; } @@ -147,14 +155,27 @@ buffer.Copy(_L("No access point configured for ")); buffer.Append(iHostAddress); iTrace->Trace(buffer,KTraceFileName, __LINE__); - buffer.Copy(_L("Calling CreateConnection with no IAP")); - iTrace->Trace(buffer,KTraceFileName, __LINE__); - iConnection = iCommMgr.CreateConnectionL(iHostAddress,iTls,iPskTls,iPort,-1); - OpenConnection(); + if( isIapDialogShown ) + { + TInt err = iProtocolManager.LaunchSettingsUI(this,iHostAddress); + if(err != KErrNone) + { + buffer.Copy(_L("Error in launching UI : ")); + buffer.AppendNum(err); + iTrace->Trace(buffer,KTraceFileName, __LINE__); + iHostAddress.Zero(); + iObserver.OperationCompleteL(err); + } + else + iIapDialogShown = ETrue; + } + } else { + iIsTimeoutDialogTimerStarted = EFalse; + iDialogTimer->Cancel(); buffer.Copy(_L("Connecting to ")); buffer.Append(iHostAddress); iTrace->Trace(buffer,KTraceFileName, __LINE__); @@ -174,8 +195,11 @@ // COMASuplConnRequestor::OpenConnection // ----------------------------------------------------------------------------- // -void COMASuplConnRequestor::CreateConnectionL(TInt /*aDialogTimeOutDelay*/, TBool aTriggerSession) +void COMASuplConnRequestor::CreateConnectionL(TInt aDialogTimeOutDelay, TBool aTriggerSession) { + iIsTimeoutDialogTimerStarted = ETrue; + + iDialogTimer->StartTimer(aDialogTimeOutDelay); CreateConnectionL(aTriggerSession); } // ----------------------------------------------------------------------------- @@ -452,7 +476,57 @@ return result; } +// ----------------------------------------------------------------------------- +// COMASuplConnRequestor::SettingsUICompleted +// +// ----------------------------------------------------------------------------- +void COMASuplConnRequestor::SettingsUICompletedL(TInt aError) + { + TBuf<128> buffer(_L("COMASuplConnRequestor:SettingsUICompleted Error: ")); + buffer.AppendNum(aError); + iTrace->Trace(buffer,KTraceFileName, __LINE__); + + if (iIsTimeoutDialogTimerStarted) + { + iTrace->Trace(_L("COMASuplSession::SettingsUICompleted, stopping timer "), KTraceFileName, __LINE__); + iIsTimeoutDialogTimerStarted = EFalse; + iDialogTimer->StopTimer(); + } + if (iIapDlgTimerExpired) + { + iIapDlgTimerExpired = EFalse; + iIapDialogShown = EFalse; + iProtocolManager.LaunchSuplDialogTimeoutUI(this); + iObserver.OperationCompleteL(KErrNone); + return; + } + if(aError == KErrNone) + { + TBuf<100> IapName; + TInt err = iProtocolManager.GetLastUsedAccessPoint(IapName,iIAPId); + if(err == KErrNone) + { + buffer.Copy(_L("Connecting to ")); + buffer.Append(iHostAddress); + buffer.Append(_L(" using IAP ")); + buffer.Append(IapName); + iTrace->Trace(buffer,KTraceFileName, __LINE__); + iConnection = iCommMgr.CreateConnectionL(iHostAddress,iTls,iPskTls,iPort,iIAPId); + SaveAccessPoint(IapName); + OpenConnection(); + } + else + { + iObserver.OperationCompleteL(err); + } + } + else + { + iObserver.OperationCompleteL(aError); + } + + } // ----------------------------------------------------------------------------- // COMASuplConnRequestor::SaveAccessPoint @@ -520,13 +594,25 @@ iFallBackHandler->UpdateSLPListForHomeUsage(aHomeNetwork); } +// ----------------------------------------------------------------------------- +// COMASuplConnRequestor::DialogTimerExpiredL +// Checks whether UI is displayed or not previously +// +// ----------------------------------------------------------------------------- +void COMASuplConnRequestor::DialogTimerExpiredL() +{ + iTrace->Trace(_L("COMASuplConnRequestor:Timer Expired for SUPL IAP Dialog"), KTraceFileName, __LINE__); + + if (!iIapDialogShown) + iProtocolManager.LaunchSuplDialogTimeoutUI(this); + else + iIapDlgTimerExpired = ETrue; + return; +} TUint COMASuplConnRequestor::GetPortNumber() { - if(iConnection) - return iConnection->GetPortNumberUsed(); - else - return 0; + return iConnection->GetPortNumberUsed(); } diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasupletel.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasupletel.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasupletel.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -12,7 +12,7 @@ * Contributors: * * Description: Implementation of COMASuplEtel Class -* Version : %version: 3.1.1 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: 3 % << Don't touch! Updated by Synergy at check-out. * */ @@ -520,7 +520,7 @@ for(TInt k = 0; k < KOMASUPLMaxTimeSlotIscpAmount; k++ ) { - iOMASuplwcdmaCellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k] = iCustomWCDMACellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k]; + iOMASuplwcdmaCellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k] = iOMASuplwcdmaCellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k]; } } diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplinitstate.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplinitstate.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplinitstate.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -383,8 +383,8 @@ // what decision the GSM Network will make if the user won't answer before // a timeout comes in from GSM Network. In this case verification will // be rejected. - TRAP_IGNORE(iNetworkPrivacy->VerifyLocationRequestL(*suplReqInfo, - iGSMRequestId, *this, aTimeOutStrategy);) + iNetworkPrivacy->VerifyLocationRequestL(*suplReqInfo, + iGSMRequestId, *this, aTimeOutStrategy); TBuf<64> msg; msg.Copy(_L("Privacy Fw Generated Verification Request id : ")); msg.AppendNum(iGSMRequestId); diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplprotocolmanager2.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplprotocolmanager2.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplprotocolmanager2.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -104,7 +104,10 @@ // Destructor. EXPORT_C COMASUPLProtocolManager2::~COMASUPLProtocolManager2() { - + if(iSettingsLauncher) + { + iSettingsLauncher->CancelLaunch(); + } if(iSuplSettings) { @@ -133,7 +136,7 @@ } delete iSuplStorageSettings; - + delete iSettingsLauncher; delete iNotifier; iMobilePhone.Close(); iTelServer.Close(); @@ -166,7 +169,7 @@ iSuplStorageSettings->SetObserverL(*this); iSuplStorageSettings->SetSessionObserverL(*this); - + iSettingsLauncher = COMASuplSettingsLauncher::NewL( *this ); TRAPD(err,iOMASuplAsnHandlerBaseImpl = COMASuplAsnHandlerBase::NewL(2);) TBuf<64> buf(_L("ASN Plugin 2.0 loaded with error : ")); @@ -254,7 +257,7 @@ //Connect to ETel User::LeaveIfError(ConnectToETelL()); - + ReadSuplUsage(); if(iSuplEcomEventWatcher) { @@ -1248,7 +1251,7 @@ if( aEvent == MSuplSettingsObserver::ESuplSettingsEventSuplUsageChange) { iTrace->Trace(_L("Setting Changed.SUPL Usage changed.. Reeading once again..."), KTraceFileName, __LINE__); - + ReadSuplUsage(); } else if( aEvent == MSuplSettingsObserver::ESuplSettingsEventCommParameterChange) { @@ -1257,9 +1260,6 @@ } } - - - // ----------------------------------------------------------------------------- // COMASUPLProtocolManager2::LogPacket // Logs @@ -1742,6 +1742,72 @@ } +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager2::LaunchSettingsUI +// +// +// ----------------------------------------------------------------------------- +// +TInt COMASUPLProtocolManager2::LaunchSettingsUI(MOMASuplUICompletionObserver* aObserver,const TDesC& aForHslp) + { + iTrace->Trace(_L("COMASUPLProtocolManager2::LaunchSettingsUI"), KTraceFileName, __LINE__); + + if (iSuplSettings->IsUIActive()) + return KErrInUse; + iSessnUIObserver = aObserver; + iSuplSettings->SetUIActive(ETrue); + + if(iUIRequestArray.Count() <= 0 ) + { + iTrace->Trace(_L("COMASUPLProtocolManager2::LaunchSettingsUI"), KTraceFileName, __LINE__); + iUIRequestArray.Append(aObserver); + iSuplSettings->SetUIActive(ETrue); + iCurrentlyUsedHslp.Copy(aForHslp); + return iSettingsLauncher->LaunchSettings(); + } + else if(iCurrentlyUsedHslp.Compare(aForHslp) == KErrNone) + { + iUIRequestArray.Append(aObserver); + } + else + { + return KErrInUse; + } + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager2::SettingsUICompletedL +// +// +// ----------------------------------------------------------------------------- +// +void COMASUPLProtocolManager2::SettingsUICompletedL(TInt aError) + { + iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUICompletedL"), KTraceFileName, __LINE__); + iSuplSettings->SetUIActive(EFalse); + + if (iDeInitDone) + { + iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUICompletedL, de-init done. Completing request"), KTraceFileName, __LINE__); + iDeInitDone = EFalse; + User::RequestComplete(iDeInitRequestStatus,KErrNone); + } + else + { + for(TInt i = 0; i < iUIRequestArray.Count(); i++) + { + iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUICompletedL,Forwarding ConnRerquestor "), KTraceFileName, __LINE__); + MOMASuplUICompletionObserver* observer = iUIRequestArray[i]; + observer->SettingsUICompletedL(aError); + } + } + + iCurrentlyUsedHslp.Copy(_L("")); + iUIRequestArray.Reset(); + } + // ----------------------------------------------------------------------------- // COMASUPLProtocolManager2::DeInitialize @@ -1798,10 +1864,73 @@ return networkMode; } +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager2::LaunchSuplUsageSettingsUI +// +// +// ----------------------------------------------------------------------------- +// +TInt COMASUPLProtocolManager2::LaunchSuplUsageSettingsUI(MOMASuplUICompletionObserver* aObserver, TBool aRoaming) + { + iTrace->Trace(_L("COMASUPLProtocolManager2::LaunchSuplUsageSettingsUI"), KTraceFileName, __LINE__); + if (iSuplSettings->IsUIActive() && !iTimeOutDialogPresent) + return KErrInUse; + // If timeout dialog is present, close it + if (iTimeOutDialogPresent) + { + iTimeOutDialogPresent = EFalse; + iSuplSettings->SetUIActive(EFalse); + iSettingsLauncher->Cancel(); + } + iSessnUIObserver = aObserver; + iSuplSettings->SetUIActive(ETrue); + return iSettingsLauncher->LaunchSuplUsageSettingsUI(aRoaming); + } +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager2::SettingsUsageUICompletedL +// +// +// ----------------------------------------------------------------------------- +// +void COMASUPLProtocolManager2::SettingsUsageUICompletedL(TInt aError) + { + iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUsageUICompletedL"), KTraceFileName, __LINE__); + iSuplSettings->SetUIActive(EFalse); + if (iDeInitDone) + { + iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUsageUICompletedL, de-init done. Completing request"), KTraceFileName, __LINE__); + iDeInitDone = EFalse; + User::RequestComplete(iDeInitRequestStatus,KErrNone); + } + else + { + if (iSessnUIObserver) + iSessnUIObserver->SettingsUsageUICompletedL(aError); + } + CheckOutstandingUsageUIRequestsL(); + } + +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager2::ReadSuplUsage +// Reads Supl Usage from Central Repository +// +// ----------------------------------------------------------------------------- +// +void COMASUPLProtocolManager2::ReadSuplUsage() + { + iTrace->Trace(_L("COMASUPLProtocolManager2::ReadSuplUsage start"), KTraceFileName, __LINE__); + CSuplSettings::TSuplSettingsUsage suplUsage; + TInt err = iSuplStorageSettings->GetSuplUsage(suplUsage); + if(err == KErrNone ) + { + iSuplSettings->SetSUPLUsage(suplUsage); + } + iTrace->Trace(_L("COMASUPLProtocolManager2::ReadSuplUsage end"), KTraceFileName, __LINE__); + } void COMASUPLProtocolManager2::UpdateAllSubSessnsInSameSession(TInt aIpcSessionId) { @@ -1813,6 +1942,8 @@ OMAsuplSession = static_cast(iSuplSessions[cnt]); TInt ipcSessnId = OMAsuplSession->SuplIpcSessionID(); + if (ipcSessnId > 0 && ipcSessnId == aIpcSessionId) + OMAsuplSession->UpdateSuplUsage(); } } @@ -1828,7 +1959,23 @@ OMAsuplSession->SettingsChanged(); } } - + +void COMASUPLProtocolManager2::CheckOutstandingUsageUIRequestsL() + { + TInt TotalSession = iSuplSessions.Count(); + COMASuplSession* OMAsuplSession = NULL; + + for(TInt cnt = 0; cnt < TotalSession; ++cnt) + { + OMAsuplSession = static_cast(iSuplSessions[cnt]); + + if (OMAsuplSession->GetSuplUsageFlag()) + { + OMAsuplSession->StartUsageDialogLaunchL(); + break; + } + } + } void COMASUPLProtocolManager2::CheckForRoaming() { @@ -1908,7 +2055,63 @@ } } +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager2::LaunchSuplDialogTimeoutUI +// +// +// ----------------------------------------------------------------------------- +// +TInt COMASUPLProtocolManager2::LaunchSuplDialogTimeoutUI(MOMASuplUICompletionObserver* aObserver ) + { + iTrace->Trace(_L("COMASUPLProtocolManager2::LaunchTimeOutUI"), KTraceFileName, __LINE__); + + iSessnUIObserver = aObserver; + if (iSuplSettings->IsUIActive()) + { + iSuplSettings->SetUIActive(EFalse); + iSettingsLauncher->Cancel(); + } + iSuplSettings->SetUIActive(ETrue); + iTimeOutDialogPresent = ETrue; + return iSettingsLauncher->LaunchSessionTimeOutDialog(); + } + +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager2::SettingsTimeOutUICompletedL +// +// +// ----------------------------------------------------------------------------- +// +void COMASUPLProtocolManager2::SettingsTimeOutUICompletedL(TInt aError) + { + iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsTimeOutUICompletedL"), KTraceFileName, __LINE__); + iSuplSettings->SetUIActive(EFalse); + iTimeOutDialogPresent = EFalse; + + if (iDeInitDone) + { + iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsTimeOutUICompletedL, Completing request"), KTraceFileName, __LINE__); + iDeInitDone = EFalse; + User::RequestComplete(iDeInitRequestStatus,KErrNone); + } + else + { + if (iSessnUIObserver) + iSessnUIObserver->SettingsTimeOutUICompletedL(aError); + } + } + +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager2::GetLastUsedAccessPoint +// +// +// ----------------------------------------------------------------------------- +// +TInt COMASUPLProtocolManager2::GetLastUsedAccessPoint(TDes& aLastlyUsedAccessPoint,TUint32& iIAPId) + { + return iSettingsLauncher->GetIAPName(aLastlyUsedAccessPoint,iIAPId); + } // ----------------------------------------------------------------------------- // COMASUPLProtocolManager2::PrintHex diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplsession2.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplsession2.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplsession2.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -2177,7 +2177,15 @@ iTrace->Trace(msg,KTraceFileName, __LINE__); } - + CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage(); + + if (usage == CSuplSettings::ESuplUsageDisabled) + { + msg.Copy(_L("SUPL Usage is disabled")); + iTrace->Trace(msg,KTraceFileName, __LINE__); + iSessionObserver.TerminateSession(this, KErrGeneral); + return; + } COMASuplAsnMessageBase::TSuplMessageType messageType = aDecodedAsnMessage->MessageType(); @@ -4344,6 +4352,17 @@ } +// ----------------------------------------------------------------------------- +// COMASuplSession::SettingsUICompleted +// +// ----------------------------------------------------------------------------- + +void COMASuplSession::SettingsUICompletedL(TInt /*aError*/) + { + iTrace->Trace(_L("COMASuplSession::SettingsUICompleted ..."), KTraceFileName, __LINE__); + + } + // ----------------------------------------------------------------------------- // COMASuplSession::HandleInvalidMessageL @@ -4675,7 +4694,57 @@ OperationCompleteL(KErrTimedOut); } - +// ----------------------------------------------------------------------------- +// COMASuplSession::SettingsUsageUICompletedL +// +// ----------------------------------------------------------------------------- +void COMASuplSession::SettingsUsageUICompletedL(TInt aError) + { + iUIFlag = EFalse; + TBuf<64> msg; + msg.Copy(_L("SUPL Usage UI completed with ... ")); + msg.AppendNum(aError); + iTrace->Trace(msg,KTraceFileName, __LINE__); + + iPrevUsageResult = aError; + + + + if (aError == KErrNone) + { + iProtocolManager.UpdateAllSubSessnsInSameSession(iIpcSessionId); + + if (isTimeoutDialogTimerStarted) + { + iTrace->Trace(_L("COMASuplSession::SettingsUsageUICompletedL, stopping timer "), KTraceFileName, __LINE__); + isTimeoutDialogTimerStarted = EFalse; + iDialogTimer->StopTimer(); + + //Compute how log the dialog was on + TTime nowTime; + nowTime.HomeTime(); + nowTime.SecondsFrom(iDlgStartTime, iDiffTime); + } + if (iNwInitError) + { + iNwInitError = EFalse; + HandleSuplInitErrorL(iNwInitCompletionCode); + } + else + InitializeL(iRequestID); + } + else if (aError == KErrCompletion) + CheckForSuplUsageL(); + else + { + TBuf<64> msg; + msg.Copy(_L("Error after SUPL Usage Popup... ")); + msg.AppendNum(aError); + iTrace->Trace(msg,KTraceFileName, __LINE__); + iSessionObserver.TerminateSession(this, KErrGeneral); + return; + } + } // ----------------------------------------------------------------------------- // COMASuplSession::CheckForSuplUsageL @@ -4684,24 +4753,42 @@ void COMASuplSession::CheckForSuplUsageL() { iTrace->Trace(_L("COMASuplSession::CheckForSuplUsageL Start"), KTraceFileName, __LINE__); - + + if (iSuplUsage >= 1) + { + CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage(); + if (usage == CSuplSettings::ESuplUsageDisabled) + { + iTrace->Trace(_L("CheckForSuplUsageL, SUPL disabled"), KTraceFileName, __LINE__); + iSessionObserver.TerminateSession(this, KErrGeneral); + } + else if (usage == CSuplSettings::ESuplUsageAutomatic) + { if (iNwInitError) { iNwInitError = EFalse; HandleSuplInitErrorL(iNwInitCompletionCode); } else - { - if (iRoaming) - HandleRoamingCheckCompleteL(KErrNone, EFalse); - else - { - iEtelRoamingCheck = ETrue; - iProtocolManager.CheckForRoaming(); - } - - } - + { + iTrace->Trace(_L("CheckForSuplUsageL, Initializing"), KTraceFileName, __LINE__); + InitializeL(iRequestID); + } + } + + else if (usage == CSuplSettings::ESuplUsageHomeAutomatic || usage == CSuplSettings::ESuplUsageAlwaysAsk) + { + if (iRoaming) + HandleRoamingCheckCompleteL(KErrNone, EFalse); + else + { + iEtelRoamingCheck = ETrue; + iProtocolManager.CheckForRoaming(); + } + } + } + else + InitializeL(iRequestID); } @@ -4784,10 +4871,80 @@ { iUsageHomeNW = aHomeNw; iConnRequestor->UpdateSLPListForHomeUsage(iUsageHomeNW); - - - + CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage(); + + if (usage == CSuplSettings::ESuplUsageAlwaysAsk) + { + TInt err; + if (!aHomeNw) + { + iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__); + err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue); + } + else + { + iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is not roaming"), KTraceFileName, __LINE__); + err = iProtocolManager.LaunchSuplUsageSettingsUI(this, EFalse); + } + + if(KErrNone != err && KErrInUse == err) + { + iTrace->Trace(_L("Dialog in use, setting flag"), KTraceFileName, __LINE__); + SetSuplUsageFlag(); + } + if( KErrNone == err && iRequestType == ESUPL_NETWORK ) + { + iTrace->Trace(_L("Network Session , starting timer"), KTraceFileName, __LINE__); + COMASuplInit* suplInit = static_cast (iDecodedAsnMessage); + TOMASuplQop qop; + TInt retVal = suplInit->Qop(qop); + TInt delay; + qop.Delay(delay); + //if delay is > 7, it is not valid + if (delay > 7) + delay = 0; + if(retVal == KErrNone && delay > 0) { + TReal delayReal; + Math::Pow(delayReal, 2, (TReal)delay); + delay = (TInt) delayReal; + TBuf<128> msg(_L("Delay present in message, value is = ")); + msg.AppendNum(delay); + iTrace->Trace(msg, KTraceFileName, __LINE__); + isTimeoutDialogTimerStarted = ETrue; + iDialogTimer->StartTimer(delay); + } + else + { + if (iSuplInitTimeOut > 0) + { + TBuf<256> msg(_L("Delay value in CR is")); + msg.AppendNum(iSuplInitTimeOut); + iTrace->Trace(msg, KTraceFileName, __LINE__); + iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond); + isTimeoutDialogTimerStarted = ETrue; + } + else + iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__); + } + iDlgStartTime.HomeTime(); + } + else if (KErrNone != err) + { + iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__); + HandleSuplErrorL(err); + } + + } + else if (usage == CSuplSettings::ESuplUsageHomeAutomatic) + { + if (!aHomeNw) + { + TInt err; + //if (!iSuplSettings->IsUIActive() ) + { + iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__); + err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue); if(iSuplMsgType == ESUPL_INIT) { @@ -4826,15 +4983,27 @@ } - + if(!iSuplSettings->IsUIActive() && KErrNone != err) + { + SetSuplUsageFlag(); + } + else + { + iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__); + HandleSuplErrorL(err); + } + } + else + { if (iNwInitError) { iNwInitError = EFalse; HandleSuplInitErrorL(iNwInitCompletionCode); } else - InitializeL(iRequestID); - + InitializeL(iRequestID); + } + } } else { @@ -4844,7 +5013,12 @@ TInt COMASuplSession::SuplIpcSessionID() { return iIpcSessionId; - } + } + +void COMASuplSession::UpdateSuplUsage() + { + iPrevUsageResult = KErrNone; + } void COMASuplSession::SettingsChanged() { @@ -4883,9 +5057,189 @@ iIapNotifier->NotifyIapSettingsChange(); } } - } - - + } +void COMASuplSession::SetSuplUsageFlag() + { + iUsageDialog = ETrue; + } + +void COMASuplSession::ReSetSuplUsageFlag() + { + iUsageDialog = EFalse; + } + +TBool COMASuplSession::GetSuplUsageFlag() + { + return iUsageDialog; + } + +void COMASuplSession::StartUsageDialogLaunchL() + { + iTrace->Trace(_L("COMASuplSession::StartUsageDialogLaunchL"), KTraceFileName, __LINE__); + ReSetSuplUsageFlag(); + iTrace->Trace(_L("COMASuplSession::StartUsageDialogLaunchL, flag reset done"), KTraceFileName, __LINE__); + + CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage(); + if (usage == CSuplSettings::ESuplUsageAlwaysAsk) + { + TInt err; + if (!iUsageHomeNW) + { + iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__); + err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue); + + if(iRequestType == ESUPL_NETWORK && err == KErrNone) + { + iTrace->Trace(_L("starting Dialog timer "), KTraceFileName, __LINE__); + + COMASuplInit* suplInit = static_cast (iDecodedAsnMessage); + TOMASuplQop qop; + TInt retVal = suplInit->Qop(qop); + TInt delay; + qop.Delay(delay); + //if delay is > 7, it is not valid + if (delay > 7) + delay = 0; + if(retVal == KErrNone && delay > 0) + { + TReal delayReal; + Math::Pow(delayReal, 2, (TReal)delay); + delay = (TInt) delayReal; + TBuf<128> msg(_L("Delay present in message, value is = ")); + msg.AppendNum(delay); + iTrace->Trace(msg, KTraceFileName, __LINE__); + isTimeoutDialogTimerStarted = ETrue; + iDialogTimer->StartTimer(delay); + } + else + { + if (iSuplInitTimeOut > 0) + { + iTrace->Trace(_L("Delay not present in message"), KTraceFileName, __LINE__); + TBuf<256> msg(_L("Delay value in CR is ")); + msg.AppendNum(iSuplInitTimeOut); + iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond); + isTimeoutDialogTimerStarted = ETrue; + } + else + iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__); + } + } + } + else + { + iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is not roaming"), KTraceFileName, __LINE__); + err = iProtocolManager.LaunchSuplUsageSettingsUI(this, EFalse); + + if( iRequestType == ESUPL_NETWORK && err == KErrNone) + { + iTrace->Trace(_L("starting Dialog timer "), KTraceFileName, __LINE__); + + COMASuplInit* suplInit = static_cast (iDecodedAsnMessage); + TOMASuplQop qop; + TInt retVal = suplInit->Qop(qop); + TInt delay; + qop.Delay(delay); + //if delay is > 7, it is not valid + if (delay > 7) + delay = 0; + if(retVal == KErrNone && delay > 0) + { + TReal delayReal; + Math::Pow(delayReal, 2, (TReal)delay); + delay = (TInt) delayReal; + TBuf<128> msg(_L("Delay present in message, value is = ")); + msg.AppendNum(delay); + iTrace->Trace(msg, KTraceFileName, __LINE__); + isTimeoutDialogTimerStarted = ETrue; + iDialogTimer->StartTimer(delay); + } + else + { + if (iSuplInitTimeOut > 0) + { + iTrace->Trace(_L("Delay not present in message"), KTraceFileName, __LINE__); + TBuf<256> msg(_L("Delay value in CR is")); + msg.AppendNum(iSuplInitTimeOut); + iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond); + isTimeoutDialogTimerStarted = ETrue; + } + else + iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__); + } + } + } + + if(KErrNone != err) + { + iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__); + HandleSuplErrorL(err); + } + } + else if (usage == CSuplSettings::ESuplUsageHomeAutomatic) + { + if (!iUsageHomeNW) + { + TInt err; + iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__); + err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue); + + if(KErrNone != err) + { + iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__); + HandleSuplErrorL(err); + } + + if(iRequestType == ESUPL_NETWORK && err == KErrNone) + { + iTrace->Trace(_L("starting Dialog timer "), KTraceFileName, __LINE__); + + COMASuplInit* suplInit = static_cast (iDecodedAsnMessage); + TOMASuplQop qop; + TInt retVal = suplInit->Qop(qop); + TInt delay; + qop.Delay(delay); + //if delay is > 7, it is not valid + if (delay > 7) + delay = 0; + if(retVal == KErrNone && delay > 0) + { + TReal delayReal; + Math::Pow(delayReal, 2, (TReal)delay); + delay = (TInt) delayReal; + TBuf<128> msg(_L("Delay present in message, value is = ")); + msg.AppendNum(delay); + iTrace->Trace(msg, KTraceFileName, __LINE__); + isTimeoutDialogTimerStarted = ETrue; + iDialogTimer->StartTimer(delay); + } + else + { + if (iSuplInitTimeOut > 0) + { + iTrace->Trace(_L("Delay not present in message"), KTraceFileName, __LINE__); + TBuf<256> msg(_L("Delay value in CR is")); + msg.AppendNum(iSuplInitTimeOut); + iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond); + isTimeoutDialogTimerStarted = ETrue; + } + else + iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__); + } + } + } + else + { + if (iNwInitError) + { + iNwInitError = EFalse; + HandleSuplInitErrorL(iNwInitCompletionCode); + } + else + InitializeL(iRequestID); + } + } + } TBool COMASuplSession::IsEtelNotifySet() { @@ -4925,12 +5279,30 @@ iTrace->Trace(_L("Timer Expired for SUPL Dialog"), KTraceFileName, __LINE__); - + if (!iIapDialogShown) + iProtocolManager.LaunchSuplDialogTimeoutUI(this); + else + iIapDlgTimerExpired = ETrue; } return; } +// ----------------------------------------------------------------------------- +// COMASuplSession::SettingsTimeOutUICompletedL +// +// ----------------------------------------------------------------------------- +void COMASuplSession::SettingsTimeOutUICompletedL(TInt aError) + { + + TBuf<64> msg; + msg.Copy(_L("SUPL Timeout UI completed with ... ")); + msg.AppendNum(aError); + iTrace->Trace(msg,KTraceFileName, __LINE__); + iSessionObserver.TerminateSession(this, KErrGeneral); + return; + + } // ----------------------------------------------------------------------------- // COMASuplSession::StoreCurrentCellIDL @@ -5306,7 +5678,7 @@ //Inform UI that ,trigger session has started... InsertActiveSessionL(); TInt privacyId; - TRAP_IGNORE(iNetworkPrivacy->NotifyLocationRequestL(*iSuplReqInfo, privacyId); ) + iNetworkPrivacy->NotifyLocationRequestL(*iSuplReqInfo, privacyId); iTrace->Trace(_L(" Calling InsertActiveSessionL"), KTraceFileName, __LINE__); } @@ -5343,7 +5715,7 @@ - TRAP_IGNORE(iNetworkPrivacy->NotifyLocationRequestL(*iSuplReqInfo, iRequestorId);) + iNetworkPrivacy->NotifyLocationRequestL(*iSuplReqInfo, iRequestorId); } diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplsettings.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplsettings.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplsettings.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -125,7 +125,27 @@ return iIAPId; } +// ----------------------------------------------------------------------------- +// COMASuplSettings::SetSUPLUsage +// Sets the SUPL Usage +// +// ----------------------------------------------------------------------------- +// +void COMASuplSettings::SetSUPLUsage(CSuplSettings::TSuplSettingsUsage& aSUPLUsage ) +{ + iSUPLUsage = aSUPLUsage; +} +// ----------------------------------------------------------------------------- +// COMASuplSettings::SUPLUsage() +// Gets the SUPL Usage +// +// ----------------------------------------------------------------------------- +// +CSuplSettings::TSuplSettingsUsage COMASuplSettings::SUPLUsage() const + { + return iSUPLUsage; + } // ----------------------------------------------------------------------------- diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/rom/omasuplprotocolhandler.iby --- a/supl/locationomasuplprotocolhandler/rom/omasuplprotocolhandler.iby Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/rom/omasuplprotocolhandler.iby Wed Oct 13 15:01:35 2010 +0300 @@ -64,7 +64,9 @@ ECOM_PLUGIN(epos_omasuplsyncmldm.dll,epos_omasuplsyncmldm.rsc) #endif // __SYNCML_DM - +// Notifier +ECOM_PLUGIN(epos_omasuplnotifierplugin.dll,epos_omasuplnotifierplugin.rsc) +file=ABI_DIR\BUILD_DIR\epos_omasuplnotifier.dll SHARED_LIB_DIR\epos_omasuplnotifier.dll // Storage Db Backup Registration File data=DATAZ_\private\1027509E\backup_registration.xml \private\1027509E\backup_registration.xml #endif //__OMA_SUPL_PLUGINS diff -r 10852b179f64 -r ea98413ce11f supl/locationomasuplprotocolhandler/rom/omasuplprotocolhandler_resource.iby --- a/supl/locationomasuplprotocolhandler/rom/omasuplprotocolhandler_resource.iby Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/rom/omasuplprotocolhandler_resource.iby Wed Oct 13 15:01:35 2010 +0300 @@ -28,8 +28,8 @@ #ifdef __OMA_SUPL_PLUGINS - - +//Resource file for notifier +data=DATAZ_\resource\epos_omasuplnotifier.rsc resource\epos_omasuplnotifier.rsc #endif //__OMA_SUPL_PLUGINS #endif // OMASUPLPROTOCOLHANDLER_RESOURCE_IBY diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/conf/suplsettings.confml Binary file supl/locationsuplfw/conf/suplsettings.confml has changed diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/conf/suplsettings_102073D6.crml Binary file supl/locationsuplfw/conf/suplsettings_102073D6.crml has changed diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/gateway/inc/epos_csuplipcsubsession.h --- a/supl/locationsuplfw/gateway/inc/epos_csuplipcsubsession.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/gateway/inc/epos_csuplipcsubsession.h Wed Oct 13 15:01:35 2010 +0300 @@ -126,19 +126,11 @@ void HandlePeriodicTriggerSessionWithServernameL(const RMessage2& aMessage); void HandleStopTriggerringSessionL(const RMessage2& aMessage); void HandleNotifyTriggerFiredL(const RMessage2& aMessage); - /* - * For GeoTagging - */ - void HandleLocationConversionL(const RMessage2& aMessage); - void HandleCancelLocationConversionL(const RMessage2& aMessage); private: // Data - // Supl session handle.Ownership is with this object CSuplSessionBase* iSuplSession; - // Supl session request object.Ownership is with this object CSuplSessionRequest* iSuplSessnReq; RMessage2 iMessage; - // Position buffer.Ownership is with this object HBufC8* iPositionBuffer; TInt iReqType; RSuplTerminalSubSession::TSuplServiceType iSuplService; diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/gateway/inc/epos_csuplsessionmanager.h --- a/supl/locationsuplfw/gateway/inc/epos_csuplsessionmanager.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/gateway/inc/epos_csuplsessionmanager.h Wed Oct 13 15:01:35 2010 +0300 @@ -25,7 +25,6 @@ #include #include #include -#include #include "epos_csuplecomeventwatcher.h" #include "epos_csuplsessionretryq.h" #include "epos_csuplcommunicationmanager.h" @@ -96,12 +95,6 @@ // from MSuplConnectionMonitor void ConnectionOpened(); void ConnectionClosed(); - - void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn, - TGeoCellInfo& aCellInfo, - TRequestStatus& aStatus - ); - void CancelLocationConversionRequest(CSuplSessionBase *aSessn); private: diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/gateway/inc/epos_csuplsessionrequest.h --- a/supl/locationsuplfw/gateway/inc/epos_csuplsessionrequest.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/gateway/inc/epos_csuplsessionrequest.h Wed Oct 13 15:01:35 2010 +0300 @@ -27,7 +27,6 @@ #include #include #include -#include "epos_suplgeocellinfo.h" // CONSTANT DECLARATIONS @@ -102,10 +101,6 @@ void CancelTriggerringRequest(); void ProtocolHUnloaded(); - - void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,TGeoCellInfo& aCellInfo ); - - void CancelLocationConversionRequest(); void ReIssueRequestL(); protected: // From CActive @@ -139,9 +134,7 @@ ESuplStopTriggerRequest, ESuplTriggerFiredNotifyRequest, ESuplWaitingToRetrySession, - ESuplRetryingSession, - ESuplLocationConversionRequest, - ESuplCancelLocationConversionRequest + ESuplRetryingSession }; TSuplRequestStage iRequestPhase; diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/gateway/src/epos_csuplipcsession.cpp --- a/supl/locationsuplfw/gateway/src/epos_csuplipcsession.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/gateway/src/epos_csuplipcsession.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -118,11 +118,7 @@ TInt dataSize = aMessage.GetDesLength(0); if(dataSize>0) { - TRAPD(err,iSuplServer.HandleNewNetSessionL(iSessionManager,aMessage)); - if(err != KErrNone) - { - RequestComplete(aMessage,err); - } + iSuplServer.HandleNewNetSessionL(iSessionManager,aMessage); } else { diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/gateway/src/epos_csuplipcsubsession.cpp --- a/supl/locationsuplfw/gateway/src/epos_csuplipcsubsession.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/gateway/src/epos_csuplipcsubsession.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -34,8 +34,6 @@ #include "epos_csuplsettings.h" #include "epos_csuplsettingsinternal.h" #include "epos_csuplsettingparams.h" -#include "epos_suplgeocellinfo.h" - // CONSTANTS //#ifdef _DEBUG @@ -228,19 +226,6 @@ HandleNotifyTriggerFiredL(aMessage); break; } - case ESuplTerminalSubssnLocationConversion: - { - iMessage=aMessage; - iReqType = ESuplTerminalSubssnLocationConversion; - HandleLocationConversionL(aMessage); - break; - } - - case ESuplTerminalSubssnCancelLocationConversion: - { - HandleCancelLocationConversionL(aMessage); - break; - } default: User::Leave(KErrNotSupported); } @@ -743,53 +728,5 @@ CleanupStack::Pop(fireInfoBuf); } - -// --------------------------------------------------------- -// CSuplIPCSubSession::HandleLocationConversionL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSuplIPCSubSession::HandleLocationConversionL(const RMessage2& aMessage) - { - DEBUG_TRACE("CSuplIPCSubSession::HandleLocationConversionL", __LINE__) - - if (iSuplSessnReq->IsActive()) - { - SuplGlobal::RequestComplete(aMessage, KErrAlreadyExists); - } - - if(iReqType==ESuplTerminalSubssnLocationConversion) - { - HBufC8* cellBuf = SuplGlobal::CopyClientBuffer8LC(aMessage,0); - - TGeoCellInfo& cellInfo = reinterpret_cast - (const_cast(*cellBuf->Ptr())); - - iSuplSessnReq->MakeLocationConversionRequestL( iSuplSession,cellInfo ); - - CleanupStack::PopAndDestroy(cellBuf); - } - - } - -// --------------------------------------------------------- -// CSuplIPCSubSession::HandleCancelLocationConversionL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSuplIPCSubSession::HandleCancelLocationConversionL(const RMessage2& aMessage) - { - DEBUG_TRACE("CSuplIPCSubSession::HandleCancelLocationConversionL", __LINE__) - - if (!iSuplSessnReq->IsActive()||(iReqType!=ESuplTerminalSubssnLocationConversion)) - { - User::Leave(KErrNotFound); - } - iSuplSessnReq->CancelLocationConversionRequest(); - SuplGlobal::RequestComplete(aMessage, KErrNone); - CompleteRunSession(KErrCancel); - } // End of File diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/gateway/src/epos_csuplserver.cpp --- a/supl/locationsuplfw/gateway/src/epos_csuplserver.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/gateway/src/epos_csuplserver.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -142,8 +142,8 @@ // Settings TInt keyValue; TInt err = KErrNone; - CRepository* repository = NULL; - TRAP(err, repository = CRepository::NewL(KCRUidSuplConfiguration)); + + CRepository* repository = CRepository::NewL(KCRUidSuplConfiguration); CleanupStack::PushL(repository); if (err != KErrNone) @@ -264,7 +264,7 @@ } //if secure id is not equal to KSuplWapSecureId or KSuplWapSecureId, then perform capability check - if ((aMessage.SecureId() != KSuplWapSecureId && aMessage.SecureId() != KNetworkGatewaySID && aMessage.SecureId() != 0x102869DF)) + if ((aMessage.SecureId() != KSuplWapSecureId && aMessage.SecureId() != KNetworkGatewaySID)) { if (!aMessage.HasCapability(ECapabilityCommDD)) { @@ -322,11 +322,8 @@ static _LIT_SECURITY_POLICY_S0(allowSuplWapPolicy, KSuplWapSecureId); TBool isSuplWap = allowSuplWapPolicy().CheckPolicy(aMessage); - static _LIT_SECURITY_POLICY_S0(allowlocationserverPolicy, 0x102869DF); - TBool islocationserver = allowlocationserverPolicy().CheckPolicy(aMessage); - - //Check if the request was made by one of the allowed processes else check for required capability - if (!isNetworkGateway && !isSuplWap && !islocationserver) + //Check if the request was made by one of the allowed processes else check for required capability + if (!isNetworkGateway && !isSuplWap ) { if (!aMessage.HasCapability(ECapabilityCommDD)) { diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/gateway/src/epos_csuplsessionmanager.cpp --- a/supl/locationsuplfw/gateway/src/epos_csuplsessionmanager.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/gateway/src/epos_csuplsessionmanager.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -30,7 +30,6 @@ #include "epos_sessionmanagerlogging.h" #include "epos_csuplsessionmanager.h" #include "epos_csuplglobal.h" -#include "epos_suplgeocellinfo.h" //#ifdef _DEBUG _LIT(KTraceFileName, "SUPL_GW::epos_csuplsessionmanager.cpp"); @@ -489,53 +488,5 @@ { iSessionRetryQ->RemoveFromQueueL(aSessionRequest); } - -// --------------------------------------------------------- -// CSuplSessionManager::MakeLocationConversionRequestL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSuplSessionManager::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn, - TGeoCellInfo& aCellInfo, - TRequestStatus& aStatus - ) - { - DEBUG_TRACE("CSuplSessionManager::MakeLocationConversionRequestL", __LINE__) - TInt err = KErrNone; - if(iProtocolMgr && aSuplSessn) - { - DEBUG_TRACE("CSuplSessionManager::MakeLocationConversionRequestL if condition true", __LINE__) - TRAP(err,iProtocolMgr->MakeLocationConversionRequestL(aSuplSessn,aCellInfo,aStatus)); - DEBUG_TRACE("CSuplSessionManager::MakeLocationConversionRequestL err", __LINE__) - if(err!=KErrNone) - { - DEBUG_TRACE("CSuplSessionManager::MakeLocationConversionRequestL err not KErrNone", __LINE__) - TRequestStatus *status = &aStatus; - User::RequestComplete(status,KErrNotReady); - } - } - else - { - TRequestStatus *status = &aStatus; - User::RequestComplete(status,KErrNotReady); - } - } - -// --------------------------------------------------------- -// CSuplSessionManager::CancelLocationConversionRequest -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSuplSessionManager::CancelLocationConversionRequest(CSuplSessionBase *aSessn) - { - DEBUG_TRACE("CSuplSessionManager::CancelLocationConversionRequest", __LINE__) - if(iProtocolMgr && aSessn) - iProtocolMgr->CancelLocationConversionRequest(aSessn); - } - - - // End of File diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/gateway/src/epos_csuplsessionrequest.cpp --- a/supl/locationsuplfw/gateway/src/epos_csuplsessionrequest.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/gateway/src/epos_csuplsessionrequest.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -97,7 +97,7 @@ CSuplSessionRequest::~CSuplSessionRequest() { DEBUG_TRACE("CSuplSessionRequest::~CSuplSessionRequest", __LINE__) - //iSessnMgr.RemoveFromQueueForReIssueRequest(*this); + iSessnMgr.RemoveFromQueueForReIssueRequest(*this); if (iParamExtendedFallback) { @@ -317,17 +317,6 @@ iNetObserver->CompleteForwardMessageL(iHandle); break; } - - case ESuplLocationConversionRequest: - case ESuplCancelLocationConversionRequest: - { - iRequestPhase = ESuplReqInactive; - iObserver->CompleteRunSession(err); - break; - } - - - default : DebugPanic(EPosSuplServerPanicRequestInconsistency); @@ -500,38 +489,8 @@ { DEBUG_TRACE("CSuplSessionRequest::CancelTriggerringRequest", __LINE__) iRequestPhase = ESuplStopTriggerRequest; - iSessnMgr.CancelTriggerringSession(iSuplSessn); - //SetActive(); - } - -// --------------------------------------------------------- -// CSuplSessionRequest::MakeLocationConversionRequestL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSuplSessionRequest::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn, - TGeoCellInfo& aCellInfo ) - { - DEBUG_TRACE("CSuplSessionRequest::MakeLocationConversionRequestL", __LINE__) - iRequestPhase = ESuplLocationConversionRequest; - iStatus = KRequestPending; - iSessnMgr.MakeLocationConversionRequestL(aSuplSessn,aCellInfo,iStatus ); - SetActive(); - } - - -// --------------------------------------------------------- -// CSuplSessionRequest::CancelLocationConversionRequest -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSuplSessionRequest::CancelLocationConversionRequest() - { - DEBUG_TRACE("CSuplSessionRequest::CancelLocationConversionRequest", __LINE__) - iRequestPhase = ESuplCancelLocationConversionRequest; - iSessnMgr.CancelLocationConversionRequest(iSuplSessn); + iSessnMgr.CancelTriggerringSession(iSuplSessn); + //SetActive(); } // End of File diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/protocolhandlerapi/bwins/epossuplprotocolhandlerpluginu.def --- a/supl/locationsuplfw/protocolhandlerapi/bwins/epossuplprotocolhandlerpluginu.def Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/protocolhandlerapi/bwins/epossuplprotocolhandlerpluginu.def Wed Oct 13 15:01:35 2010 +0300 @@ -1,27 +1,26 @@ EXPORTS - ?Connect@CSuplConnection@@QAEXAAVTRequestStatus@@HH@Z @ 1 NONAME ; void CSuplConnection::Connect(class TRequestStatus &, int, int) - ?ConstructL@CSUPLProtocolManagerBase@@UAEXABVTUid@@@Z @ 2 NONAME ; void CSUPLProtocolManagerBase::ConstructL(class TUid const &) - ??0CSUPLProtocolManagerBase@@QAE@XZ @ 3 NONAME ; CSUPLProtocolManagerBase::CSUPLProtocolManagerBase(void) - ?CancelListenToMessages@CSuplConnection@@QAEXXZ @ 4 NONAME ; void CSuplConnection::CancelListenToMessages(void) - ?ImplementationUid@CSUPLProtocolManagerBase@@QBE?AVTUid@@XZ @ 5 NONAME ; class TUid CSUPLProtocolManagerBase::ImplementationUid(void) const - ?CancelSend@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 6 NONAME ; void CSuplConnection::CancelSend(class TRequestStatus &) - ?ListenToMessages@CSuplConnection@@QAEHXZ @ 7 NONAME ; int CSuplConnection::ListenToMessages(void) - ?GetSUPLMessageVersionL@CSUPLProtocolManagerBase@@UAEHAAHABVTDesC8@@@Z @ 8 NONAME ; int CSUPLProtocolManagerBase::GetSUPLMessageVersionL(int &, class TDesC8 const &) - ?Version@CSUPLProtocolManagerBase@@QBEHXZ @ 9 NONAME ; int CSUPLProtocolManagerBase::Version(void) const - ??1CSuplCommunicationManager@@UAE@XZ @ 10 NONAME ; CSuplCommunicationManager::~CSuplCommunicationManager(void) - ?Connect@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 11 NONAME ; void CSuplConnection::Connect(class TRequestStatus &) - ?GetPortNumberUsed@CSuplConnection@@QAEHXZ @ 12 NONAME ; int CSuplConnection::GetPortNumberUsed(void) - ?Initialize@CSuplCommunicationManager@@QAEHXZ @ 13 NONAME ; int CSuplCommunicationManager::Initialize(void) - ?GetLocalIPAddress@CSuplConnection@@QAEHAAVTInetAddr@@@Z @ 14 NONAME ; int CSuplConnection::GetLocalIPAddress(class TInetAddr &) - ?NewL@CSUPLProtocolManagerBase@@SAPAV1@ABVTDesC8@@@Z @ 15 NONAME ; class CSUPLProtocolManagerBase * CSUPLProtocolManagerBase::NewL(class TDesC8 const &) - ?Send@CSuplConnection@@QAEXABVTDesC8@@AAVTRequestStatus@@@Z @ 16 NONAME ; void CSuplConnection::Send(class TDesC8 const &, class TRequestStatus &) - ?CreateConnectionL@CSuplCommunicationManager@@QAEPAVCSuplConnection@@ABVTDesC16@@HHIH@Z @ 17 NONAME ; class CSuplConnection * CSuplCommunicationManager::CreateConnectionL(class TDesC16 const &, int, int, unsigned int, int) - ?NewL@CSuplCommunicationManager@@SAPAV1@AAVMSuplConnectionMonitor@@@Z @ 18 NONAME ; class CSuplCommunicationManager * CSuplCommunicationManager::NewL(class MSuplConnectionMonitor &) - ?CloseConnection@CSuplConnection@@QAEXXZ @ 19 NONAME ; void CSuplConnection::CloseConnection(void) - ?CancelConnect@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 20 NONAME ; void CSuplConnection::CancelConnect(class TRequestStatus &) - ?DestroyConnection@CSuplCommunicationManager@@QAEHPAVCSuplConnection@@@Z @ 21 NONAME ; int CSuplCommunicationManager::DestroyConnection(class CSuplConnection *) - ?NewL@CSUPLProtocolManagerBase@@SAPAV1@ABVTUid@@@Z @ 22 NONAME ; class CSUPLProtocolManagerBase * CSUPLProtocolManagerBase::NewL(class TUid const &) - ?SetPacketReceiver@CSuplCommunicationManager@@QAEXPAVMSuplPacketReceiver@@@Z @ 23 NONAME ; void CSuplCommunicationManager::SetPacketReceiver(class MSuplPacketReceiver *) - ??1CSUPLProtocolManagerBase@@UAE@XZ @ 24 NONAME ; CSUPLProtocolManagerBase::~CSUPLProtocolManagerBase(void) - ?CreateConnectionL@CSuplCommunicationManager@@QAEPAVCSuplConnection@@ABVTDesC16@@IH@Z @ 25 NONAME ; class CSuplConnection * CSuplCommunicationManager::CreateConnectionL(class TDesC16 const &, unsigned int, int) + ?ConstructL@CSUPLProtocolManagerBase@@UAEXABVTUid@@@Z @ 1 NONAME ; void CSUPLProtocolManagerBase::ConstructL(class TUid const &) + ??0CSUPLProtocolManagerBase@@QAE@XZ @ 2 NONAME ; CSUPLProtocolManagerBase::CSUPLProtocolManagerBase(void) + ?CancelListenToMessages@CSuplConnection@@QAEXXZ @ 3 NONAME ; void CSuplConnection::CancelListenToMessages(void) + ?ImplementationUid@CSUPLProtocolManagerBase@@QBE?AVTUid@@XZ @ 4 NONAME ; class TUid CSUPLProtocolManagerBase::ImplementationUid(void) const + ?CancelSend@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 5 NONAME ; void CSuplConnection::CancelSend(class TRequestStatus &) + ?ListenToMessages@CSuplConnection@@QAEHXZ @ 6 NONAME ; int CSuplConnection::ListenToMessages(void) + ?GetSUPLMessageVersionL@CSUPLProtocolManagerBase@@UAEHAAHABVTDesC8@@@Z @ 7 NONAME ; int CSUPLProtocolManagerBase::GetSUPLMessageVersionL(int &, class TDesC8 const &) + ?Version@CSUPLProtocolManagerBase@@QBEHXZ @ 8 NONAME ; int CSUPLProtocolManagerBase::Version(void) const + ??1CSuplCommunicationManager@@UAE@XZ @ 9 NONAME ; CSuplCommunicationManager::~CSuplCommunicationManager(void) + ?Connect@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 10 NONAME ; void CSuplConnection::Connect(class TRequestStatus &) + ?GetPortNumberUsed@CSuplConnection@@QAEHXZ @ 11 NONAME ; int CSuplConnection::GetPortNumberUsed(void) + ?Initialize@CSuplCommunicationManager@@QAEHXZ @ 12 NONAME ; int CSuplCommunicationManager::Initialize(void) + ?GetLocalIPAddress@CSuplConnection@@QAEHAAVTInetAddr@@@Z @ 13 NONAME ; int CSuplConnection::GetLocalIPAddress(class TInetAddr &) + ?NewL@CSUPLProtocolManagerBase@@SAPAV1@ABVTDesC8@@@Z @ 14 NONAME ; class CSUPLProtocolManagerBase * CSUPLProtocolManagerBase::NewL(class TDesC8 const &) + ?Send@CSuplConnection@@QAEXABVTDesC8@@AAVTRequestStatus@@@Z @ 15 NONAME ; void CSuplConnection::Send(class TDesC8 const &, class TRequestStatus &) + ?CreateConnectionL@CSuplCommunicationManager@@QAEPAVCSuplConnection@@ABVTDesC16@@HHIH@Z @ 16 NONAME ; class CSuplConnection * CSuplCommunicationManager::CreateConnectionL(class TDesC16 const &, int, int, unsigned int, int) + ?NewL@CSuplCommunicationManager@@SAPAV1@AAVMSuplConnectionMonitor@@@Z @ 17 NONAME ; class CSuplCommunicationManager * CSuplCommunicationManager::NewL(class MSuplConnectionMonitor &) + ?CloseConnection@CSuplConnection@@QAEXXZ @ 18 NONAME ; void CSuplConnection::CloseConnection(void) + ?CancelConnect@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 19 NONAME ; void CSuplConnection::CancelConnect(class TRequestStatus &) + ?DestroyConnection@CSuplCommunicationManager@@QAEHPAVCSuplConnection@@@Z @ 20 NONAME ; int CSuplCommunicationManager::DestroyConnection(class CSuplConnection *) + ?NewL@CSUPLProtocolManagerBase@@SAPAV1@ABVTUid@@@Z @ 21 NONAME ; class CSUPLProtocolManagerBase * CSUPLProtocolManagerBase::NewL(class TUid const &) + ?SetPacketReceiver@CSuplCommunicationManager@@QAEXPAVMSuplPacketReceiver@@@Z @ 22 NONAME ; void CSuplCommunicationManager::SetPacketReceiver(class MSuplPacketReceiver *) + ??1CSUPLProtocolManagerBase@@UAE@XZ @ 23 NONAME ; CSUPLProtocolManagerBase::~CSUPLProtocolManagerBase(void) + ?CreateConnectionL@CSuplCommunicationManager@@QAEPAVCSuplConnection@@ABVTDesC16@@IH@Z @ 24 NONAME ; class CSuplConnection * CSuplCommunicationManager::CreateConnectionL(class TDesC16 const &, unsigned int, int) diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/protocolhandlerapi/eabi/epossuplprotocolhandlerpluginu.def --- a/supl/locationsuplfw/protocolhandlerapi/eabi/epossuplprotocolhandlerpluginu.def Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/protocolhandlerapi/eabi/epossuplprotocolhandlerpluginu.def Wed Oct 13 15:01:35 2010 +0300 @@ -8,32 +8,31 @@ _ZN15CSuplConnection22CancelListenToMessagesEv @ 7 NONAME _ZN15CSuplConnection4SendERK6TDesC8R14TRequestStatus @ 8 NONAME _ZN15CSuplConnection7ConnectER14TRequestStatus @ 9 NONAME - _ZN15CSuplConnection7ConnectER14TRequestStatusii @ 10 NONAME - _ZN24CSUPLProtocolManagerBase10ConstructLERK4TUid @ 11 NONAME - _ZN24CSUPLProtocolManagerBase22GetSUPLMessageVersionLERiRK6TDesC8 @ 12 NONAME - _ZN24CSUPLProtocolManagerBase4NewLERK4TUid @ 13 NONAME - _ZN24CSUPLProtocolManagerBase4NewLERK6TDesC8 @ 14 NONAME - _ZN24CSUPLProtocolManagerBaseC2Ev @ 15 NONAME - _ZN24CSUPLProtocolManagerBaseD0Ev @ 16 NONAME - _ZN24CSUPLProtocolManagerBaseD1Ev @ 17 NONAME - _ZN24CSUPLProtocolManagerBaseD2Ev @ 18 NONAME - _ZN25CSuplCommunicationManager10InitializeEv @ 19 NONAME - _ZN25CSuplCommunicationManager17CreateConnectionLERK7TDesC16iiji @ 20 NONAME - _ZN25CSuplCommunicationManager17CreateConnectionLERK7TDesC16ji @ 21 NONAME - _ZN25CSuplCommunicationManager17DestroyConnectionEP15CSuplConnection @ 22 NONAME - _ZN25CSuplCommunicationManager17SetPacketReceiverEP19MSuplPacketReceiver @ 23 NONAME - _ZN25CSuplCommunicationManager4NewLER22MSuplConnectionMonitor @ 24 NONAME - _ZN25CSuplCommunicationManagerD0Ev @ 25 NONAME - _ZN25CSuplCommunicationManagerD1Ev @ 26 NONAME - _ZN25CSuplCommunicationManagerD2Ev @ 27 NONAME - _ZNK24CSUPLProtocolManagerBase17ImplementationUidEv @ 28 NONAME - _ZNK24CSUPLProtocolManagerBase7VersionEv @ 29 NONAME - _ZTI15CSuplConnection @ 30 NONAME - _ZTI17CSuplSocketReader @ 31 NONAME - _ZTI24CSUPLProtocolManagerBase @ 32 NONAME - _ZTI25CSuplCommunicationManager @ 33 NONAME - _ZTV15CSuplConnection @ 34 NONAME - _ZTV17CSuplSocketReader @ 35 NONAME - _ZTV24CSUPLProtocolManagerBase @ 36 NONAME - _ZTV25CSuplCommunicationManager @ 37 NONAME + _ZN24CSUPLProtocolManagerBase10ConstructLERK4TUid @ 10 NONAME + _ZN24CSUPLProtocolManagerBase22GetSUPLMessageVersionLERiRK6TDesC8 @ 11 NONAME + _ZN24CSUPLProtocolManagerBase4NewLERK4TUid @ 12 NONAME + _ZN24CSUPLProtocolManagerBase4NewLERK6TDesC8 @ 13 NONAME + _ZN24CSUPLProtocolManagerBaseC2Ev @ 14 NONAME + _ZN24CSUPLProtocolManagerBaseD0Ev @ 15 NONAME + _ZN24CSUPLProtocolManagerBaseD1Ev @ 16 NONAME + _ZN24CSUPLProtocolManagerBaseD2Ev @ 17 NONAME + _ZN25CSuplCommunicationManager10InitializeEv @ 18 NONAME + _ZN25CSuplCommunicationManager17CreateConnectionLERK7TDesC16iiji @ 19 NONAME + _ZN25CSuplCommunicationManager17CreateConnectionLERK7TDesC16ji @ 20 NONAME + _ZN25CSuplCommunicationManager17DestroyConnectionEP15CSuplConnection @ 21 NONAME + _ZN25CSuplCommunicationManager17SetPacketReceiverEP19MSuplPacketReceiver @ 22 NONAME + _ZN25CSuplCommunicationManager4NewLER22MSuplConnectionMonitor @ 23 NONAME + _ZN25CSuplCommunicationManagerD0Ev @ 24 NONAME + _ZN25CSuplCommunicationManagerD1Ev @ 25 NONAME + _ZN25CSuplCommunicationManagerD2Ev @ 26 NONAME + _ZNK24CSUPLProtocolManagerBase17ImplementationUidEv @ 27 NONAME + _ZNK24CSUPLProtocolManagerBase7VersionEv @ 28 NONAME + _ZTI15CSuplConnection @ 29 NONAME + _ZTI17CSuplSocketReader @ 30 NONAME + _ZTI24CSUPLProtocolManagerBase @ 31 NONAME + _ZTI25CSuplCommunicationManager @ 32 NONAME + _ZTV15CSuplConnection @ 33 NONAME + _ZTV17CSuplSocketReader @ 34 NONAME + _ZTV24CSUPLProtocolManagerBase @ 35 NONAME + _ZTV25CSuplCommunicationManager @ 36 NONAME diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/protocolhandlerapi/group/epos_suplprotocolhandlerplugin.mmp --- a/supl/locationsuplfw/protocolhandlerapi/group/epos_suplprotocolhandlerplugin.mmp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/protocolhandlerapi/group/epos_suplprotocolhandlerplugin.mmp Wed Oct 13 15:01:35 2010 +0300 @@ -51,7 +51,7 @@ LIBRARY insock.lib LIBRARY securesocket.lib LIBRARY commdb.lib -LIBRARY centralrepository.lib extendedconnpref.lib netmeta.lib /*extendedconnpref.lib netmeta.lib Related to custom preference Api's(OCC).*/ +LIBRARY centralrepository.lib LIBRARY flogger.lib /* LIBRARY gba.lib */ diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplconnection.h --- a/supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplconnection.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplconnection.h Wed Oct 13 15:01:35 2010 +0300 @@ -88,16 +88,6 @@ * @return void * */ IMPORT_C void Connect(TRequestStatus &aStatus); - - /** - * A method that makes Socket Connection. - * @since Series 60 3.1 - * @return None - * @param aPrompt used to show connection prompt using OCC Api's. - * @param aWlanOnly used to differentiate connection for GPRS and WLAN using OCC Api's - */ - IMPORT_C void Connect(TRequestStatus &aStatus,TBool aPrompt,TBool aWlanOnly); - IMPORT_C void CloseConnection(); @@ -392,7 +382,7 @@ TBool iPskTLSUsage; TBool iStartedListen; - + TBool iConnectStarted; TBool iSendInProgress; @@ -405,14 +395,6 @@ // Number of client connected TInt iConnectClients; - TBool iPrompt; - - TBool iWlanOnly; - - - - - }; #endif // C_CSUPLCONNECTION_H diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplprotocolmanagerbase.h --- a/supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplprotocolmanagerbase.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplprotocolmanagerbase.h Wed Oct 13 15:01:35 2010 +0300 @@ -29,7 +29,6 @@ //Forword Declarations class CSuplSessionBase; class CSuplCommunicationManager; -class TGeoCellInfo; /** @@ -375,35 +374,6 @@ */ virtual TInt GetSUPLMessageVersionL(TInt& aMajorVersion, const TDesC8& aReceivedMessage); - /** - * Function: MakeLocationConversionRequestL - * - * @Description: Makes Location conversion request - * - * @Param: aSuplSessn,session object on which processing will start - * - * @Param: aCellInfo,cell information which needs to be converted to geo-coordinates - * - * @Param: aStatus, On return, the status of the request - * @Returns: returns None - */ - - virtual void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn, - TGeoCellInfo& aCellInfo, - TRequestStatus& aStatus ) = 0; - - - /** - * Function: CancelLocationConversionRequest - * - * @Description: Cancels the conversion Request - * - * @Param: Session Object - * - * @Returns: None - */ - - virtual void CancelLocationConversionRequest(CSuplSessionBase* aSuplSession) = 0; diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp --- a/supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -23,7 +23,7 @@ #endif #include #include -#include //For OCC + #include "epos_csuplserverprivatecrkeys.h" #include "epos_csuplconnection.h" #include "epos_csuplsocketreader.h" @@ -125,7 +125,7 @@ iState(ENotConnected), iPacket(0, 0), iVariantEnabled(ETrue), iPskTLSUsage(EFalse), iStartedListen(EFalse), iConnectStarted( EFalse), iSendInProgress(EFalse), iFirstPkt(EFalse), - iListenCount(0), iPrompt(EFalse), iWlanOnly(EFalse) + iListenCount(0) { iHostAddress.Zero(); CActiveScheduler::Add(this); @@ -319,10 +319,8 @@ // Cancel Any outstanding request Cancel(); - if (iTrace) - iTrace->Trace(_L( - "CSuplConnection::Destructor...Deleting Socket Reader"), - KTraceFileName, __LINE__); + iTrace->Trace(_L("CSuplConnection::Destructor...Deleting Socket Reader"), + KTraceFileName, __LINE__); //Delete the Socket Reader delete iSocketReader; @@ -969,12 +967,7 @@ { aStatus = KRequestPending; TRequestStatus *reqStatus = &aStatus; - TInt error = iConnArray.Append(reqStatus); - if (error != KErrNone) - { - User::RequestComplete(reqStatus, error); - return; - } + iConnArray.Append(reqStatus); } if (!iConnectStarted) @@ -990,40 +983,14 @@ iConnectStarted = ETrue; #ifndef __WINS__ - TExtendedConnPref OCCPrefs; - TConnPrefList prefList; - - OCCPrefs.SetForcedRoaming(EFalse); //do not switch networks during an ongoing connection - OCCPrefs.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourDefault); - - if(iIAPId != -1) //if a IAP was configured - - { - iTrace->Trace(_L("CSuplConnection::Connect : IAP configured"), KTraceFileName, __LINE__); - OCCPrefs.SetIapId(iIAPId); - // since IAP Id is set SNAP purpose should not be set - set to unknown - OCCPrefs.SetSnapPurpose(CMManager::ESnapPurposeUnknown); - OCCPrefs.SetBearerSet(TExtendedConnPref::EExtendedConnBearerUnknown); - } - else - { - OCCPrefs.SetSnapPurpose(CMManager::ESnapPurposeInternet); - //WLAN and Cellular Networks allowed for connection - OCCPrefs.SetBearerSet(TExtendedConnPref::EExtendedConnBearerWLAN | TExtendedConnPref::EExtendedConnBearerCellular); - - //if SNAP purpose is set IAP Id should be zero - zero by default not explicitly set - iTrace->Trace(_L("CSuplConnection::Connect : IAP not configured"), KTraceFileName, __LINE__); - } - - TRAP_IGNORE(prefList.AppendL(&OCCPrefs)); + TCommDbConnPref prefs; + prefs.SetDialogPreference(ECommDbDialogPrefDoNotPrompt); + prefs.SetDirection(ECommDbConnectionDirectionOutgoing); + prefs.SetIapId(iIAPId); TInt ret = iConnection.Open(iSocketServ); - if(ret != KErrNone) - iTrace->Trace(_L("RConnection Open returned error"), KTraceFileName, __LINE__); - - iTrace->Trace(_L("RConnection Start Called, State is ERetriveIAP"), KTraceFileName, __LINE__); // Start an Outgoing Connection with overrides - iConnection.Start(prefList,iStatus); + iConnection.Start(prefs,iStatus); // Set state to ERetriveIAP iState = ERetriveIAP; SetActive(); @@ -1043,111 +1010,6 @@ } // ----------------------------------------------------------------------------- -// CSuplConnection::Connect -// Makes a secure connection to Network -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - -EXPORT_C void CSuplConnection::Connect(TRequestStatus &aStatus, - TBool aPrompt, TBool aWlanOnly) - { - - // Log - iTrace->Trace(_L("CSuplConnection::Connect"), KTraceFileName, __LINE__); - iPrompt = aPrompt; - iWlanOnly = aWlanOnly; - - aStatus = KRequestPending; - TRequestStatus *reqStatus = &aStatus; - - if (iState == EConnected) - { - User::RequestComplete(reqStatus, KErrNone); - iConnectClients++; - return; - } - - TInt error = iConnArray.Append(reqStatus); - if (error != KErrNone) - { - User::RequestComplete(reqStatus, error); - return; - } - - if (!iConnectStarted) - { - iTrace->Trace( - _L("CSuplConnection::Connect : Connection not started"), - KTraceFileName, __LINE__); - // Connect only if not already connected - if (iState == ENotConnected || iState == EFailure) - { - iTrace->Trace(_L("CSuplConnection::Connect : ENotConnected"), - KTraceFileName, __LINE__); - iConnectStarted = ETrue; - -#ifndef __WINS__ - - iTrace->Trace(_L("CSuplConnection::Connect ExtendedConnPref"), KTraceFileName, __LINE__); - - TExtendedConnPref OCCPrefs; - TConnPrefList prefList; - - if(iWlanOnly) - { - iTrace->Trace(_L("CSuplConnection::Connect : iWLANOnly used"), KTraceFileName, __LINE__); - OCCPrefs.SetBearerSet(TExtendedConnPref::EExtendedConnBearerWLAN); - } - else - { - iTrace->Trace(_L("CSuplConnection::Connect OCC GPRS Connection.."), KTraceFileName, __LINE__); - OCCPrefs.SetBearerSet(TExtendedConnPref::EExtendedConnBearerCellular); - } - OCCPrefs.SetSnapPurpose(CMManager::ESnapPurposeInternet); - - if(!iPrompt) - { - iTrace->Trace(_L("CSuplConnection::Connect : silent connection"), KTraceFileName, __LINE__); - OCCPrefs.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourConnSilent); - } - else - { - iTrace->Trace(_L("CSuplConnection::Connect : Dialog prompt"), KTraceFileName, __LINE__); - OCCPrefs.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourDefault); - } - - TRAP_IGNORE(prefList.AppendL(&OCCPrefs)); - - TInt ret = iConnection.Open(iSocketServ); - if( ret != KErrNone ) - { - TRequestStatus* statusPtr = &aStatus; - User::RequestComplete( statusPtr,ret ); - return; - } - // Start an Outgoing Connection with overrides - iConnection.Start(prefList,iStatus); - // Set state to ERetriveIAP - iState = ERetriveIAP; - SetActive(); - -#else - ConnectIAP(); -#endif - } - } - else - iTrace->Trace( - _L( - "CSuplConnection::Connect : Conn in progress, request queued"), - KTraceFileName, __LINE__); - // Log - iTrace->Trace(_L("CSuplConnection::Connect:Exit"), KTraceFileName, - __LINE__); - } - -// ----------------------------------------------------------------------------- // CSuplConnection::CompleteConnectStatus // Completes the request to cancel connection // (other items were commented in a header). @@ -1364,7 +1226,6 @@ SetActive(); } } - // ----------------------------------------------------------------------------- // CSuplConnection::ConnectIAP // Makes a socket connection to Network diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/settingsapi/group/bld.inf --- a/supl/locationsuplfw/settingsapi/group/bld.inf Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/settingsapi/group/bld.inf Wed Oct 13 15:01:35 2010 +0300 @@ -27,7 +27,6 @@ ../inc/epos_csuplsettingsinternal.h |../../../inc/epos_csuplsettingsinternal.h ../inc/epos_csuplsettingextensionparams.h |../../../inc/epos_csuplsettingextensionparams.h ../inc/epos_csuplsettingsinternalconstants.h |../../../inc/epos_csuplsettingsinternalconstants.h -../inc/epos_csuplsettingsinternalcrkeys.h |../../../inc/epos_csuplsettingsinternalcrkeys.h PRJ_MMPFILES epos_suplsettings.mmp diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsinternalcrkeys.h --- a/supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsinternalcrkeys.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsinternalcrkeys.h Wed Oct 13 15:01:35 2010 +0300 @@ -26,12 +26,11 @@ const TUint32 KSuplSettingsFallBack = 0x00000002; const TUint32 KSuplSettingsFallBackTimer = 0x00000003; const TUint32 KSuplSettingsIMSI = 0x00000004; - +const TUint32 KSuplSettingsUsage = 0x00000005; const TUint32 KSuplSettingsDBEvent = 0x00000006; const TUint32 KSuplSettingsDBChangedSLPId = 0x00000007; const TUint32 KSuplSettigsDBPath = 0x00000008; const TUint32 KSuplSessionDBEvent = 0x00000009; const TUint32 KSuplSessionDBChangedSessionId = 0x0000000A; -const TUint32 KSuplGeoInfoConvServerName = 0x0000000B; #endif //SUPLSETTINGSINTERNALCRKEYS_H diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsnotifier.h --- a/supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsnotifier.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsnotifier.h Wed Oct 13 15:01:35 2010 +0300 @@ -107,6 +107,7 @@ TBool iStopObserve; + CSuplSettings::TSuplSettingsUsage iUsage; TInt iFallBackValue; TInt iFallBackTimerValue; diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/settingsapi/src/epos_csuplsettings.cpp --- a/supl/locationsuplfw/settingsapi/src/epos_csuplsettings.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/settingsapi/src/epos_csuplsettings.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -235,20 +235,35 @@ //------------------------------------------------------------------------------------- //CSuplSettings::GetSuplUsage() // -//Deprecated Since S60 5.2. +//This method is used to retrieve SUPL usage from settings storage. //-------------------------------------------------------------------------------------- -EXPORT_C TInt CSuplSettings::GetSuplUsage(TSuplSettingsUsage& /* aUsage */ ) const +EXPORT_C TInt CSuplSettings::GetSuplUsage(TSuplSettingsUsage& aUsage) const { - return KErrNotSupported; + TInt usage, ret; + ret = iSettingsEngine->GetSuplUsage(usage); + + if (ret == KErrNone) + { + aUsage = (TSuplSettingsUsage)usage; + return KErrNone; + } + else + return ret; } //------------------------------------------------------------------------------------- //CSuplSettings::SetSuplUsage() // -//Deprecated Since S60 5.2. +//This method is used to change SUPL usage. //-------------------------------------------------------------------------------------- -EXPORT_C TInt CSuplSettings::SetSuplUsage(const TSuplSettingsUsage /* aUsage */ ) +EXPORT_C TInt CSuplSettings::SetSuplUsage(const TSuplSettingsUsage aUsage) { - return KErrNotSupported; + TInt usage = aUsage; + + if (usage < CSuplSettings::ESuplUsageAlwaysAsk || + usage > CSuplSettings::ESuplUsageDisabled) + return KErrArgument; + + return iSettingsEngine->SetSuplUsage(aUsage); } //------------------------------------------------------------------------------------- //CSuplSettings::AddNewServer() @@ -259,7 +274,6 @@ { if(aParamValues == NULL) return KErrGeneral; - return iSettingsEngine->AddNewServer(aParamValues,aSlpId ); } diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/settingsapi/src/epos_csuplsettingsengine.cpp --- a/supl/locationsuplfw/settingsapi/src/epos_csuplsettingsengine.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/settingsapi/src/epos_csuplsettingsengine.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -274,6 +274,52 @@ return KErrNone; } +/*TInt CSuplSettingsEngine::Set(const TDesC& aHslpAddress, const TDesC& aIapName, + const TInt aChangedBy) + { + TInt err; + + err = iRepository->Set(KSuplSettingsHSLPAddress, aHslpAddress); + if (err != KErrNone) + return err; + + err = iRepository->Set(KSuplSettingsIAP, aIapName); + if (err != KErrNone) + return err; + + err = iRepository->Set(KSuplSettingsChangedBy, aChangedBy); + if (err != KErrNone) + return err; + + err = iRepository->Set(KSuplSettingsIMSI, iImsi); + if (err != KErrNone) + return err; + + return KErrNone; + } + + +TInt CSuplSettingsEngine::Get(TDes& aHslpAddress, TDes& aIapName, + TDes& aImsi, TInt& aChangedBy) + { + TInt err; + + err = iRepository->Get(KSuplSettingsHSLPAddress, aHslpAddress); + if (err != KErrNone) + return err; + err = iRepository->Get(KSuplSettingsIAP, aIapName); + if (err != KErrNone) + return err; + err = iRepository->Get(KSuplSettingsIMSI, aImsi); + if (err != KErrNone) + return err; + err = iRepository->Get(KSuplSettingsChangedBy, aChangedBy); + if (err != KErrNone) + return err; + + return KErrNone; + } +*/ //------------------------------------------------------------------------------------- //CSuplSettingsEngine::IsInitDone() // @@ -401,6 +447,37 @@ return KErrNone; } +//------------------------------------------------------------------------------------- +//CSuplSettingsEngine::GetSuplUsage() +// +//This method is used to retrieve SUPL usage from settings storage. +//-------------------------------------------------------------------------------------- +TInt CSuplSettingsEngine::GetSuplUsage(TInt& aUsage) + { + TInt err; + + err = iRepository->Get(KSuplSettingsUsage, aUsage); + if (err != KErrNone) + return err; + + return KErrNone; + } + +//------------------------------------------------------------------------------------- +//CSuplSettingsEngine::SetSuplUsage() +// +//This method is used to change SUPL usage. +//-------------------------------------------------------------------------------------- +TInt CSuplSettingsEngine::SetSuplUsage(const TInt aUsage) + { + TInt err; + + err = iRepository->Set(KSuplSettingsUsage, aUsage); + if (err != KErrNone) + return err; + + return KErrNone; + } /* * GetMccLen diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/settingsapi/src/epos_csuplsettingsnotifier.cpp --- a/supl/locationsuplfw/settingsapi/src/epos_csuplsettingsnotifier.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/settingsapi/src/epos_csuplsettingsnotifier.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -95,7 +95,15 @@ iObserver.HandleSuplSettingsChangeL(eventType,slpID); } else - { + { + TInt usage; + + iRepository->Get(KSuplSettingsUsage, usage); + + if (iUsage != usage) //check if there was a change in the Supl usage value in the cen rep + iObserver.HandleSuplSettingsChangeL(MSuplSettingsObserver::ESuplSettingsEventSuplUsageChange); + else //else check if any of the other config parameters changed + { TInt fallBackValue; TInt fallBackTimerValue; TBuf imsi; @@ -104,7 +112,7 @@ iRepository->Get(KSuplSettingsIMSI,imsi); if(fallBackValue != iFallBackValue || fallBackTimerValue != iFallBackTimerValue || imsi.Compare(*iImsi)) iObserver.HandleSuplSettingsChangeL(MSuplSettingsObserver::ESuplSettingsEventCommParameterChange); - + } } StartListening(); } @@ -151,15 +159,15 @@ } else { - + TInt usage; TBuf imsi; - + iRepository->Get(KSuplSettingsUsage, usage); iRepository->Get(KSuplSettingsFallBack,iFallBackValue); iRepository->Get(KSuplSettingsFallBackTimer,iFallBackTimerValue); iRepository->Get(KSuplSettingsIMSI,imsi); if(iImsi) iImsi->Des() = imsi; - + iUsage = (CSuplSettings::TSuplSettingsUsage) usage; // Request for notification for any field change iRepository->NotifyRequest(0x00000000, 0x00000000, iStatus); diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/terminalinitiationapi/bwins/epos_suplterminitiationu.def --- a/supl/locationsuplfw/terminalinitiationapi/bwins/epos_suplterminitiationu.def Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/terminalinitiationapi/bwins/epos_suplterminitiationu.def Wed Oct 13 15:01:35 2010 +0300 @@ -53,7 +53,4 @@ ?ConstructL@CSuplSubSessnPtrHolder@@IAEXHH@Z @ 52 NONAME ; void CSuplSubSessnPtrHolder::ConstructL(int, int) ?NewL@CSuplSubSessnPtrHolder@@SAPAV1@HH@Z @ 53 NONAME ; class CSuplSubSessnPtrHolder * CSuplSubSessnPtrHolder::NewL(int, int) ?Connect@RSuplTerminalServer@@QAEHAAVTRequestStatus@@@Z @ 54 NONAME ; int RSuplTerminalServer::Connect(class TRequestStatus &) - ?CancelLocationConversion@RSuplTerminalInternal@@QAEXXZ @ 55 NONAME ; void RSuplTerminalInternal::CancelLocationConversion(void) - ??0RSuplTerminalInternal@@QAE@XZ @ 56 NONAME ; RSuplTerminalInternal::RSuplTerminalInternal(void) - ?ConvertAreaInfoToCoordinates@RSuplTerminalInternal@@QAEXAAVTRequestStatus@@AAUTGeoCellInfo@@@Z @ 57 NONAME ; void RSuplTerminalInternal::ConvertAreaInfoToCoordinates(class TRequestStatus &, struct TGeoCellInfo &) diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/terminalinitiationapi/eabi/epos_suplterminitiationu.def --- a/supl/locationsuplfw/terminalinitiationapi/eabi/epos_suplterminitiationu.def Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/terminalinitiationapi/eabi/epos_suplterminitiationu.def Wed Oct 13 15:01:35 2010 +0300 @@ -68,8 +68,4 @@ _ZTV22CSuplSubSessnPtrHolder @ 67 NONAME _ZTV23RSuplTerminalSubSession @ 68 NONAME _ZN19RSuplTerminalServer7ConnectER14TRequestStatus @ 69 NONAME - _ZN21RSuplTerminalInternal24CancelLocationConversionEv @ 70 NONAME - _ZN21RSuplTerminalInternal28ConvertAreaInfoToCoordinatesER14TRequestStatusR12TGeoCellInfo @ 71 NONAME - _ZN21RSuplTerminalInternalC1Ev @ 72 NONAME - _ZN21RSuplTerminalInternalC2Ev @ 73 NONAME diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/terminalinitiationapi/group/bld.inf --- a/supl/locationsuplfw/terminalinitiationapi/group/bld.inf Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/terminalinitiationapi/group/bld.inf Wed Oct 13 15:01:35 2010 +0300 @@ -23,9 +23,6 @@ PRJ_EXPORTS ../inc/epos_suplparameters.h MW_LAYER_PLATFORM_EXPORT_PATH(epos_suplparameters.h) -../inc/epos_suplterminalinternal.h |../../../inc/epos_suplterminalinternal.h -../inc/epos_suplgeocellinfo.h |../../../inc/epos_suplgeocellinfo.h - PRJ_MMPFILES epos_suplterminalapi.mmp diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/terminalinitiationapi/group/epos_suplterminalapi.mmp --- a/supl/locationsuplfw/terminalinitiationapi/group/epos_suplterminalapi.mmp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/terminalinitiationapi/group/epos_suplterminalapi.mmp Wed Oct 13 15:01:35 2010 +0300 @@ -33,7 +33,6 @@ SOURCE epos_suplterminalqop.cpp SOURCE epos_suplterminalparams.cpp SOURCE epos_suplterminalperiodictrigger.cpp -SOURCE epos_suplterminalinternal.cpp USERINCLUDE ../inc USERINCLUDE ../../../inc diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/terminalinitiationapi/inc/epos_suplgeocellinfo.h --- a/supl/locationsuplfw/terminalinitiationapi/inc/epos_suplgeocellinfo.h Wed Sep 15 12:40:28 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -/* -* Copyright (c) 2002-2009 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: Data structure to hold cell information for geo tagging purposes. -* -*/ - -/*! \file epos_suplgeocellinfo.h - \brief Triggering classes -*/ - -#ifndef __EPOS_SUPLGEOCELLINFO_H__ -#define __EPOS_SUPLGEOCELLINFO_H__ - -// ========================================== - -/** - * Cell types - */ -enum TGeoCellType - { - /** GSM Cell. */ - EGeoGsmCell = 0, - /** WCDMA cell. */ - EGeoWcdmaCell = 1 - }; - -/** - * Class defines detailed information for gsm/wcdma cell. - * - * @since S60 5.2 - */ -struct TGeoCellInfo - { - TInt iMNC; - TInt iMCC; - TInt iCid; - TInt iLac; - TBool iConnectionPrompt; - TBool iWlanOnly; - TGeoCellType iGeoCellType; - }; - -#endif //__EPOS_SUPLGEOCELLINFO_H__ diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalinternal.h --- a/supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalinternal.h Wed Sep 15 12:40:28 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,81 +0,0 @@ -/* -* Copyright (c) 2002-2009 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: SUPL Terminal Initiation internal class -* -*/ - -#ifndef __EPOS_SUPLTERMINALINTERNAL_H__ -#define __EPOS_SUPLTERMINALINTERNAL_H__ - - -#include - -#include "epos_suplgeocellinfo.h" - - -// Forward declarations - -/** - * This class is used to make request to convert area information to geo-coordinates. - */ -class RSuplTerminalInternal : public RSuplTerminalSubSession - { - - -public: - /** - * Constructor for RSuplTerminalInternal - * - */ - IMPORT_C RSuplTerminalInternal(); - - /** - * This is an asynchronous request to SUPL Server to determine position - * information corresponding to given area information. - * Client can have only one outstanding asynchronous request per sub-session. - * @param [OUT] aStatus to return result code - * @param[IN] aGeoCellInfo Cell information - * @return aStatus will have - * - KErrNone if request is completed sucessfully. - * - KErrCancel if the request was successfully cancelled - * - KErrNotReady if SUPL server is not ready to determine position information, - * client can retry after sometime. - * - KErrAlreadyExists if there is already an ongoing request on sub-session. - * - KErrServerTerminated if server got terminated due to some error - * - KErrNotSupported if function is called when Session is NOT Opened with SUPL_1_0 service - * - KErrGeneral for all other errors - * - */ - - IMPORT_C void ConvertAreaInfoToCoordinates( - TRequestStatus& aStatus, - TGeoCellInfo& aGeoCellInfo ); - - /** - * Cancels an outstanding asynchronous conversion request issued via ConvertAreaInfoToCoordinates - * Canceling requests is typically attempted when an client - * is closing down. - * - */ - IMPORT_C void CancelLocationConversion(); - -private: - //Cell Information - TGeoCellInfo iGeoCellInfo; - - //To check if conversion request has issued or not - TBool iConversionRequestIssued; - }; - -#endif // __EPOS_SUPLTERMINALINTERNAL_H__ diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalipc.h --- a/supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalipc.h Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalipc.h Wed Oct 13 15:01:35 2010 +0300 @@ -61,9 +61,8 @@ ESuplTerminalSubssnStartPeriodicTriggerWithServer, ESuplTerminalSubssnNotifyTriggerFired, ESuplTerminalSubssnStopTriggerSession, - ESuplTerminalSubssnLocationConversion, - ESuplTerminalSubssnCancelLocationConversion, - ESuplSubssnCustomCodesBegin = ESuplCustomIpcOffset + + ESuplSubssnCustomCodesBegin = ESuplCustomIpcOffset, }; #endif // __EPOS_SUPLTERMINALIPC_H__ diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/terminalinitiationapi/src/epos_suplterminalinternal.cpp --- a/supl/locationsuplfw/terminalinitiationapi/src/epos_suplterminalinternal.cpp Wed Sep 15 12:40:28 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -/* -* Copyright (c) 2002-2009 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: Client-Server communication -* -*/ -#include -#include - -#include "epos_suplterminalinternal.h" -#include "epos_suplterminalipc.h" -#include "epos_suplterminalerrors.h" -#include "epos_suplterminalptrholder.h" - -//----------------------------------------------------------------------------- -// RSuplTerminalInternal -//----------------------------------------------------------------------------- - -// ----------------------------------------------------------------------------- -// RSuplTerminalInternal::RSuplTerminalInternal() -// C++ default constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C RSuplTerminalInternal::RSuplTerminalInternal() - : iConversionRequestIssued( EFalse ) - { - } - -// --------------------------------------------------------- -// RSuplTerminalInternal::ConvertAreaInfoToCoordinates -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -EXPORT_C void RSuplTerminalInternal::ConvertAreaInfoToCoordinates( TRequestStatus& aStatus, - TGeoCellInfo& aGeoCellInfo ) - { - __ASSERT_ALWAYS(SubSessionHandle(), - User::Panic(KSuplClientFault, ESuplServerBadHandle)); - - // Currently only SUPL 1.0 supports cell to geo-coordinates conversion. - if( iSuplService != ESUPL_1_0 ) - { - TRequestStatus *status = &aStatus; - User::RequestComplete(status,KErrNotSupported); - return; - } - - // Fill the values of data member - iGeoCellInfo.iMNC = aGeoCellInfo.iMNC; - iGeoCellInfo.iMCC = aGeoCellInfo.iMCC; - iGeoCellInfo.iCid = aGeoCellInfo.iCid; - iGeoCellInfo.iLac = aGeoCellInfo.iLac; - iGeoCellInfo.iConnectionPrompt = aGeoCellInfo.iConnectionPrompt; - iGeoCellInfo.iWlanOnly = aGeoCellInfo.iWlanOnly; //OCC - iGeoCellInfo.iGeoCellType = aGeoCellInfo.iGeoCellType; - - iPtrHolder->Ptr(0).Set( - reinterpret_cast(&iGeoCellInfo), - sizeof(iGeoCellInfo),sizeof(iGeoCellInfo)); - - TIpcArgs args; - - args.Set(0,&iPtrHolder->Ptr(0)); - iConversionRequestIssued = ETrue; - SendReceive(ESuplTerminalSubssnLocationConversion, args, aStatus); - } - -// --------------------------------------------------------- -// RSuplTerminalInternal::CancelLocationConversion -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -EXPORT_C void RSuplTerminalInternal::CancelLocationConversion() - { - __ASSERT_ALWAYS(SubSessionHandle(), - User::Panic(KSuplClientFault, ESuplServerBadHandle)); - if( iConversionRequestIssued ) - { - iConversionRequestIssued = EFalse; - SendReceive(ESuplTerminalSubssnCancelLocationConversion); - } - } -// end of file diff -r 10852b179f64 -r ea98413ce11f supl/locationsuplfw/utilities/src/epos_csupltrace.cpp --- a/supl/locationsuplfw/utilities/src/epos_csupltrace.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/locationsuplfw/utilities/src/epos_csupltrace.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -140,7 +140,6 @@ const TDesC& aTraceLogFile, TRefByValue aFmt, ... ) { - // coverity[var_decl : FALSE] VA_LIST list; VA_START( list, aFmt ); diff -r 10852b179f64 -r ea98413ce11f supl/supltiapiimplementation/src/lbssupltirequestmanager.cpp --- a/supl/supltiapiimplementation/src/lbssupltirequestmanager.cpp Wed Sep 15 12:40:28 2010 +0300 +++ b/supl/supltiapiimplementation/src/lbssupltirequestmanager.cpp Wed Oct 13 15:01:35 2010 +0300 @@ -165,12 +165,10 @@ // void CCLbsSuplTiRequestManager::CloseSession() { - if(iTrace) - iTrace->Trace(_L("CCLbsSuplTiRequestManager::CloseSession() start"), KTraceFileName, __LINE__); + iTrace->Trace(_L("CCLbsSuplTiRequestManager::CloseSession() start"), KTraceFileName, __LINE__); iRequestorCollection.ResetAndDestroy(); //cancels all active requests iServer.Close(); - if(iTrace) - iTrace->Trace(_L("CCLbsSuplTiRequestManager::CloseSession() end"), KTraceFileName, __LINE__); + iTrace->Trace(_L("CCLbsSuplTiRequestManager::CloseSession() end"), KTraceFileName, __LINE__); } // ----------------------------------------------------------------------------- // CCLbsSuplTiRequestManager::FindSessionId