diff -r d746aee05493 -r 02ba3f1733c6 supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplstartstate.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplstartstate.cpp Thu Jul 15 19:06:58 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplstartstate.cpp Thu Aug 19 10:20:18 2010 +0300 @@ -149,8 +149,22 @@ // TInt COMASuplStartState::GenerateMessageL() { - iTrace->Trace(_L("Start of COMASuplStartState::GenerateMessage"), KTraceFileName, __LINE__); - iLocationIDRequestor->GetLocationID(); + 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); + } + return KErrNone; } @@ -996,4 +1010,15 @@ aCurrentCellId.iMCC = lRefMCC; aCurrentCellId.iLac = lRefLAC; } -} // End of File +} +void COMASuplStartState::SetStaleCellIdToUse(COMASuplLocationId* aLocationId) + { + if(iLocationId) + { + delete iLocationId; + iLocationId = NULL; + } + iLocationId = aLocationId; + iIsStaleCellId = ETrue; + } +// End of File