00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #include "CNetworkRegInfo.h"
00033
00041 CNetworkRegInfo* CNetworkRegInfo::NewL(MExecAsync* aController)
00042 {
00043 CNetworkRegInfo* self = new(ELeave) CNetworkRegInfo(aController);
00044 CleanupStack::PushL(self);
00045 self->ConstructL();
00046 CleanupStack::Pop(self);
00047 return self;
00048 }
00049
00053 CNetworkRegInfo::~CNetworkRegInfo()
00054 {
00055 Cancel();
00056 }
00057
00062 void CNetworkRegInfo::DoStartRequestL()
00063 {
00064 iRequestNotify = EFalse;
00065
00066
00067 iTelephony->GetNetworkRegistrationStatus(iStatus, iNetworkRegV1Pckg);
00068 SetActive();
00069 }
00070
00077 CNetworkRegInfo::CNetworkRegInfo(MExecAsync* aController)
00078 : CISVAPIAsync(aController, KNetworkRegInfo),
00079 iNetworkRegV1Pckg(iNetworkRegV1)
00080 {
00081
00082 }
00083
00087 void CNetworkRegInfo::ConstructL()
00088 {
00089 iRequestNotify = EFalse;
00090 }
00091
00096 void CNetworkRegInfo::RunL()
00097 {
00098 if(iStatus != KErrNone)
00099 {
00100 iConsole->Printf(KError);
00101
00102
00103 iConsole->Printf(_L("%d\n"), iStatus.Int());
00104 }
00105 else
00106 {
00107 TBuf<30> theStatus;
00108 iConsole->Printf(KNetworkRegMsg);
00109 switch(iNetworkRegV1.iRegStatus)
00110 {
00111 case CTelephony::ERegistrationUnknown:
00112 theStatus.Append(_L("ERegistrationUnknown\n"));
00113 break;
00114 case CTelephony::ENotRegisteredNoService:
00115 theStatus.Append(_L("ENotRegisteredNoService\n"));
00116 break;
00117 case CTelephony::ENotRegisteredEmergencyOnly:
00118 theStatus.Append(_L("ENotRegisteredEmergencyOnly\n"));
00119 break;
00120 case CTelephony::ENotRegisteredSearching:
00121 theStatus.Append(_L("ENotRegisteredSearching\n"));
00122 break;
00123 case CTelephony::ERegisteredBusy:
00124 theStatus.Append(_L("ERegisteredBusy\n"));
00125 break;
00126 case CTelephony::ERegisteredOnHomeNetwork:
00127 theStatus.Append(_L("ERegisteredOnHomeNetwork\n"));
00128 break;
00129 case CTelephony::ERegistrationDenied:
00130 theStatus.Append(_L("ERegistrationDenied\n"));
00131 break;
00132 case CTelephony::ERegisteredRoaming:
00133 theStatus.Append(_L("ERegisteredRoaming\n"));
00134 break;
00135 default:
00136 break;
00137 }
00138 iConsole->Printf(theStatus);
00139 }
00140 if (iNetworkRegV1.iRegStatus == CTelephony::ERegisteredOnHomeNetwork)
00141 {
00142 ExampleNotify();
00143 }
00144 else
00145 {
00146 RequestNotificationL();
00147 }
00148 }
00149
00154 void CNetworkRegInfo::DoRequestNotificationL()
00155 {
00156
00157
00158 _LIT( KNotifyPanic, "CNetworkReg Notify Method" );
00159 __ASSERT_ALWAYS( !IsActive(), User::Panic( KNotifyPanic, 1 ));
00160 iRequestNotify = ETrue;
00161
00162
00163 iTelephony->NotifyChange( iStatus,
00164 CTelephony::ENetworkRegistrationStatusChange,
00165 iNetworkRegV1Pckg );
00166 SetActive();
00167 }
00168
00172 void CNetworkRegInfo::DoCancel()
00173 {
00174 iRequestNotify = EFalse;
00175
00176
00177 iTelephony->CancelAsync(CTelephony::ENetworkRegistrationStatusChangeCancel);
00178 }