--- 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
-