diff -r 000000000000 -r 3553901f7fa8 telephonyutils/etel3rdpartyapi/src/TelephonyActNetwork.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyutils/etel3rdpartyapi/src/TelephonyActNetwork.cpp Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,914 @@ +/* +* Copyright (c) 2009 Sony Ericsson Mobile Communications AB +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Sony Ericsson Mobile Communications AB - initial contribution. +* Nokia Corporation - additional changes. +* +* Contributors: +* +* Description: +* Code for TelephonyActNetwork class, used by CTelephonyFunctions class. +* +*/ + + +/** + @file +*/ + +#include "TelephonyFunctions.h" +#include "TelephonyActNetwork.h" + + +CGetNetworkRegistrationStatusAct* CGetNetworkRegistrationStatusAct::NewL(CTelephonyFunctions* aTelephonyFunctions) +/** +Public constructor which can Leave(). + +@param aTelephonyFunctions Object that constructs us. +@leave Leaves if no memory. +*/ + { + CGetNetworkRegistrationStatusAct* self = new(ELeave) CGetNetworkRegistrationStatusAct(aTelephonyFunctions); + CActiveScheduler::Add(self); + return self; + } + +CGetNetworkRegistrationStatusAct::~CGetNetworkRegistrationStatusAct() +/** +Destructor +*/ + { + Cancel(); + Complete(); + } + +void CGetNetworkRegistrationStatusAct::GetNetworkRegistrationStatus(TDes8& aId) +/** +Issue Request +*/ + { + iISVNetworkRegistration = reinterpret_cast ( const_cast (aId.Ptr()) ); + iTelephonyFunctions->Phone()->GetNetworkRegistrationStatus(iStatus, iMMNetworkRegistration); + SetActive(); + } + +void CGetNetworkRegistrationStatusAct::Complete() +/** +Service Completed request. +*/ + { + if(iTelephonyFunctions->IsRequestPending(CTelephonyFunctions::EGetNetworkRegistrationStatus)) + { + if(iStatus==KErrNone) + { + GetRegistrationStatus(iMMNetworkRegistration, iISVNetworkRegistration->iRegStatus); + } + iTelephonyFunctions->CompleteRequest(CTelephonyFunctions::EGetNetworkRegistrationStatus, iStatus.Int()); + } + } + +void CGetNetworkRegistrationStatusAct::GetRegistrationStatus(const RMobilePhone::TMobilePhoneRegistrationStatus aMMRegStatus, CTelephony::TRegistrationStatus& aTelRegStatus) + { + switch(aMMRegStatus) + { + case RMobilePhone::ERegistrationUnknown: + aTelRegStatus=CTelephony::ERegistrationUnknown; + break; + case RMobilePhone::ENotRegisteredNoService: + aTelRegStatus=CTelephony::ENotRegisteredNoService; + break; + case RMobilePhone::ENotRegisteredEmergencyOnly: + aTelRegStatus=CTelephony::ENotRegisteredEmergencyOnly; + break; + case RMobilePhone::ENotRegisteredSearching: + aTelRegStatus=CTelephony::ENotRegisteredSearching; + break; + case RMobilePhone::ERegisteredBusy: + aTelRegStatus=CTelephony::ERegisteredBusy; + break; + case RMobilePhone::ERegisteredOnHomeNetwork: + aTelRegStatus=CTelephony::ERegisteredOnHomeNetwork; + break; + case RMobilePhone::ERegistrationDenied: + aTelRegStatus=CTelephony::ERegistrationDenied; + break; + case RMobilePhone::ERegisteredRoaming: + aTelRegStatus=CTelephony::ERegisteredRoaming; + break; + default: + aTelRegStatus=CTelephony::ERegistrationUnknown; + } + } + +TInt CGetNetworkRegistrationStatusAct::RunError(TInt aLeaveCode) +/** +Handle any Leave() from inside RunL(). + +@param aLeaveCode passed in if RunL Leaves. +@return KErrNone. +*/ + { + iTelephonyFunctions->CompleteRequest(CTelephonyFunctions::EGetNetworkRegistrationStatus, aLeaveCode); + return KErrNone; // to ActiveScheduler. + } + +void CGetNetworkRegistrationStatusAct::DoCancel() +/** +Cancel request. + +Async request to dial is cancelled. +*/ + { + iTelephonyFunctions->Phone()->CancelAsyncRequest(EMobilePhoneGetNetworkRegistrationStatus); + } + + +CGetNetworkRegistrationStatusAct::CGetNetworkRegistrationStatusAct(CTelephonyFunctions* aTelephonyFunctions) +: CAsyncRequestBaseAct(), + iTelephonyFunctions(aTelephonyFunctions) +/** +First-phase constructor which cannot Leave(). + +@param aTelephonyFunctions Object that constructs us. +*/ + { + } + + +CGetCurrentNetworkInfoAct* CGetCurrentNetworkInfoAct::NewL(CTelephonyFunctions* aTelephonyFunctions) +/** +Public constructor which can Leave(). + +@param aTelephonyFunctions Object that constructs us. +@leave Leaves if no memory. +*/ + { + CGetCurrentNetworkInfoAct* self = new(ELeave) CGetCurrentNetworkInfoAct(aTelephonyFunctions); + CActiveScheduler::Add(self); + return self; + } + +CGetCurrentNetworkInfoAct::~CGetCurrentNetworkInfoAct() +/** +Destructor +*/ + { + Cancel(); + Complete(); + } + +void CGetCurrentNetworkInfoAct::GetCurrentNetworkInfo(TDes8& aPckg) +/** +Issue Request +*/ + { + iISVNetworkInfo = reinterpret_cast ( const_cast (aPckg.Ptr()) ); + + iPostedIPC = EMobilePhoneGetCurrentNetwork; + iTelephonyFunctions->Phone()->GetCurrentNetwork(iStatus, iMMNetworkInfoPckg, iMMArea); + + SetActive(); + } + + +void CGetCurrentNetworkInfoAct::Complete() +/** +Service Completed request. +*/ + { + if(iTelephonyFunctions->IsRequestPending(CTelephonyFunctions::EGetCurrentNetworkInfo)) + { + if(iStatus==KErrNone) + { + MapNetworkInfo(iISVNetworkInfo, &iMMNetworkInfo, &iMMArea); + } + iTelephonyFunctions->CompleteRequest(CTelephonyFunctions::EGetCurrentNetworkInfo, iStatus.Int()); + } + } + + +TInt CGetCurrentNetworkInfoAct::RunError(TInt aLeaveCode) +/** +Handle any Leave() from inside RunL(). + +@param aLeaveCode passed in if RunL Leaves. +@return KErrNone. +*/ + { + iTelephonyFunctions->CompleteRequest(CTelephonyFunctions::EGetCurrentNetworkInfo, aLeaveCode); + return KErrNone; // to ActiveScheduler. + } + +void CGetCurrentNetworkInfoAct::DoCancel() +/** +Cancel request. + +Async request to dial is cancelled. +*/ + { + iTelephonyFunctions->Phone()->CancelAsyncRequest(iPostedIPC); + } + + +/** +Map RMobilePhone::TMobilePhoneNetworkInfoV2 to CTelephony::TEtelISVType +*/ +void CGetCurrentNetworkInfoAct::MapNetworkInfo(CTelephony::TEtelISVType* aISVNetworkInfo, RMobilePhone::TMobilePhoneNetworkInfoV2* aMMNetworkInfo, RMobilePhone::TMobilePhoneLocationAreaV1* aMMArea) + { + switch (aISVNetworkInfo->VersionId()) + { + case CTelephony::KEtelISVV1: + { + CTelephony::TNetworkInfoV1* tempInfo = reinterpret_cast(aISVNetworkInfo); + switch(aMMNetworkInfo->iMode) + { + case RMobilePhone::ENetworkModeUnknown: + tempInfo->iMode=CTelephony::ENetworkModeUnknown; + break; + case RMobilePhone::ENetworkModeUnregistered: + tempInfo->iMode=CTelephony::ENetworkModeUnregistered; + break; + case RMobilePhone::ENetworkModeGsm: + tempInfo->iMode=CTelephony::ENetworkModeGsm; + break; + case RMobilePhone::ENetworkModeAmps: + tempInfo->iMode=CTelephony::ENetworkModeAmps; + break; + case RMobilePhone::ENetworkModeCdma95: + tempInfo->iMode=CTelephony::ENetworkModeCdma95; + break; + case RMobilePhone::ENetworkModeCdma2000: + tempInfo->iMode=CTelephony::ENetworkModeCdma2000; + break; + case RMobilePhone::ENetworkModeWcdma: + tempInfo->iMode=CTelephony::ENetworkModeWcdma; + break; + case RMobilePhone::ENetworkModeTdcdma: + tempInfo->iMode=CTelephony::ENetworkModeTdcdma; + break; + default: + tempInfo->iMode=CTelephony::ENetworkModeUnknown; + } + + switch(aMMNetworkInfo->iStatus) + { + case RMobilePhone::ENetworkStatusUnknown: + tempInfo->iStatus=CTelephony::ENetworkStatusUnknown; + break; + case RMobilePhone::ENetworkStatusAvailable: + tempInfo->iStatus=CTelephony::ENetworkStatusAvailable; + break; + case RMobilePhone::ENetworkStatusCurrent: + tempInfo->iStatus=CTelephony::ENetworkStatusCurrent; + break; + case RMobilePhone::ENetworkStatusForbidden: + tempInfo->iStatus=CTelephony::ENetworkStatusForbidden; + break; + default: + tempInfo->iStatus=CTelephony::ENetworkStatusUnknown; + } + + switch(aMMNetworkInfo->iBandInfo) + { + case RMobilePhone::EBandUnknown: + tempInfo->iBandInfo=CTelephony::EBandUnknown; + break; + case RMobilePhone::E800BandA: + tempInfo->iBandInfo=CTelephony::E800BandA; + break; + case RMobilePhone::E800BandB: + tempInfo->iBandInfo=CTelephony::E800BandB; + break; + case RMobilePhone::E800BandC: + tempInfo->iBandInfo=CTelephony::E800BandC; + break; + case RMobilePhone::E1900BandA: + tempInfo->iBandInfo=CTelephony::E1900BandA; + break; + case RMobilePhone::E1900BandB: + tempInfo->iBandInfo=CTelephony::E1900BandB; + break; + case RMobilePhone::E1900BandC: + tempInfo->iBandInfo=CTelephony::E1900BandC; + break; + case RMobilePhone::E1900BandD: + tempInfo->iBandInfo=CTelephony::E1900BandD; + break; + case RMobilePhone::E1900BandE: + tempInfo->iBandInfo=CTelephony::E1900BandE; + break; + case RMobilePhone::E1900BandF: + tempInfo->iBandInfo=CTelephony::E1900BandF; + break; + default: + tempInfo->iBandInfo=CTelephony::EBandUnknown; + } + + tempInfo->iCountryCode.Copy(aMMNetworkInfo->iCountryCode); + tempInfo->iNetworkId.Copy(aMMNetworkInfo->iNetworkId); + tempInfo->iDisplayTag.Copy(aMMNetworkInfo->iDisplayTag); + + TInt maxLength = tempInfo->iShortName.MaxLength(); + if (aMMNetworkInfo->iShortName.Length() > maxLength) + { + tempInfo->iShortName.Copy(aMMNetworkInfo->iShortName.Ptr(), maxLength); + } + else + { + tempInfo->iShortName.Copy(aMMNetworkInfo->iShortName); + } + + maxLength = tempInfo->iLongName.MaxLength(); + + if (aMMNetworkInfo->iLongName.Length() > maxLength) + { + tempInfo->iLongName.Copy(aMMNetworkInfo->iLongName.Ptr(), maxLength); + } + else + { + tempInfo->iLongName.Copy(aMMNetworkInfo->iLongName); + } + + tempInfo->iCdmaSID.Copy(aMMNetworkInfo->iCdmaSID); + + if(aMMArea) + { + tempInfo->iAreaKnown=aMMArea->iAreaKnown; + tempInfo->iLocationAreaCode=aMMArea->iLocationAreaCode; + tempInfo->iCellId=aMMArea->iCellId; + } + else + { + tempInfo->iAreaKnown=EFalse; + tempInfo->iLocationAreaCode=0; + tempInfo->iCellId=0; + } + + //check which paramater class version this is. + switch(aMMNetworkInfo->iAccess) + { + case RMobilePhone::ENetworkAccessUnknown: + tempInfo->iAccess=CTelephony::ENetworkAccessUnknown; + break; + case RMobilePhone::ENetworkAccessGsm: + tempInfo->iAccess=CTelephony::ENetworkAccessGsm; + break; + case RMobilePhone::ENetworkAccessGsmCompact: + tempInfo->iAccess=CTelephony::ENetworkAccessGsmCompact; + break; + case RMobilePhone::ENetworkAccessUtran: + tempInfo->iAccess=CTelephony::ENetworkAccessUtran; + break; + default: + tempInfo->iAccess=CTelephony::ENetworkAccessUnknown; + } + + } + break; + case CTelephony::KEtelISVV2: + { + CTelephony::TNetworkInfoV2* tempInfo = reinterpret_cast(aISVNetworkInfo); + switch(aMMNetworkInfo->iMode) + { + case RMobilePhone::ENetworkModeUnknown: + tempInfo->iMode=CTelephony::ENetworkModeUnknown; + break; + case RMobilePhone::ENetworkModeUnregistered: + tempInfo->iMode=CTelephony::ENetworkModeUnregistered; + break; + case RMobilePhone::ENetworkModeGsm: + tempInfo->iMode=CTelephony::ENetworkModeGsm; + break; + case RMobilePhone::ENetworkModeAmps: + tempInfo->iMode=CTelephony::ENetworkModeAmps; + break; + case RMobilePhone::ENetworkModeCdma95: + tempInfo->iMode=CTelephony::ENetworkModeCdma95; + break; + case RMobilePhone::ENetworkModeCdma2000: + tempInfo->iMode=CTelephony::ENetworkModeCdma2000; + break; + case RMobilePhone::ENetworkModeWcdma: + tempInfo->iMode=CTelephony::ENetworkModeWcdma; + break; + case RMobilePhone::ENetworkModeTdcdma: + tempInfo->iMode=CTelephony::ENetworkModeTdcdma; + break; + default: + tempInfo->iMode=CTelephony::ENetworkModeUnknown; + } + + switch(aMMNetworkInfo->iStatus) + { + case RMobilePhone::ENetworkStatusUnknown: + tempInfo->iStatus=CTelephony::ENetworkStatusUnknown; + break; + case RMobilePhone::ENetworkStatusAvailable: + tempInfo->iStatus=CTelephony::ENetworkStatusAvailable; + break; + case RMobilePhone::ENetworkStatusCurrent: + tempInfo->iStatus=CTelephony::ENetworkStatusCurrent; + break; + case RMobilePhone::ENetworkStatusForbidden: + tempInfo->iStatus=CTelephony::ENetworkStatusForbidden; + break; + default: + tempInfo->iStatus=CTelephony::ENetworkStatusUnknown; + } + + switch(aMMNetworkInfo->iBandInfo) + { + case RMobilePhone::EBandUnknown: + tempInfo->iBandInfo=CTelephony::EBandUnknown; + break; + case RMobilePhone::E800BandA: + tempInfo->iBandInfo=CTelephony::E800BandA; + break; + case RMobilePhone::E800BandB: + tempInfo->iBandInfo=CTelephony::E800BandB; + break; + case RMobilePhone::E800BandC: + tempInfo->iBandInfo=CTelephony::E800BandC; + break; + case RMobilePhone::E1900BandA: + tempInfo->iBandInfo=CTelephony::E1900BandA; + break; + case RMobilePhone::E1900BandB: + tempInfo->iBandInfo=CTelephony::E1900BandB; + break; + case RMobilePhone::E1900BandC: + tempInfo->iBandInfo=CTelephony::E1900BandC; + break; + case RMobilePhone::E1900BandD: + tempInfo->iBandInfo=CTelephony::E1900BandD; + break; + case RMobilePhone::E1900BandE: + tempInfo->iBandInfo=CTelephony::E1900BandE; + break; + case RMobilePhone::E1900BandF: + tempInfo->iBandInfo=CTelephony::E1900BandF; + break; + default: + tempInfo->iBandInfo=CTelephony::EBandUnknown; + } + + tempInfo->iCountryCode.Copy(aMMNetworkInfo->iCountryCode); + tempInfo->iNetworkId.Copy(aMMNetworkInfo->iNetworkId); + tempInfo->iDisplayTag.Copy(aMMNetworkInfo->iDisplayTag); + + TInt maxLength = tempInfo->iShortName.MaxLength(); + if (aMMNetworkInfo->iShortName.Length() > maxLength) + { + tempInfo->iShortName.Copy(aMMNetworkInfo->iShortName.Ptr(), maxLength); + } + else + { + tempInfo->iShortName.Copy(aMMNetworkInfo->iShortName); + } + + maxLength = tempInfo->iLongName.MaxLength(); + if (aMMNetworkInfo->iLongName.Length() > maxLength) + { + tempInfo->iLongName.Copy(aMMNetworkInfo->iLongName.Ptr(), maxLength); + } + else + { + tempInfo->iLongName.Copy(aMMNetworkInfo->iLongName); + } + + tempInfo->iCdmaSID.Copy(aMMNetworkInfo->iCdmaSID); + + if(aMMArea) + { + tempInfo->iAreaKnown=aMMArea->iAreaKnown; + tempInfo->iLocationAreaCode=aMMArea->iLocationAreaCode; + tempInfo->iCellId=aMMArea->iCellId; + } + else + { + tempInfo->iAreaKnown=EFalse; + tempInfo->iLocationAreaCode=0; + tempInfo->iCellId=0; + } + + //check which paramater class version this is. + switch(aMMNetworkInfo->iAccess) + { + case RMobilePhone::ENetworkAccessUnknown: + tempInfo->iAccess=CTelephony::ENetworkAccessUnknown; + break; + case RMobilePhone::ENetworkAccessGsm: + tempInfo->iAccess=CTelephony::ENetworkAccessGsm; + break; + case RMobilePhone::ENetworkAccessGsmCompact: + tempInfo->iAccess=CTelephony::ENetworkAccessGsmCompact; + break; + case RMobilePhone::ENetworkAccessUtran: + tempInfo->iAccess=CTelephony::ENetworkAccessUtran; + break; + default: + tempInfo->iAccess=CTelephony::ENetworkAccessUnknown; + } + } + break; + } + } + +CGetCurrentNetworkInfoAct::CGetCurrentNetworkInfoAct(CTelephonyFunctions* aTelephonyFunctions) +: CAsyncRequestBaseAct(), + iTelephonyFunctions(aTelephonyFunctions), + iMMNetworkInfoPckg(iMMNetworkInfo) +/** +First-phase constructor which cannot Leave(). + +@param aTelephonyFunctions Object that constructs us. +*/ + { + } + + +CGetCurrentNetworkNameAct* CGetCurrentNetworkNameAct::NewL(CTelephonyFunctions* aTelephonyFunctions) +/** +Public constructor which can Leave(). + +@param aTelephonyFunctions Object that constructs us. +@leave Leaves if no memory. +*/ + { + CGetCurrentNetworkNameAct* self = new(ELeave) CGetCurrentNetworkNameAct(aTelephonyFunctions); + CActiveScheduler::Add(self); + return self; + } + +CGetCurrentNetworkNameAct::~CGetCurrentNetworkNameAct() +/** +Destructor +*/ + { + Cancel(); + Complete(); + } + +void CGetCurrentNetworkNameAct::GetCurrentNetworkName(TDes8& aPckg) +/** +Issue Request +*/ + { + iISVCurrentNetworkName = reinterpret_cast ( const_cast (aPckg.Ptr()) ); + + iTelephonyFunctions->Phone()->GetCurrentNetworkName(iStatus, iMMNetworkNameV3Pckg, iLocInfoPckg); + SetActive(); + } + +void CGetCurrentNetworkNameAct::Complete() +/** +Service Completed request. +*/ + { + if(iTelephonyFunctions->IsRequestPending(CTelephonyFunctions::EGetCurrentNetworkName)) + { + if(iStatus==KErrNone) + { + switch(iISVCurrentNetworkName->VersionId()) + { + case CTelephony::KEtelISVV1: + { + CTelephony::TNetworkNameV1* tempNetName = reinterpret_cast(iISVCurrentNetworkName); + TInt maxLength = tempNetName->iNetworkName.MaxLength(); + if (iMMNetworkNameV3.iLongName.Length() > maxLength) + { + tempNetName->iNetworkName.Copy(iMMNetworkNameV3.iLongName.Ptr(), maxLength); + } + else + { + tempNetName->iNetworkName.Copy(iMMNetworkNameV3.iLongName); + } + } + break; + case CTelephony::KEtelISVV2: + { + CTelephony::TNetworkNameV2* tempNetName = reinterpret_cast(iISVCurrentNetworkName); + TInt maxLength = tempNetName->iNetworkName.MaxLength(); + if (iMMNetworkNameV3.iLongName.Length() > maxLength) + { + tempNetName->iNetworkName.Copy(iMMNetworkNameV3.iLongName.Ptr(), maxLength); + } + else + { + tempNetName->iNetworkName.Copy(iMMNetworkNameV3.iLongName); + } + } + break; + } + + } + iTelephonyFunctions->CompleteRequest(CTelephonyFunctions::EGetCurrentNetworkName, iStatus.Int()); + } + } + + +TInt CGetCurrentNetworkNameAct::RunError(TInt aLeaveCode) +/** +Handle any Leave() from inside RunL(). + +@param aLeaveCode passed in if RunL Leaves. +@return KErrNone. +*/ + { + iTelephonyFunctions->CompleteRequest(CTelephonyFunctions::EGetCurrentNetworkName, aLeaveCode); + return KErrNone; // to ActiveScheduler. + } + +void CGetCurrentNetworkNameAct::DoCancel() +/** +Cancel request. + +Async request to dial is cancelled. +*/ + { + iTelephonyFunctions->Phone()->CancelAsyncRequest(EMobilePhoneGetNetworkName); + } + + +CGetCurrentNetworkNameAct::CGetCurrentNetworkNameAct(CTelephonyFunctions* aTelephonyFunctions) +: CAsyncRequestBaseAct(), + iTelephonyFunctions(aTelephonyFunctions), + iMMNetworkNameV3Pckg(iMMNetworkNameV3), + iLocInfoPckg(iLocInfo) +/** +First-phase constructor which cannot Leave(). + +@param aTelephonyFunctions Object that constructs us. +*/ + { + } + + +CGetOperatorNameAct* CGetOperatorNameAct::NewL(CTelephonyFunctions* aTelephonyFunctions) +/** +Public constructor which can Leave(). + +@param aTelephonyFunctions Object that constructs us. +@leave Leaves if no memory. +*/ + { + CGetOperatorNameAct* self = new(ELeave) CGetOperatorNameAct(aTelephonyFunctions); + CActiveScheduler::Add(self); + return self; + } + +CGetOperatorNameAct::~CGetOperatorNameAct() +/** +Destructor +*/ + { + Cancel(); + Complete(); + } + +void CGetOperatorNameAct::GetOperatorName(TDes8& aId) +/** +Issue Request +*/ + { + iISVOperatorName = reinterpret_cast ( const_cast (aId.Ptr()) ); + iTelephonyFunctions->Phone()->GetServiceProviderName(iStatus, iMMServiceProviderNamePckg); + SetActive(); + } + +void CGetOperatorNameAct::Complete() +/** +Service Completed request. +*/ + { + if(iTelephonyFunctions->IsRequestPending(CTelephonyFunctions::EGetOperatorName)) + { + if(iStatus==KErrNone) + { + TInt maxLength = iISVOperatorName->iOperatorName.MaxLength(); + if (iMMServiceProviderName.iSPName.Length() > maxLength) + { + iISVOperatorName->iOperatorName.Copy(iMMServiceProviderName.iSPName.Ptr(), maxLength); + } + else + { + iISVOperatorName->iOperatorName.Copy(iMMServiceProviderName.iSPName); + } + } + iTelephonyFunctions->CompleteRequest(CTelephonyFunctions::EGetOperatorName, iStatus.Int()); + } + } + + +TInt CGetOperatorNameAct::RunError(TInt aLeaveCode) +/** +Handle any Leave() from inside RunL(). + +@param aLeaveCode passed in if RunL Leaves. +@return KErrNone. +*/ + { + iTelephonyFunctions->CompleteRequest(CTelephonyFunctions::EGetOperatorName, aLeaveCode); + return KErrNone; // to ActiveScheduler. + } + +void CGetOperatorNameAct::DoCancel() +/** +Cancel request. + +Async request to dial is cancelled. +*/ + { + iTelephonyFunctions->Phone()->CancelAsyncRequest(EMobilePhoneGetServiceProviderName); + } + + +CGetOperatorNameAct::CGetOperatorNameAct(CTelephonyFunctions* aTelephonyFunctions) +: CAsyncRequestBaseAct(), + iTelephonyFunctions(aTelephonyFunctions), + iMMServiceProviderNamePckg(iMMServiceProviderName) +/** +First-phase constructor which cannot Leave(). + +@param aTelephonyFunctions Object that constructs us. +*/ + { + } + + + +CNotifyNetworkRegistrationStatusAct* CNotifyNetworkRegistrationStatusAct::NewL(CTelephonyFunctions* aTelephonyFunctions) +/** +Public constructor which can Leave(). + +@param aTelephonyFunctions Object that constructs us. +@leave Leaves if no memory. +*/ + { + CNotifyNetworkRegistrationStatusAct* self = new(ELeave) CNotifyNetworkRegistrationStatusAct(aTelephonyFunctions); + CActiveScheduler::Add(self); + return self; + } + +CNotifyNetworkRegistrationStatusAct::~CNotifyNetworkRegistrationStatusAct() +/** +Destructor +*/ + { + Cancel(); + Complete(); + } + +void CNotifyNetworkRegistrationStatusAct::NotifyNetworkRegistrationStatus(TDes8& aId) +/** +Issue Request +*/ + { + iISVNetworkRegistration = reinterpret_cast ( const_cast (aId.Ptr()) ); + iTelephonyFunctions->Phone()->NotifyNetworkRegistrationStatusChange(iStatus, iMMNetworkRegistration); + SetActive(); + } + +void CNotifyNetworkRegistrationStatusAct::Complete() +/** +Service Completed request. +*/ + { + if(iTelephonyFunctions->IsRequestPending(CTelephonyFunctions::ENotifyNetworkRegistrationStatus)) + { + if(iStatus==KErrNone) + { + CGetNetworkRegistrationStatusAct::GetRegistrationStatus(iMMNetworkRegistration, iISVNetworkRegistration->iRegStatus); + } + iTelephonyFunctions->CompleteRequest(CTelephonyFunctions::ENotifyNetworkRegistrationStatus, iStatus.Int()); + } + } + +TInt CNotifyNetworkRegistrationStatusAct::RunError(TInt aLeaveCode) +/** +Handle any Leave() from inside RunL(). + +@param aLeaveCode passed in if RunL Leaves. +@return KErrNone. +*/ + { + iTelephonyFunctions->CompleteRequest(CTelephonyFunctions::ENotifyNetworkRegistrationStatus, aLeaveCode); + return KErrNone; // to ActiveScheduler. + } + +void CNotifyNetworkRegistrationStatusAct::DoCancel() +/** +Cancel request. + +Async request to dial is cancelled. +*/ + { + iTelephonyFunctions->Phone()->CancelAsyncRequest(EMobilePhoneNotifyNetworkRegistrationStatusChange); + } + + +CNotifyNetworkRegistrationStatusAct::CNotifyNetworkRegistrationStatusAct(CTelephonyFunctions* aTelephonyFunctions) +: CAsyncRequestBaseAct(), + iTelephonyFunctions(aTelephonyFunctions) +/** +First-phase constructor which cannot Leave(). + +@param aTelephonyFunctions Object that constructs us. +*/ + { + } + + +CNotifyCurrentNetworkInfoAct* CNotifyCurrentNetworkInfoAct::NewL(CTelephonyFunctions* aTelephonyFunctions) +/** +Public constructor which can Leave(). + +@param aTelephonyFunctions Object that constructs us. +@leave Leaves if no memory. +*/ + { + CNotifyCurrentNetworkInfoAct* self = new(ELeave) CNotifyCurrentNetworkInfoAct(aTelephonyFunctions); + CActiveScheduler::Add(self); + return self; + } + +CNotifyCurrentNetworkInfoAct::~CNotifyCurrentNetworkInfoAct() +/** +Destructor +*/ + { + Cancel(); + Complete(); + } + +void CNotifyCurrentNetworkInfoAct::NotifyCurrentNetworkInfo(TDes8& aPckg) +/** +Issue Request +*/ + { + iISVNetworkInfo = reinterpret_cast ( const_cast (aPckg.Ptr()) ); + + iPostedIPC = EMobilePhoneNotifyCurrentNetworkChange; + iTelephonyFunctions->Phone()->NotifyCurrentNetworkChange(iStatus,iMMNetworkInfoPckg, iMMArea); + + SetActive(); + } + +/** +Service Completed request. +*/ +void CNotifyCurrentNetworkInfoAct::Complete() + { + if(iTelephonyFunctions->IsRequestPending(CTelephonyFunctions::ENotifyCurrentNetworkInfo)) + { + if(iStatus==KErrNone) + { + CGetCurrentNetworkInfoAct::MapNetworkInfo(iISVNetworkInfo, &iMMNetworkInfo, &iMMArea); + } + iTelephonyFunctions->CompleteRequest(CTelephonyFunctions::ENotifyCurrentNetworkInfo, iStatus.Int()); + } + } + + +TInt CNotifyCurrentNetworkInfoAct::RunError(TInt aLeaveCode) +/** +Handle any Leave() from inside RunL(). + +@param aLeaveCode passed in if RunL Leaves. +@return KErrNone. +*/ + { + iTelephonyFunctions->CompleteRequest(CTelephonyFunctions::ENotifyCurrentNetworkInfo, aLeaveCode); + return KErrNone; // to ActiveScheduler. + } + +void CNotifyCurrentNetworkInfoAct::DoCancel() +/** +Cancel request. + +Async request to dial is cancelled. +*/ + { + iTelephonyFunctions->Phone()->CancelAsyncRequest(iPostedIPC); + } + + +CNotifyCurrentNetworkInfoAct::CNotifyCurrentNetworkInfoAct(CTelephonyFunctions* aTelephonyFunctions) +: CAsyncRequestBaseAct(), + iTelephonyFunctions(aTelephonyFunctions), + iMMNetworkInfoPckg(iMMNetworkInfo) +/** +First-phase constructor which cannot Leave(). + +@param aTelephonyFunctions Object that constructs us. +*/ + { + } + +