locationmanager/locationtrail/src/cnetworkinfo.cpp
branchRCL_3
changeset 63 e538444823de
parent 47 b73252188534
--- a/locationmanager/locationtrail/src/cnetworkinfo.cpp	Wed Sep 15 12:40:59 2010 +0300
+++ b/locationmanager/locationtrail/src/cnetworkinfo.cpp	Wed Oct 13 15:02:02 2010 +0300
@@ -20,9 +20,6 @@
 #include "cnetworkinfo.h"
 #include "locationmanagerdebug.h"
 
-
-
-
 // --------------------------------------------------------------------------
 // CNetworkInfo::NewL
 // --------------------------------------------------------------------------
@@ -34,6 +31,7 @@
     CleanupStack::PushL( self );
     self->ConstructL();
     CleanupStack::Pop( self );
+    LOG( "CNetworkInfo::NewL(), end" );
     return self;
     }
         
@@ -43,13 +41,12 @@
 //  
 CNetworkInfo::CNetworkInfo( MNetworkInfoObserver* aTrail ) 
     : CActive( CActive::EPriorityStandard ),
-    iTrail ( aTrail ),
-    iMobilePhone(aTrail->GetMobilePhone4NwInfo()),
-    iState( ENetworkInfoNoOptState ),
-    
-    iMMNetworkInfoPckg( iMMNetworkInfo ) 
+    iFirstTime( EFalse ),
+    iTelephony( NULL ),
+    iNetworkInfoV1Pckg( iNetworkInfoV1 ) 
     {
     CActiveScheduler::Add( this );
+    iTrail = aTrail;
     }
 
 // --------------------------------------------------------------------------
@@ -59,7 +56,17 @@
 void CNetworkInfo::ConstructL()
     {
 	LOG( "CNetworkInfo::ConstructL(), begin" );
-    StartNwInfoChangeNotifier();
+	iFirstTime = ETrue;
+    iTelephony = CTelephony::NewL();
+    iTelephony->GetCurrentNetworkInfo(iStatus, iNetworkInfoV1Pckg);
+    LOG( "CNetworkInfo::ConstructL(), iTelephony->GetCurrentNetworkInfo called" );
+    
+   	if ( IsActive() )
+    	{
+    	Cancel();
+        }    
+    SetActive();
+    
     LOG( "CNetworkInfo::ConstructL(), end" );
     }
     
@@ -69,8 +76,8 @@
 //    
 EXPORT_C CNetworkInfo::~CNetworkInfo()
     {
-    // we are not owning RMobilePhone obj.. DON'T CLOSE it.
     Cancel();
+    delete iTelephony;
     }
 
 // --------------------------------------------------------------------------
@@ -83,61 +90,25 @@
     }    
 
 // --------------------------------------------------------------------------
-// CNetworkInfo::StartNwInfoChangeNotifier
-// --------------------------------------------------------------------------
-//    
-EXPORT_C void CNetworkInfo::StartNwInfoChangeNotifier()
-    { 
-	LOG( "CNetworkInfo::StartNwInfoChangeNotifier(), begin" );   
-   	if ( !IsActive())
-    	{
-    	// get current n/w info first and from RunL start notifier
-        iState = ENetworkInfoOptGetState; 
-        
-        iMobilePhone.GetCurrentNetwork(iStatus, iMMNetworkInfoPckg, iMMArea);
-        SetActive();
-        }
-    
-    LOG( "CNetworkInfo::StartNwInfoChangeNotifier(), end" ); 
-    }    
-
-// --------------------------------------------------------------------------
-// CNetworkInfo::StopNwInfoChangeNotifier
-// --------------------------------------------------------------------------
-//    
-EXPORT_C void CNetworkInfo::StopNwInfoChangeNotifier()
-    { 
-	LOG( "CNetworkInfo::StopNwInfoChangeNotifier(), begin" );   
-    Cancel();
-    iState = ENetworkInfoNoOptState;
-    LOG( "CNetworkInfo::StopNwInfoChangeNotifier(), end" ); 
-    }    
-
-// --------------------------------------------------------------------------
 // CNetworkInfo::RunL
 // --------------------------------------------------------------------------
 //    
 void CNetworkInfo::RunL()
     { 
 	LOG( "CNetworkInfo::RunL(), begin" );   
-	// reset the flag first
-    iState = ENetworkInfoNoOptState;
-    if(iStatus == KErrNone)
-        {
-        // convert the network info to CTelephony network info. just to give backward compatibility
-        MapNetworkInfo(&iNetworkInfoV1, &iMMNetworkInfo, &iMMArea);
-        }
-    if(iTrail)
-        {
-        iTrail->NetworkInfo( iNetworkInfoV1, iStatus.Int() );
-        }
-    // listen to n/w info change
-   	if ( !IsActive() )
+	iFirstTime = EFalse; 
+    iTrail->NetworkInfo( iNetworkInfoV1, iStatus.Int() );
+    LOG( "CNetworkInfo::RunL(), iTrail->NetworkInfo called" );   
+    
+    iTelephony->NotifyChange(iStatus, CTelephony::ECurrentNetworkInfoChange, iNetworkInfoV1Pckg);
+    LOG( "CNetworkInfo::RunL(), iTelephony->NotifyChange called" );
+      
+   	if ( IsActive() )
     	{
-    	iState = ENetworkInfoOptNotifyState;
-        iMobilePhone.NotifyCurrentNetworkChange(iStatus,iMMNetworkInfoPckg, iMMArea);
-        SetActive();
-        }
+    	Cancel();
+        }    
+    SetActive();
+    
     LOG( "CNetworkInfo::RunL(), end" ); 
     }    
 
