00001 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). 00002 // All rights reserved. 00003 // This component and the accompanying materials are made available 00004 // under the terms of "Eclipse Public License v1.0" 00005 // which accompanies this distribution, and is available 00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html". 00007 // 00008 // Initial Contributors: 00009 // Nokia Corporation - initial contribution. 00010 // 00011 // Contributors: 00012 // 00013 // Description: 00014 // 00015 00016 00017 #include "CFlightModeInfo.h" 00018 00026 CFlightModeInfo* CFlightModeInfo::NewL(MExecAsync* aController) 00027 { 00028 CFlightModeInfo* self = new(ELeave) CFlightModeInfo(aController); 00029 CleanupStack::PushL(self); 00030 self->ConstructL(); 00031 CleanupStack::Pop(self); 00032 return self; 00033 } 00034 00039 CFlightModeInfo::~CFlightModeInfo() 00040 { 00041 Cancel(); 00042 } 00043 00047 void CFlightModeInfo::DoStartRequestL() 00048 { 00049 iRequestNotify = EFalse; 00050 00051 // Retrieves the current flight mode status 00052 iTelephony->GetFlightMode(iStatus, iFlightModeV1Pckg); 00053 SetActive(); 00054 } 00055 00062 CFlightModeInfo::CFlightModeInfo(MExecAsync* aController) 00063 : CISVAPIAsync(aController, KFlightModeInfo), 00064 iFlightModeV1Pckg(iFlightModeV1) 00065 { 00066 // Empty method 00067 } 00068 00072 void CFlightModeInfo::ConstructL() 00073 { 00074 // Empty method 00075 } 00076 00080 void CFlightModeInfo::RunL() 00081 { 00082 if(iStatus != KErrNone) 00083 { 00084 iConsole->Printf(KError); 00085 00086 // Print the error status code 00087 iConsole->Printf(_L("%d\n"), iStatus.Int()); 00088 } 00089 else 00090 { 00091 if (iRequestNotify) 00092 { 00093 iConsole->Printf(_L("~*THIS IS A NOTIFICATION*~\n")); 00094 } 00095 switch (iFlightModeV1.iFlightModeStatus) 00096 { 00097 case CTelephony::EFlightModeOff: 00098 iConsole->Printf(_L("Flight Status is Off, you can make a call!\n")); 00099 ExampleComplete(); 00100 break; 00101 case CTelephony::EFlightModeOn: 00102 iConsole->Printf(_L("Flight Status is On, you can't make a call!\n")); 00103 ExampleNotify(); 00104 break; 00105 default: 00106 iConsole->Printf(KError); 00107 } 00108 } 00109 } 00110 00114 void CFlightModeInfo::DoRequestNotificationL() 00115 { 00116 // Panic if this object is already performing an asynchronous operation. 00117 // Application will crash if you call SetActive() on an already active object. 00118 _LIT( KNotifyPanic, "CFlightModeInfo Notify Method" ); 00119 __ASSERT_ALWAYS( !IsActive(), User::Panic( KNotifyPanic, 1 )); 00120 iRequestNotify = ETrue; 00121 00122 // Registers interest in receiving change notifications for events. 00123 iTelephony->NotifyChange( iStatus, 00124 CTelephony::EFlightModeChange, 00125 iFlightModeV1Pckg ); 00126 SetActive(); 00127 } 00128 00132 void CFlightModeInfo::DoCancel() 00133 { 00134 // Cancels an outstanding asynchronous request. 00135 iTelephony->CancelAsync(CTelephony::EFlightModeChangeCancel); 00136 }
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.