supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplprotocolmanager2.cpp
branchRCL_3
changeset 55 ea98413ce11f
parent 49 10852b179f64
equal deleted inserted replaced
49:10852b179f64 55:ea98413ce11f
   102 	} 
   102 	} 
   103  
   103  
   104 // Destructor.
   104 // Destructor.
   105 EXPORT_C COMASUPLProtocolManager2::~COMASUPLProtocolManager2()
   105 EXPORT_C COMASUPLProtocolManager2::~COMASUPLProtocolManager2()
   106 	{
   106 	{
   107 	
   107 	if(iSettingsLauncher)		
       
   108 		{
       
   109 		iSettingsLauncher->CancelLaunch();
       
   110 		}
   108 		
   111 		
   109 	if(iSuplSettings)
   112 	if(iSuplSettings)
   110 		{
   113 		{
   111 		iSuplSettings->SetUIActive( EFalse );
   114 		iSuplSettings->SetUIActive( EFalse );
   112 		}
   115 		}
   131 		iSuplStorageSettings->RemoveObserver();
   134 		iSuplStorageSettings->RemoveObserver();
   132 		iSuplStorageSettings->RemoveSessionObserver();
   135 		iSuplStorageSettings->RemoveSessionObserver();
   133 	}
   136 	}
   134 	
   137 	
   135 	delete iSuplStorageSettings;
   138 	delete iSuplStorageSettings;
   136     
   139     delete iSettingsLauncher;
   137     delete iNotifier;
   140     delete iNotifier;
   138 	iMobilePhone.Close(); 
   141 	iMobilePhone.Close(); 
   139 	iTelServer.Close();
   142 	iTelServer.Close();
   140 	iIMSI.Close();
   143 	iIMSI.Close();
   141 	iUIRequestArray.Close();	
   144 	iUIRequestArray.Close();	
   164 	
   167 	
   165 	iSuplStorageSettings = CSuplSettingsInternal::NewL();
   168 	iSuplStorageSettings = CSuplSettingsInternal::NewL();
   166 	iSuplStorageSettings->SetObserverL(*this);
   169 	iSuplStorageSettings->SetObserverL(*this);
   167 	iSuplStorageSettings->SetSessionObserverL(*this);
   170 	iSuplStorageSettings->SetSessionObserverL(*this);
   168 	
   171 	
   169    	
   172    	iSettingsLauncher = COMASuplSettingsLauncher::NewL( *this );
   170    	
   173    	
   171     TRAPD(err,iOMASuplAsnHandlerBaseImpl = COMASuplAsnHandlerBase::NewL(2);) 
   174     TRAPD(err,iOMASuplAsnHandlerBaseImpl = COMASuplAsnHandlerBase::NewL(2);) 
   172     TBuf<64> buf(_L("ASN Plugin 2.0 loaded with error : "));                
   175     TBuf<64> buf(_L("ASN Plugin 2.0 loaded with error : "));                
   173     buf.AppendNum(err);
   176     buf.AppendNum(err);
   174     iTrace->Trace(buf,KTraceFileName, __LINE__);        
   177     iTrace->Trace(buf,KTraceFileName, __LINE__);        
   252 	iCommManager = aCommManager;			
   255 	iCommManager = aCommManager;			
   253 
   256 
   254 	//Connect to ETel
   257 	//Connect to ETel
   255 	User::LeaveIfError(ConnectToETelL());
   258 	User::LeaveIfError(ConnectToETelL());
   256   
   259   
   257    
   260     ReadSuplUsage();    
   258 	 
   261 	 
   259 	if(iSuplEcomEventWatcher)
   262 	if(iSuplEcomEventWatcher)
   260 		{
   263 		{
   261 	    iTrace->Trace(_L("NotifyOnPlugInUnInstallation starting"), KTraceFileName, __LINE__);	
   264 	    iTrace->Trace(_L("NotifyOnPlugInUnInstallation starting"), KTraceFileName, __LINE__);	
   262 		iSuplEcomEventWatcher->NotifyOnPlugInUnInstallation();	
   265 		iSuplEcomEventWatcher->NotifyOnPlugInUnInstallation();	
  1246 void COMASUPLProtocolManager2::HandleSuplSettingsChangeL(TSuplSettingsEventType aEvent,TInt /*aSlpId*/)
  1249 void COMASUPLProtocolManager2::HandleSuplSettingsChangeL(TSuplSettingsEventType aEvent,TInt /*aSlpId*/)
  1247 	{
  1250 	{
  1248     if( aEvent == MSuplSettingsObserver::ESuplSettingsEventSuplUsageChange)
  1251     if( aEvent == MSuplSettingsObserver::ESuplSettingsEventSuplUsageChange)
  1249         {
  1252         {
  1250         iTrace->Trace(_L("Setting Changed.SUPL Usage changed.. Reeading once again..."), KTraceFileName, __LINE__);
  1253         iTrace->Trace(_L("Setting Changed.SUPL Usage changed.. Reeading once again..."), KTraceFileName, __LINE__);
  1251         
  1254         ReadSuplUsage();
  1252 		}
  1255 		}
  1253 	else if( aEvent == MSuplSettingsObserver::ESuplSettingsEventCommParameterChange)
  1256 	else if( aEvent == MSuplSettingsObserver::ESuplSettingsEventCommParameterChange)
  1254 		{
  1257 		{
  1255 		iTrace->Trace(_L("Setting Changed.Communication Parameters changed.. Reeading once again..."), KTraceFileName, __LINE__);
  1258 		iTrace->Trace(_L("Setting Changed.Communication Parameters changed.. Reeading once again..."), KTraceFileName, __LINE__);
  1256 						
  1259 						
  1257 		}
  1260 		}
  1258 	}
  1261 	}
  1259 
       
  1260 		
       
  1261 	
       
  1262 
  1262 
  1263 // -----------------------------------------------------------------------------
  1263 // -----------------------------------------------------------------------------
  1264 // COMASUPLProtocolManager2::LogPacket
  1264 // COMASUPLProtocolManager2::LogPacket
  1265 // Logs
  1265 // Logs
  1266 // -----------------------------------------------------------------------------
  1266 // -----------------------------------------------------------------------------
  1740 	iPreviousMessageLength = 0 ; 
  1740 	iPreviousMessageLength = 0 ; 
  1741 	iIsPreviouslyDecodingFailed = EFalse;
  1741 	iIsPreviouslyDecodingFailed = EFalse;
  1742 	}
  1742 	}
  1743 	
  1743 	
  1744 	
  1744 	
       
  1745 // -----------------------------------------------------------------------------
       
  1746 // COMASUPLProtocolManager2::LaunchSettingsUI
       
  1747 // 
       
  1748 // 
       
  1749 // -----------------------------------------------------------------------------
       
  1750 //
       
  1751 TInt COMASUPLProtocolManager2::LaunchSettingsUI(MOMASuplUICompletionObserver* aObserver,const TDesC& aForHslp)
       
  1752     {        
       
  1753 	iTrace->Trace(_L("COMASUPLProtocolManager2::LaunchSettingsUI"), KTraceFileName, __LINE__);
       
  1754     
       
  1755     if (iSuplSettings->IsUIActive())
       
  1756         return KErrInUse;                
       
  1757     iSessnUIObserver = aObserver;            
       
  1758     iSuplSettings->SetUIActive(ETrue);
       
  1759    
       
  1760     if(iUIRequestArray.Count() <= 0 )
       
  1761     	{
       
  1762 		iTrace->Trace(_L("COMASUPLProtocolManager2::LaunchSettingsUI"), KTraceFileName, __LINE__);
       
  1763 		iUIRequestArray.Append(aObserver);
       
  1764 		iSuplSettings->SetUIActive(ETrue);
       
  1765 		iCurrentlyUsedHslp.Copy(aForHslp);
       
  1766 		return iSettingsLauncher->LaunchSettings();	
       
  1767     	}
       
  1768     else if(iCurrentlyUsedHslp.Compare(aForHslp) == KErrNone)
       
  1769     	{
       
  1770 		iUIRequestArray.Append(aObserver);
       
  1771     	}
       
  1772     else
       
  1773     	{
       
  1774 		return KErrInUse;                
       
  1775     	}
       
  1776     		
       
  1777 	return KErrNone;
       
  1778     }
       
  1779 
       
  1780 // -----------------------------------------------------------------------------
       
  1781 // COMASUPLProtocolManager2::SettingsUICompletedL
       
  1782 // 
       
  1783 // 
       
  1784 // -----------------------------------------------------------------------------
       
  1785 //
       
  1786 void COMASUPLProtocolManager2::SettingsUICompletedL(TInt aError)
       
  1787 	{
       
  1788 	iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUICompletedL"), KTraceFileName, __LINE__);
       
  1789     iSuplSettings->SetUIActive(EFalse);
       
  1790 
       
  1791     if (iDeInitDone)
       
  1792         {
       
  1793 	    iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUICompletedL, de-init done.  Completing request"), KTraceFileName, __LINE__);
       
  1794         iDeInitDone = EFalse;
       
  1795         User::RequestComplete(iDeInitRequestStatus,KErrNone);
       
  1796         }                
       
  1797     else
       
  1798         {
       
  1799     	for(TInt i = 0; i < iUIRequestArray.Count(); i++)
       
  1800     		{
       
  1801     			iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUICompletedL,Forwarding ConnRerquestor "), KTraceFileName, __LINE__);
       
  1802     			MOMASuplUICompletionObserver* observer = iUIRequestArray[i];
       
  1803     			observer->SettingsUICompletedL(aError);
       
  1804     		}
       
  1805         }
       
  1806         
       
  1807         iCurrentlyUsedHslp.Copy(_L(""));	
       
  1808         iUIRequestArray.Reset();
       
  1809     }
       
  1810 
  1745 
  1811 
  1746 // -----------------------------------------------------------------------------
  1812 // -----------------------------------------------------------------------------
  1747 // COMASUPLProtocolManager2::DeInitialize
  1813 // COMASUPLProtocolManager2::DeInitialize
  1748 // 
  1814 // 
  1749 // 
  1815 // 
  1796 	User::LeaveIfError(centralRepository->Get(KCoreAppUIsNetworkConnectionAllowed, networkMode));
  1862 	User::LeaveIfError(centralRepository->Get(KCoreAppUIsNetworkConnectionAllowed, networkMode));
  1797     CleanupStack::PopAndDestroy(centralRepository);
  1863     CleanupStack::PopAndDestroy(centralRepository);
  1798     return networkMode;
  1864     return networkMode;
  1799 	}
  1865 	}
  1800 
  1866 
  1801 
  1867 // -----------------------------------------------------------------------------
  1802 
  1868 // COMASUPLProtocolManager2::LaunchSuplUsageSettingsUI
  1803 
  1869 // 
  1804 
  1870 // 
       
  1871 // -----------------------------------------------------------------------------
       
  1872 //
       
  1873 
       
  1874 TInt COMASUPLProtocolManager2::LaunchSuplUsageSettingsUI(MOMASuplUICompletionObserver* aObserver, TBool aRoaming)	
       
  1875 	{
       
  1876 	iTrace->Trace(_L("COMASUPLProtocolManager2::LaunchSuplUsageSettingsUI"), KTraceFileName, __LINE__);
       
  1877     if (iSuplSettings->IsUIActive() && !iTimeOutDialogPresent)
       
  1878         return KErrInUse;                
       
  1879     // If timeout dialog is present, close it
       
  1880     if (iTimeOutDialogPresent)
       
  1881         {
       
  1882         iTimeOutDialogPresent = EFalse;
       
  1883         iSuplSettings->SetUIActive(EFalse);
       
  1884         iSettingsLauncher->Cancel();
       
  1885         }                
       
  1886     iSessnUIObserver = aObserver;            
       
  1887     iSuplSettings->SetUIActive(ETrue);
       
  1888     return iSettingsLauncher->LaunchSuplUsageSettingsUI(aRoaming);
       
  1889 	}
       
  1890 
       
  1891 // -----------------------------------------------------------------------------
       
  1892 // COMASUPLProtocolManager2::SettingsUsageUICompletedL
       
  1893 // 
       
  1894 // 
       
  1895 // -----------------------------------------------------------------------------
       
  1896 //
       
  1897 void COMASUPLProtocolManager2::SettingsUsageUICompletedL(TInt aError)
       
  1898 	{
       
  1899 	iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUsageUICompletedL"), KTraceFileName, __LINE__);
       
  1900     iSuplSettings->SetUIActive(EFalse);
       
  1901 
       
  1902     if (iDeInitDone)
       
  1903         {
       
  1904 	    iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUsageUICompletedL, de-init done.  Completing request"), KTraceFileName, __LINE__);
       
  1905         iDeInitDone = EFalse;
       
  1906         User::RequestComplete(iDeInitRequestStatus,KErrNone);
       
  1907         }                
       
  1908     else
       
  1909         {
       
  1910         if (iSessnUIObserver)                
       
  1911         	iSessnUIObserver->SettingsUsageUICompletedL(aError);
       
  1912         }
       
  1913 
       
  1914     CheckOutstandingUsageUIRequestsL();
       
  1915 	}
       
  1916 
       
  1917 // -----------------------------------------------------------------------------
       
  1918 // COMASUPLProtocolManager2::ReadSuplUsage
       
  1919 // Reads Supl Usage from Central Repository
       
  1920 // 
       
  1921 // -----------------------------------------------------------------------------
       
  1922 //
       
  1923 void COMASUPLProtocolManager2::ReadSuplUsage()
       
  1924 	{
       
  1925 	iTrace->Trace(_L("COMASUPLProtocolManager2::ReadSuplUsage start"), KTraceFileName, __LINE__);	
       
  1926 	CSuplSettings::TSuplSettingsUsage suplUsage;
       
  1927 	TInt err = iSuplStorageSettings->GetSuplUsage(suplUsage);		
       
  1928 	if(err == KErrNone ) 
       
  1929 		{
       
  1930 			iSuplSettings->SetSUPLUsage(suplUsage);
       
  1931 		}
       
  1932 	iTrace->Trace(_L("COMASUPLProtocolManager2::ReadSuplUsage end"), KTraceFileName, __LINE__);	
       
  1933 	}
  1805 
  1934 
  1806 void COMASUPLProtocolManager2::UpdateAllSubSessnsInSameSession(TInt aIpcSessionId)
  1935 void COMASUPLProtocolManager2::UpdateAllSubSessnsInSameSession(TInt aIpcSessionId)
  1807     {
  1936     {
  1808 	TInt TotalSession = iSuplSessions.Count();
  1937 	TInt TotalSession = iSuplSessions.Count();
  1809 	COMASuplSession* OMAsuplSession = NULL;
  1938 	COMASuplSession* OMAsuplSession = NULL;
  1811 	for(TInt cnt = 0; cnt < TotalSession; ++cnt)
  1940 	for(TInt cnt = 0; cnt < TotalSession; ++cnt)
  1812 		{
  1941 		{
  1813 			OMAsuplSession = static_cast<COMASuplSession*>(iSuplSessions[cnt]);
  1942 			OMAsuplSession = static_cast<COMASuplSession*>(iSuplSessions[cnt]);
  1814             TInt ipcSessnId = OMAsuplSession->SuplIpcSessionID();
  1943             TInt ipcSessnId = OMAsuplSession->SuplIpcSessionID();
  1815 
  1944 
       
  1945             if (ipcSessnId > 0 && ipcSessnId == aIpcSessionId)
       
  1946                 OMAsuplSession->UpdateSuplUsage();
  1816 		}
  1947 		}
  1817     }        
  1948     }        
  1818 
  1949 
  1819 
  1950 
  1820 void COMASUPLProtocolManager2::SettingsChanged()
  1951 void COMASUPLProtocolManager2::SettingsChanged()
  1826 		{
  1957 		{
  1827 			OMAsuplSession = static_cast<COMASuplSession*>(iSuplSessions[cnt]);
  1958 			OMAsuplSession = static_cast<COMASuplSession*>(iSuplSessions[cnt]);
  1828             OMAsuplSession->SettingsChanged();
  1959             OMAsuplSession->SettingsChanged();
  1829 		}
  1960 		}
  1830     }        
  1961     }        
  1831         
  1962 
       
  1963 void COMASUPLProtocolManager2::CheckOutstandingUsageUIRequestsL()
       
  1964     {
       
  1965 	TInt TotalSession = iSuplSessions.Count();
       
  1966 	COMASuplSession* OMAsuplSession = NULL;
       
  1967 
       
  1968 	for(TInt cnt = 0; cnt < TotalSession; ++cnt)
       
  1969 		{
       
  1970 			OMAsuplSession = static_cast<COMASuplSession*>(iSuplSessions[cnt]);
       
  1971 
       
  1972             if (OMAsuplSession->GetSuplUsageFlag())
       
  1973                 {                        
       
  1974                 OMAsuplSession->StartUsageDialogLaunchL();
       
  1975                 break;
       
  1976                 }
       
  1977 		}
       
  1978     }        
  1832 
  1979 
  1833 void COMASUPLProtocolManager2::CheckForRoaming()
  1980 void COMASUPLProtocolManager2::CheckForRoaming()
  1834     {
  1981     {
  1835 	iTrace->Trace(_L("COMASUPLProtocolManager2::CheckForRoaming"), KTraceFileName, __LINE__);
  1982 	iTrace->Trace(_L("COMASUPLProtocolManager2::CheckForRoaming"), KTraceFileName, __LINE__);
  1836     if (iRoamingCheckStarted)
  1983     if (iRoamingCheckStarted)
  1906             break;
  2053             break;
  1907             }
  2054             }
  1908         }            
  2055         }            
  1909     }            
  2056     }            
  1910 
  2057 
  1911 
  2058 // -----------------------------------------------------------------------------
       
  2059 // COMASUPLProtocolManager2::LaunchSuplDialogTimeoutUI
       
  2060 // 
       
  2061 // 
       
  2062 // -----------------------------------------------------------------------------
       
  2063 //
       
  2064 TInt COMASUPLProtocolManager2::LaunchSuplDialogTimeoutUI(MOMASuplUICompletionObserver* aObserver )
       
  2065     {
       
  2066     iTrace->Trace(_L("COMASUPLProtocolManager2::LaunchTimeOutUI"), KTraceFileName, __LINE__);
       
  2067     
       
  2068     iSessnUIObserver = aObserver;            
       
  2069     if (iSuplSettings->IsUIActive())
       
  2070         {
       
  2071         iSuplSettings->SetUIActive(EFalse);
       
  2072         iSettingsLauncher->Cancel();
       
  2073         }                
       
  2074 
       
  2075     iSuplSettings->SetUIActive(ETrue);
       
  2076     iTimeOutDialogPresent = ETrue;
       
  2077     return iSettingsLauncher->LaunchSessionTimeOutDialog();		
       
  2078     }
       
  2079 
       
  2080 // -----------------------------------------------------------------------------
       
  2081 // COMASUPLProtocolManager2::SettingsTimeOutUICompletedL
       
  2082 // 
       
  2083 // 
       
  2084 // -----------------------------------------------------------------------------
       
  2085 //
       
  2086 void COMASUPLProtocolManager2::SettingsTimeOutUICompletedL(TInt aError)
       
  2087 	{
       
  2088 	iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsTimeOutUICompletedL"), KTraceFileName, __LINE__);
       
  2089     iSuplSettings->SetUIActive(EFalse);
       
  2090     iTimeOutDialogPresent = EFalse;
       
  2091 
       
  2092     if (iDeInitDone)
       
  2093         {
       
  2094 	    iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsTimeOutUICompletedL, Completing request"), KTraceFileName, __LINE__);
       
  2095         iDeInitDone = EFalse;
       
  2096         User::RequestComplete(iDeInitRequestStatus,KErrNone);
       
  2097         }                
       
  2098     else
       
  2099         {
       
  2100         if (iSessnUIObserver)                
       
  2101         	iSessnUIObserver->SettingsTimeOutUICompletedL(aError);
       
  2102         }
       
  2103 	}
       
  2104 
       
  2105 // -----------------------------------------------------------------------------
       
  2106 // COMASUPLProtocolManager2::GetLastUsedAccessPoint
       
  2107 // 
       
  2108 // 
       
  2109 // -----------------------------------------------------------------------------
       
  2110 //
       
  2111 TInt COMASUPLProtocolManager2::GetLastUsedAccessPoint(TDes& aLastlyUsedAccessPoint,TUint32& iIAPId)
       
  2112 	{
       
  2113 	return iSettingsLauncher->GetIAPName(aLastlyUsedAccessPoint,iIAPId);
       
  2114 	}
  1912 
  2115 
  1913 // -----------------------------------------------------------------------------
  2116 // -----------------------------------------------------------------------------
  1914 // COMASUPLProtocolManager2::PrintHex
  2117 // COMASUPLProtocolManager2::PrintHex
  1915 // 
  2118 // 
  1916 // -----------------------------------------------------------------------------
  2119 // -----------------------------------------------------------------------------