--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp Thu Jul 15 19:06:58 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp Thu Aug 19 10:20:18 2010 +0300
@@ -46,6 +46,9 @@
#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");
@@ -528,6 +531,11 @@
iTrace->Trace(_L("COMASUPLProtocolManager1::DestroySession Destroy Session"), KTraceFileName, __LINE__);
COMASuplSession* OMASession = static_cast<COMASuplSession*>(aSuplSession);
+ if (OMASession->HasMeLaunchedUsageDialog())
+ {
+ iTrace->Trace(_L("Setting NULL."), KTraceFileName, __LINE__);
+ iSessnUIObserver = NULL;
+ }
if (OMASession->GetSessionUIFlag())
{
OMASession->DestroySession();
@@ -1038,6 +1046,14 @@
iTrace->Trace(_L("Cannot found Supl session."), KTraceFileName, __LINE__);
return;
}
+
+ COMASuplSession* OMASession = static_cast<COMASuplSession*>(aSuplSession);
+ if (OMASession->HasMeLaunchedUsageDialog())
+ {
+ iTrace->Trace(_L("Setting NULL."), KTraceFileName, __LINE__);
+ iSessnUIObserver = NULL;
+ }
+
aSuplSession->CancelRunSession();
return ;
}
@@ -2072,8 +2088,103 @@
iSuplInitTimeOut = aCommmonConfig->iSuplInitTimeOut;
iPersistFailTimer = aCommmonConfig->iPersistFailTimer;
}
+
+
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager1::MakeLocationConversionRequestL
+//
+// To make conversion request to retrieve position for a given cell id
+// -----------------------------------------------------------------------------
+//
+void COMASUPLProtocolManager1::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
+ TGeoCellInfo& aCellInfo,
+ TRequestStatus& aStatus )
+ {
+ 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<COMASuplSession*>(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);
+
+ }
+
+// -----------------------------------------------------------------------------
+// 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 ;
+ }
+
- // -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// COMASUPLProtocolManager1::CancelUiLaunch
//
//