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 #include "CFlightModeInfo.h"
00032
00039 CFlightModeInfo* CFlightModeInfo::NewL(MExecAsync* aController)
00040 {
00041 CFlightModeInfo* self = new(ELeave) CFlightModeInfo(aController);
00042 CleanupStack::PushL(self);
00043 self->ConstructL();
00044 CleanupStack::Pop(self);
00045 return self;
00046 }
00047
00052 CFlightModeInfo::~CFlightModeInfo()
00053 {
00054 Cancel();
00055 }
00056
00060 void CFlightModeInfo::DoStartRequestL()
00061 {
00062 iRequestNotify = EFalse;
00063
00064
00065 iTelephony->GetFlightMode(iStatus, iFlightModeV1Pckg);
00066 SetActive();
00067 }
00068
00075 CFlightModeInfo::CFlightModeInfo(MExecAsync* aController)
00076 : CISVAPIAsync(aController, KFlightModeInfo)
00077 , iFlightModeV1Pckg(iFlightModeV1)
00078 {
00079
00080 }
00081
00085 void CFlightModeInfo::ConstructL()
00086 {
00087
00088 }
00089
00093 void CFlightModeInfo::RunL()
00094 {
00095 if(iStatus != KErrNone)
00096 {
00097 iConsole->Printf(KError);
00098
00099
00100 iConsole->Printf(_L("%d\n"), iStatus.Int());
00101 }
00102 else
00103 {
00104
00105
00106 CTelephony::TFlightModeV1 FlightMode = iFlightModeV1;
00107 CTelephony::TFlightModeStatus aFlightModeStatus = FlightMode.iFlightModeStatus;
00108 if (iRequestNotify)
00109 {
00110 iConsole->ClearScreen();
00111 iConsole->Printf(_L("~*THIS IS A NOTIFICATION*~\n"));
00112 }
00113 switch (aFlightModeStatus)
00114 {
00115 case CTelephony::EFlightModeOff:
00116 iConsole->Printf(_L("Flight Status is Off, Signal Strength can be Monitored!\n"));
00117 ExampleComplete();
00118 break;
00119 case CTelephony::EFlightModeOn:
00120 iConsole->Printf(_L("Flight Status is On, Signal Strength cannot be Monitored!\n"));
00121 RequestNotificationL();
00122 ExampleNotify();
00123 break;
00124 default:
00125 iConsole->Printf(KError);
00126 }
00127 }
00128 }
00129
00133 void CFlightModeInfo::DoRequestNotificationL()
00134 {
00135
00136
00137 _LIT( KNotifyPanic, "CFlightModeInfo Notify Method" );
00138 __ASSERT_ALWAYS( !IsActive(), User::Panic( KNotifyPanic, 1 ));
00139 iRequestNotify = ETrue;
00140
00141
00142 iTelephony->NotifyChange(iStatus,
00143 CTelephony::EFlightModeChange,
00144 iFlightModeV1Pckg );
00145 SetActive();
00146 }
00147
00151 void CFlightModeInfo::DoCancel()
00152 {
00153
00154 iTelephony->CancelAsync(CTelephony::EFlightModeChangeCancel);
00155 }