@@ -147,190 +118,21 @@
 // 
 void CNetworkInfo::DoCancel()
     {
-	LOG1( "CNetworkInfo::DoCancel(), begin. State - %d", iState);
-	switch ( iState )    
-        {   
-        case ENetworkInfoOptGetState:
+	LOG( "CNetworkInfo::DoCancel(), begin" );
+	if ( IsActive() )
+		{
+    	if ( iFirstTime )    
         	{
-        	LOG( "Cancel get current n/w info change" );
-        	iMobilePhone.CancelAsyncRequest( EMobilePhoneGetCurrentNetwork);
-            break;
+	    	LOG( "CNetworkInfo::DoCancel(), cancelling CTelephony::EGetCurrentNetworkInfoCancel" );
+        	iTelephony->CancelAsync( CTelephony::EGetCurrentNetworkInfoCancel );
         	}
-        case ENetworkInfoOptNotifyState:
+    	else
     		{
-        	LOG( "Cancel current n/w info change" );
-        	iMobilePhone.CancelAsyncRequest( EMobilePhoneNotifyCurrentNetworkChange);
-            break;
-        	}
-        default:
-            break;
-        }
-    iState = ENetworkInfoNoOptState;
+	    	LOG( "CNetworkInfo::DoCancel(), cancelling CTelephony::ECurrentNetworkInfoChangeCancel" );
+	    	iTelephony->CancelAsync( CTelephony::ECurrentNetworkInfoChangeCancel );	
+    		}
+		}	
    	LOG( "CNetworkInfo::DoCancel(), end" );
     }
 
