supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp
branchRCL_3
changeset 45 6b6920c56e2f
parent 44 2b4ea9893b66
child 49 10852b179f64
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp	Tue Aug 31 15:37:04 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp	Wed Sep 01 12:24:21 2010 +0100
@@ -105,10 +105,11 @@
 // Destructor.
 EXPORT_C COMASUPLProtocolManager1::~COMASUPLProtocolManager1()
 	{
-	/*if(iSettingsLauncher)		
+	if(iSettingsLauncher)		
 		{
 			iSettingsLauncher->CancelLaunch();
-		}*/
+		}
+	
 	if(iSuplSettings)
 		{
 		iSuplSettings->SetUIActive( EFalse );
@@ -117,11 +118,11 @@
 	DeleteAllSessions();
 	iSuplSessions.Reset();
 	iSuplSessions.Close();
-	
+
 	//Only attempt to unload the phone if the TSY has actually been initialised
 	if(iTsyName.Length() > 0)
 		{
-    	iTelServer.UnloadPhoneModule(iTsyName);
+		iTelServer.UnloadPhoneModule(iTsyName);
 		}
 
 	
@@ -137,7 +138,7 @@
 	
 	delete iSuplEcomEventWatcher;
 	
-    //delete iSettingsLauncher;
+    delete iSettingsLauncher;
     delete iNotifier;
 	iMobilePhone.Close(); 
 	iTelServer.Close();
@@ -175,7 +176,7 @@
 	iSuplStorageSettings = CSuplSettingsInternal::NewL();
 	iSuplStorageSettings->SetObserverL(*this);
 
-   	//iSettingsLauncher = COMASuplSettingsLauncher::NewL( *this );
+   	iSettingsLauncher = COMASuplSettingsLauncher::NewL( *this );
 	
    	iIMSI.CreateL( KMaxIMSILen );
 	iIsPreviouslyDecodingFailed = EFalse;
@@ -252,7 +253,7 @@
 	//Connect to ETel
 	User::LeaveIfError(ConnectToETelL());
   
-    //ReadSuplUsage();    
+    ReadSuplUsage();    
 	 
 	if(iSuplEcomEventWatcher)
 		{
@@ -530,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();
@@ -1040,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 ;
 	}
@@ -1189,7 +1203,7 @@
     if( aEvent == MSuplSettingsObserver::ESuplSettingsEventSuplUsageChange)
         {
         iTrace->Trace(_L("Setting Changed.SUPL Usage changed.. Reeading once again..."), KTraceFileName, __LINE__);
-        //ReadSuplUsage();
+        ReadSuplUsage();
 		}
 	else if( aEvent == MSuplSettingsObserver::ESuplSettingsEventCommParameterChange)
 		{
@@ -1616,6 +1630,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
@@ -1675,7 +1751,7 @@
 // 
 // -----------------------------------------------------------------------------
 //
-/*TInt COMASUPLProtocolManager1::LaunchSuplUsageSettingsUI(MOMASuplUICompletionObserver* aObserver, TBool aRoaming)	
+TInt COMASUPLProtocolManager1::LaunchSuplUsageSettingsUI(MOMASuplUICompletionObserver* aObserver, TBool aRoaming)	
 	{
 	iTrace->Trace(_L("COMASUPLProtocolManager1::LaunchSuplUsageSettingsUI"), KTraceFileName, __LINE__);
     if (iSuplSettings->IsUIActive() && !iTimeOutDialogPresent)
@@ -1690,7 +1766,7 @@
     iSessnUIObserver = aObserver;            
     iSuplSettings->SetUIActive(ETrue);
     return iSettingsLauncher->LaunchSuplUsageSettingsUI(aRoaming);
-	}*/
+	}
 
 // -----------------------------------------------------------------------------
 // COMASUPLProtocolManager1::SettingsUsageUICompletedL
@@ -1698,7 +1774,7 @@
 // 
 // -----------------------------------------------------------------------------
 //
-/*void COMASUPLProtocolManager1::SettingsUsageUICompletedL(TInt aError)
+void COMASUPLProtocolManager1::SettingsUsageUICompletedL(TInt aError)
 	{
 	iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsUsageUICompletedL"), KTraceFileName, __LINE__);
     iSuplSettings->SetUIActive(EFalse);
@@ -1716,7 +1792,7 @@
         }
 
     CheckOutstandingUsageUIRequestsL();
-	}*/
+	}
 
 // -----------------------------------------------------------------------------
 // COMASUPLProtocolManager1::ReadSuplUsage
@@ -1724,7 +1800,7 @@
 // 
 // -----------------------------------------------------------------------------
 //
