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 "CGetLockInfo.h"
00032
00040 CGetLockInfo* CGetLockInfo::NewL(MExecAsync* aController)
00041 {
00042 CGetLockInfo* self = new(ELeave) CGetLockInfo(aController);
00043 CleanupStack::PushL(self);
00044 self->ConstructL();
00045 CleanupStack::Pop(self);
00046 return self;
00047 }
00048
00053 CGetLockInfo::~CGetLockInfo()
00054 {
00055 Cancel();
00056 }
00057
00061 void CGetLockInfo::DoStartRequestL()
00062 {
00063 _LIT(KDummyAnswerPanic, "CGetLockInfo Get Method");
00064 __ASSERT_ALWAYS(!IsActive(), User::Panic(KDummyAnswerPanic, 1));
00065 iRequestNotify = EFalse;
00066 CTelephony::TIccLock lockSelect = CTelephony::ELockPin2;
00067
00068
00069 iTelephony->GetLockInfo(iStatus, lockSelect, iIccLockInfoV1Pckg);
00070 SetActive();
00071 }
00072
00079 CGetLockInfo::CGetLockInfo(MExecAsync* aController)
00080 : CISVAPIAsync(aController, KLockInfo),
00081 iIccLockInfoV1Pckg(iIccLockInfoV1)
00082 {
00083
00084 }
00085
00089 void CGetLockInfo::ConstructL()
00090 {
00091
00092 }
00093
00098 void CGetLockInfo::RunL()
00099 {
00100 if(iStatus != KErrNone)
00101 {
00102 iConsole->Printf(KError);
00103
00104
00105 iConsole->Printf(_L("%d\n"), iStatus.Int());
00106 }
00107 else
00108 {
00109 if( iIccLockInfoV1.iSetting == CTelephony::ELockSetEnabled)
00110 {
00111 iConsole->Printf(_L("Lock 2 is available for the phone to use\n"));
00112 switch (iIccLockInfoV1.iStatus)
00113 {
00114 case CTelephony::EStatusUnlocked:
00115 iConsole->Printf(_L("Its current status is Unlocked\n"));
00116 break;
00117 case CTelephony::EStatusBlocked:
00118 iConsole->Printf(_L("Its current status is blocked\n"));
00119 break;
00120 case CTelephony::EStatusLocked:
00121 iConsole->Printf(_L("Its current status is locked\n"));
00122 break;
00123 case CTelephony::EStatusUnknown:
00124 iConsole->Printf(_L("Its current status is unknown\n"));
00125 break;
00126 }
00127 if (iIccLockInfoV1.iStatus == CTelephony::EStatusUnlocked)
00128 {
00129
00130 ExampleComplete();
00131 }
00132 else
00133 {
00134 DoRequestNotificationL();
00135
00136
00137 }
00138 }
00139 else
00140 {
00141
00142 ExampleComplete();
00143 }
00144 }
00145 }
00146
00150 void CGetLockInfo::DoRequestNotificationL()
00151 {
00152
00153
00154 _LIT( KNotifyPanic, "CGetLockInfo Notify Method" );
00155 __ASSERT_ALWAYS( !IsActive(), User::Panic( KNotifyPanic, 1 ));
00156 iRequestNotify = ETrue;
00157
00158
00159 iTelephony->NotifyChange( iStatus,
00160 CTelephony::EPin2LockInfoChange,
00161 iIccLockInfoV1Pckg );
00162 SetActive();
00163 }
00164
00168 void CGetLockInfo::DoCancel()
00169 {
00170
00171 iTelephony->CancelAsync(CTelephony::EPin2LockInfoChangeCancel);
00172 }
00173