-// --------------------------------------------------------------------------
-// CNetworkInfo::MapNetworkInfo
-// --------------------------------------------------------------------------
-// 
-EXPORT_C void CNetworkInfo::MapNetworkInfo(CTelephony::TNetworkInfoV1* aTelNetworkInfo, 
-    RMobilePhone::TMobilePhoneNetworkInfoV2* aMMNetworkInfo, 
-    RMobilePhone::TMobilePhoneLocationAreaV1* aMMArea)
-	{
-   	LOG( "CNetworkInfo::MapNetworkInfo(), begin" );
-	switch(aMMNetworkInfo->iMode)
-		{
-		case RMobilePhone::ENetworkModeUnknown: 
-			aTelNetworkInfo->iMode=CTelephony::ENetworkModeUnknown;
-			break;
-		case RMobilePhone::ENetworkModeUnregistered:
-			aTelNetworkInfo->iMode=CTelephony::ENetworkModeUnregistered;
-			break;
-		case RMobilePhone::ENetworkModeGsm:
-			aTelNetworkInfo->iMode=CTelephony::ENetworkModeGsm;
-			break;
-		case RMobilePhone::ENetworkModeAmps:
-			aTelNetworkInfo->iMode=CTelephony::ENetworkModeAmps;
-			break;			
-		case RMobilePhone::ENetworkModeCdma95:
-			aTelNetworkInfo->iMode=CTelephony::ENetworkModeCdma95;
-			break;
-		case RMobilePhone::ENetworkModeCdma2000:
-			aTelNetworkInfo->iMode=CTelephony::ENetworkModeCdma2000;
-			break;
-		case RMobilePhone::ENetworkModeWcdma:
-			aTelNetworkInfo->iMode=CTelephony::ENetworkModeWcdma;
-			break;
-		case RMobilePhone::ENetworkModeTdcdma:
-			aTelNetworkInfo->iMode=CTelephony::ENetworkModeTdcdma;
-			break;
-		default:
-			aTelNetworkInfo->iMode=CTelephony::ENetworkModeUnknown;
-		}	
-
-	switch(aMMNetworkInfo->iStatus)
-		{
-		case RMobilePhone::ENetworkStatusUnknown: 
-			aTelNetworkInfo->iStatus=CTelephony::ENetworkStatusUnknown;
-			break;
-		case RMobilePhone::ENetworkStatusAvailable:
-			aTelNetworkInfo->iStatus=CTelephony::ENetworkStatusAvailable;
-			break;
-		case RMobilePhone::ENetworkStatusCurrent:
-			aTelNetworkInfo->iStatus=CTelephony::ENetworkStatusCurrent;
-			break;
-		case RMobilePhone::ENetworkStatusForbidden:
-			aTelNetworkInfo->iStatus=CTelephony::ENetworkStatusForbidden;
-			break;			
-		default:
-			aTelNetworkInfo->iStatus=CTelephony::ENetworkStatusUnknown;
-		}	
-			
-	switch(aMMNetworkInfo->iBandInfo)
-		{
-		case RMobilePhone::EBandUnknown: 
-			aTelNetworkInfo->iBandInfo=CTelephony::EBandUnknown;
-			break;
-		case RMobilePhone::E800BandA:
-			aTelNetworkInfo->iBandInfo=CTelephony::E800BandA;
-			break;
-		case RMobilePhone::E800BandB:
-			aTelNetworkInfo->iBandInfo=CTelephony::E800BandB;
-			break;
-		case RMobilePhone::E800BandC:
-			aTelNetworkInfo->iBandInfo=CTelephony::E800BandC;
-			break;			
-		case RMobilePhone::E1900BandA:
-			aTelNetworkInfo->iBandInfo=CTelephony::E1900BandA;
-			break;
-		case RMobilePhone::E1900BandB:
-			aTelNetworkInfo->iBandInfo=CTelephony::E1900BandB;
-			break;
-		case RMobilePhone::E1900BandC:
-			aTelNetworkInfo->iBandInfo=CTelephony::E1900BandC;
-			break;
-		case RMobilePhone::E1900BandD:
-			aTelNetworkInfo->iBandInfo=CTelephony::E1900BandD;
-			break;
-		case RMobilePhone::E1900BandE:
-			aTelNetworkInfo->iBandInfo=CTelephony::E1900BandE;
-			break;
-		case RMobilePhone::E1900BandF:
-			aTelNetworkInfo->iBandInfo=CTelephony::E1900BandF;
-			break;
-		default:
-			aTelNetworkInfo->iBandInfo=CTelephony::EBandUnknown;
-		}			
-	
-	aTelNetworkInfo->iCountryCode.Copy(aMMNetworkInfo->iCountryCode);
-	aTelNetworkInfo->iNetworkId.Copy(aMMNetworkInfo->iNetworkId);
-	aTelNetworkInfo->iDisplayTag.Copy(aMMNetworkInfo->iDisplayTag);
-	
-	TInt maxLength = aTelNetworkInfo->iShortName.MaxLength();
-	if (aMMNetworkInfo->iShortName.Length() > maxLength)
-		{
-		aTelNetworkInfo->iShortName.Copy(aMMNetworkInfo->iShortName.Ptr(), maxLength);
-		}
-	else
-		{
-		aTelNetworkInfo->iShortName.Copy(aMMNetworkInfo->iShortName);		
-		}
-	
-	maxLength = aTelNetworkInfo->iLongName.MaxLength();
-
-	if (aMMNetworkInfo->iLongName.Length() > maxLength)
-		{
-		aTelNetworkInfo->iLongName.Copy(aMMNetworkInfo->iLongName.Ptr(), maxLength);
-		}
-	else
-		{
-		aTelNetworkInfo->iLongName.Copy(aMMNetworkInfo->iLongName);	
-		}
-	
-	aTelNetworkInfo->iCdmaSID.Copy(aMMNetworkInfo->iCdmaSID);
-	
-	if(aMMArea)
-		{
-		aTelNetworkInfo->iAreaKnown=aMMArea->iAreaKnown;
-		aTelNetworkInfo->iLocationAreaCode=aMMArea->iLocationAreaCode;
-		aTelNetworkInfo->iCellId=aMMArea->iCellId;	
-		}
-	else
-		{
-		aTelNetworkInfo->iAreaKnown=EFalse;
-		aTelNetworkInfo->iLocationAreaCode=0;
-		aTelNetworkInfo->iCellId=0;	
-		}
-	
-	//check which paramater class version this is.		
-	switch(aMMNetworkInfo->iAccess)
-		{
-		case RMobilePhone::ENetworkAccessUnknown: 
-			aTelNetworkInfo->iAccess=CTelephony::ENetworkAccessUnknown;
-			break;
-		case RMobilePhone::ENetworkAccessGsm:
-			aTelNetworkInfo->iAccess=CTelephony::ENetworkAccessGsm;
-			break;
-		case RMobilePhone::ENetworkAccessGsmCompact:
-			aTelNetworkInfo->iAccess=CTelephony::ENetworkAccessGsmCompact;
-			break;
-		case RMobilePhone::ENetworkAccessUtran:
-			aTelNetworkInfo->iAccess=CTelephony::ENetworkAccessUtran;
-			break;			
-		default:
-			aTelNetworkInfo->iAccess=CTelephony::ENetworkAccessUnknown;
-		}						
-		
-   	LOG( "CNetworkInfo::MapNetworkInfo(), end" );
-	}
-
-// ----------------------------------------------------------------------------
-// CNetworkInfo::GetCurrentRegisterNw()
-// ---------------------------------------------------------------------------- 
-RMobilePhone::TMobilePhoneNetworkInfoV2& CNetworkInfo::GetCurrentRegisterNw()
-    {
-    return iMMNetworkInfo;
-    }
-
 // End of file
-