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 "CCurrentNetworkInfo.h"
00033
00041 CCurrentNetworkInfo* CCurrentNetworkInfo::NewL(MExecAsync* aController)
00042 {
00043 CCurrentNetworkInfo* self = new(ELeave) CCurrentNetworkInfo(aController);
00044 CleanupStack::PushL(self);
00045 self->ConstructL();
00046 CleanupStack::Pop(self);
00047 return self;
00048 }
00049
00054 CCurrentNetworkInfo::~CCurrentNetworkInfo()
00055 {
00056 Cancel();
00057 }
00058
00063 void CCurrentNetworkInfo::DoStartRequestL()
00064 {
00065 _LIT( KNotifyPanic, "CCurrentNetworkInfo Notify Method" );
00066 __ASSERT_ALWAYS( !IsActive(), User::Panic( KNotifyPanic, 1 ));
00067 iRequestNotify = EFalse;
00068
00069
00070 iTelephony->GetCurrentNetworkInfo(iStatus, iCurrentNetworkInfoV1Pckg);
00071 SetActive();
00072 }
00073
00080 CCurrentNetworkInfo::CCurrentNetworkInfo(MExecAsync* aController)
00081 : CISVAPIAsync(aController, KNetworkInfo),
00082 iCurrentNetworkInfoV1Pckg(iCurrentNetworkInfoV1)
00083 {
00084
00085 }
00086
00090 void CCurrentNetworkInfo::ConstructL()
00091 {
00092
00093 }
00094
00099 void CCurrentNetworkInfo::RunL()
00100 {
00101 if(iStatus != KErrNone)
00102 {
00103 iConsole->Printf(KError);
00104
00105
00106 iConsole->Printf(_L("%d\n"), iStatus.Int());
00107 }
00108 else
00109 {
00110 TBuf<30> theStatus;
00111 if (iRequestNotify)
00112 {
00113 iConsole->ClearScreen();
00114 iConsole->Printf(_L("~*THIS IS A NOTIFICATION*~\n"));
00115 }
00116 iConsole->Printf(KNetworkInfoMsg);
00117 iConsole->Printf(iCurrentNetworkInfoV1.iDisplayTag);
00118 iConsole->Printf(KNewLine);
00119 switch (iCurrentNetworkInfoV1.iStatus)
00120 {
00121 case CTelephony::ENetworkStatusUnknown:
00122 theStatus.Append(_L("ENetworkStatusUnknown\n"));
00123 break;
00124 case CTelephony::ENetworkStatusAvailable:
00125 theStatus.Append(_L("ENetworkStatusUnavailable\n"));
00126 break;
00127 case CTelephony::ENetworkStatusCurrent:
00128 theStatus.Append(_L("ENetworkStatusCurrent\n"));
00129 break;
00130 case CTelephony::ENetworkStatusForbidden:
00131 theStatus.Append(_L("ENetworkStatusForbidden\n"));
00132 break;
00133 }
00134 iConsole->Printf(theStatus);
00135 if(iCurrentNetworkInfoV1.iAccess)
00136 {
00137
00138 iConsole->Printf((_L("The Cell Id is : %d\n")), iCurrentNetworkInfoV1.iCellId);
00139 iConsole->Printf((_L("The Area Code is : %d\n")), iCurrentNetworkInfoV1.iLocationAreaCode);
00140 }
00141 if (iRequestNotify)
00142 {
00143 RequestNotificationL();
00144 }
00145 else
00146 {
00147 ExampleComplete();
00148 }
00149 }
00150 }
00151
00155 void CCurrentNetworkInfo::DoRequestNotificationL()
00156 {
00157
00158
00159 _LIT( KNotifyPanic, "CCurrentNetworkInfo Notify Method" );
00160 __ASSERT_ALWAYS( !IsActive(), User::Panic( KNotifyPanic, 1 ));
00161 iRequestNotify = ETrue;
00162
00163
00164 iTelephony->NotifyChange( iStatus,
00165 CTelephony::ECurrentNetworkInfoChange,
00166 iCurrentNetworkInfoV1Pckg );
00167 SetActive();
00168 }
00169
00173 void CCurrentNetworkInfo::DoCancel()
00174 {
00175 iRequestNotify = EFalse;
00176
00177
00178 iTelephony->CancelAsync(CTelephony::ECurrentNetworkInfoChangeCancel);
00179 }
00180