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 "CMainMenu.h"
00033
00040 CMainMenu* CMainMenu::NewLC(CConsoleBase& aConsole)
00041 {
00042 CMainMenu* self = new(ELeave) CMainMenu(aConsole);
00043 CleanupStack::PushL(self);
00044 self->ConstructL();
00045 return self;
00046 }
00047
00053 CMainMenu::CMainMenu(CConsoleBase& aConsole)
00054 : CBaseMenuSync(aConsole)
00055 {
00056
00057 }
00058
00062 void CMainMenu::ConstructL()
00063 {
00064 CBaseMenuSync::ConstructL();
00065 iPhoneId = CPhoneId::NewL(this);
00066 iSubscriberId = CSubscriberId::NewL(this);
00067 }
00068
00073 CMainMenu::~CMainMenu()
00074 {
00075 delete iPhoneId;
00076 delete iSubscriberId;
00077 }
00078
00082 void CMainMenu::RunL()
00083 {
00084 switch(iState)
00085 {
00086 case EStart:
00087 iState = EGetPhoneId;
00088 SetActive();
00089 CompleteOwnRequest(KErrNone);
00090 break;
00091 case EEnd:
00092 CActiveScheduler::Stop();
00093 break;
00094 case EGetPhoneId:
00095 iState = EGetSubscriberId;
00096 TRAPD(errPhone, iPhoneId->StartRequestL());
00097 if (errPhone != KErrNone)
00098 {
00099 iConsole->Printf(_L("Request left with error code "));
00100 iConsole->Printf(_L("%d\n"), errPhone);
00101 return;
00102 }
00103 break;
00104 case EGetSubscriberId:
00105 iState = EEnd;
00106 TRAPD(errSub, iSubscriberId->StartRequestL());
00107 if (errSub != KErrNone)
00108 {
00109 iConsole->Printf(_L("%d\n"), errSub);
00110 return;
00111 }
00112 break;
00113 case EDummyAnswer:
00114 case EGetCallInfo:
00115 case EGetBatteryInfo:
00116 case EGetIndicator:
00117 case EGetLockInfo:
00118 case EGetSignalInfo:
00119 case EGetNetworkInfo:
00120 case EGetNetworkName:
00121 case EGetOperatorName:
00122 case EGetFlightModeInfo:
00123 case EGetNetworkRegStatus:
00124 case EGetLineStatus:
00125 case EGetCallStatus:
00126 case EAnswerIncomingCall:
00127 case EDialCall:
00128 case EGetDynamicCaps:
00129 case EHold:
00130 case EResume:
00131 case ESwap:
00132 case ESendDTMF:
00133 case EHangup:
00134 case ECallForwarding:
00135 case ECallWaiting:
00136 case ECallBarring:
00137 case EIdentityService:
00138 case EWaitingForKeyPress:
00139 case ESetNotifier:
00140 default:
00141 break;
00142 }
00143 }
00144
00148 void CMainMenu::DoCancel()
00149 {
00150 if(iState == EStart)
00151 {
00152 CompleteOwnRequest(KErrCancel);
00153 }
00154 else
00155 {
00156 iConsole->ReadCancel();
00157 }
00158 }