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,
00071 iCurrentNetworkInfoV1Pckg);
00072 SetActive();
00073 }
00074
00081 CCurrentNetworkInfo::CCurrentNetworkInfo(MExecAsync* aController)
00082 : CISVAPIAsync(aController, KNetworkInfo),
00083 iCurrentNetworkInfoV1Pckg(iCurrentNetworkInfoV1)
00084 {
00085
00086 }
00087
00091 void CCurrentNetworkInfo::ConstructL()
00092 {
00093
00094 }
00095
00100 void CCurrentNetworkInfo::RunL()
00101 {
00102 if(iStatus != KErrNone)
00103 {
00104 iConsole->Printf(KError);
00105
00106
00107 iConsole->Printf(_L("%d\n"), iStatus.Int());
00108 }
00109 else
00110 {
00111 TBuf<30> theStatus;
00112 if (iRequestNotify)
00113 {
00114 iConsole->ClearScreen();
00115 iConsole->Printf(_L("~*THIS IS A NOTIFICATION*~\n"));
00116 }
00117
00118
00119 iConsole->Printf(KNetworkInfoMsg);
00120 iConsole->Printf(iCurrentNetworkInfoV1.iDisplayTag);
00121 iConsole->Printf(KNewLine);
00122 switch (iCurrentNetworkInfoV1.iStatus)
00123 {
00124 case CTelephony::ENetworkStatusUnknown:
00125 theStatus.Append(_L("ENetworkStatusUnknown\n"));
00126 break;
00127 case CTelephony::ENetworkStatusAvailable:
00128 theStatus.Append(_L("ENetworkStatusUnavailable\n"));
00129 break;
00130 case CTelephony::ENetworkStatusCurrent:
00131 theStatus.Append(_L("ENetworkStatusCurrent\n"));
00132 break;
00133 case CTelephony::ENetworkStatusForbidden:
00134 theStatus.Append(_L("ENetworkStatusForbidden\n"));
00135 break;
00136 }
00137 iConsole->Printf(theStatus);
00138 if(iCurrentNetworkInfoV1.iAccess)
00139 {
00140 iConsole->Printf((_L("The Cell Id is : %d\n")),
00141 iCurrentNetworkInfoV1.iCellId);
00142 iConsole->Printf((_L("The Area Code is : %d\n")),
00143 iCurrentNetworkInfoV1.iLocationAreaCode);
00144 }
00145 if (iRequestNotify)
00146 {
00147 ExampleNotify();
00148 }
00149 else
00150 {
00151 ExampleComplete();
00152 }
00153 }
00154 }
00155
00159 void CCurrentNetworkInfo::DoRequestNotificationL()
00160 {
00161
00162
00163 _LIT( KNotifyPanic, "CCurrentNetworkInfo Notify Method" );
00164 __ASSERT_ALWAYS( !IsActive(), User::Panic( KNotifyPanic, 1 ));
00165 iRequestNotify = ETrue;
00166
00167
00168 iTelephony->NotifyChange( iStatus,
00169 CTelephony::ECurrentNetworkInfoChange,
00170 iCurrentNetworkInfoV1Pckg );
00171 SetActive();
00172 }
00173
00177 void CCurrentNetworkInfo::DoCancel()
00178 {
00179 iRequestNotify = EFalse;
00180
00181
00182 iTelephony->CancelAsync(CTelephony::ECurrentNetworkInfoChangeCancel);
00183 }
00184