-/*void COMASUPLProtocolManager1::ReadSuplUsage()
+void COMASUPLProtocolManager1::ReadSuplUsage()
 	{
 	iTrace->Trace(_L("COMASUPLProtocolManager1::ReadSuplUsage start"), KTraceFileName, __LINE__);	
 	CSuplSettings::TSuplSettingsUsage suplUsage;
@@ -1734,7 +1810,7 @@
 			iSuplSettings->SetSUPLUsage(suplUsage);
 		}
 	iTrace->Trace(_L("COMASUPLProtocolManager1::ReadSuplUsage end"), KTraceFileName, __LINE__);	
-	}*/
+	}
 
 void COMASUPLProtocolManager1::UpdateAllSubSessnsInSameSession(TInt aIpcSessionId)
     {
@@ -1775,7 +1851,7 @@
 
             if (OMAsuplSession->GetSuplUsageFlag())
                 {                        
-                //OMAsuplSession->StartUsageDialogLaunchL();
+                OMAsuplSession->StartUsageDialogLaunchL();
                 break;
                 }
 		}
@@ -1865,7 +1941,7 @@
 // 
 // -----------------------------------------------------------------------------
 //
-/*TInt COMASUPLProtocolManager1::LaunchSuplDialogTimeoutUI(MOMASuplUICompletionObserver* aObserver )
+TInt COMASUPLProtocolManager1::LaunchSuplDialogTimeoutUI(MOMASuplUICompletionObserver* aObserver )
     {
     iTrace->Trace(_L("COMASUPLProtocolManager1::LaunchTimeOutUI"), KTraceFileName, __LINE__);
     
@@ -1879,7 +1955,7 @@
     iSuplSettings->SetUIActive(ETrue);
     iTimeOutDialogPresent = ETrue;
     return iSettingsLauncher->LaunchSessionTimeOutDialog();		
-    }*/
+    }
 
 // -----------------------------------------------------------------------------
 // COMASUPLProtocolManager1::SettingsTimeOutUICompletedL
@@ -1887,7 +1963,7 @@
 // 
 // -----------------------------------------------------------------------------
 //
-/*void COMASUPLProtocolManager1::SettingsTimeOutUICompletedL(TInt aError)
+void COMASUPLProtocolManager1::SettingsTimeOutUICompletedL(TInt aError)
 	{
 	iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsTimeOutUICompletedL"), KTraceFileName, __LINE__);
     iSuplSettings->SetUIActive(EFalse);
@@ -1904,17 +1980,16 @@
         if (iSessnUIObserver)                
         	iSessnUIObserver->SettingsTimeOutUICompletedL(aError);
         }
-	}*/
+	}
 
 // -----------------------------------------------------------------------------
 // COMASUPLProtocolManager1::GetLastUsedAccessPoint
 // 
 // -----------------------------------------------------------------------------
 //
-TInt COMASUPLProtocolManager1::GetLastUsedAccessPoint(TDes& /*aLastlyUsedAccessPoint*/,TUint32& /*iIAPId*/)
+TInt COMASUPLProtocolManager1::GetLastUsedAccessPoint(TDes& aLastlyUsedAccessPoint,TUint32& iIAPId)
 	{
-	//return iSettingsLauncher->GetIAPName(aLastlyUsedAccessPoint,iIAPId);
-	return KErrNone;
+	return iSettingsLauncher->GetIAPName(aLastlyUsedAccessPoint,iIAPId);
 	}
 
 // -----------------------------------------------------------------------------
@@ -2013,17 +2088,8 @@
     iSuplInitTimeOut = aCommmonConfig->iSuplInitTimeOut;
     iPersistFailTimer = aCommmonConfig->iPersistFailTimer;
     }
-    
-// -----------------------------------------------------------------------------
-// COMASUPLProtocolManager1::HandleSuplTriggerStatusChangeL
-// pure virtual method from MSuplSettingsObserver; dummy implementation for compilation 
-// -----------------------------------------------------------------------------
-//
-void COMASUPLProtocolManager1::HandleSuplTriggerStatusChangeL(CSuplSettings::TSuplTriggerStatus /*aSuplTriggerStatus*/ ) 
-{
-
-}
-
+	
+	
 // -----------------------------------------------------------------------------
 // COMASUPLProtocolManager1::MakeLocationConversionRequestL
 // 
@@ -2048,7 +2114,6 @@
     iRunningSessionCount++;
 
     COMASuplLocationId* locationId =   COMASuplLocationId::NewL();
-    CleanupStack::PushL(locationId);
     COMASuplLocationId::TOMASuplStatus status = COMASuplLocationId::EStale;
     switch(aCellInfo.iGeoCellType)
         {
@@ -2069,7 +2134,7 @@
             }
             break;
         }
-    CleanupStack::Pop(locationId); 
+   
     tempBuf.Copy(_L("MCC = "));
     tempBuf.AppendNum(aCellInfo.iMCC);
     iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
@@ -2117,4 +2182,18 @@
     aSuplSession->CancelRunSession();   
     return ;
     }
+	
+    
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager1::CancelUiLaunch
+// 
+// 
+// -----------------------------------------------------------------------------
+//
+void COMASUPLProtocolManager1::CancelUiLaunch()
+    {
+    iTrace->Trace(_L("COMASUPLProtocolManager1::CancelUiLaunch"), KTraceFileName, __LINE__);
+    iSettingsLauncher->CancelLaunch();
+    }
+    
 // end of file