13 // Description: |
13 // Description: |
14 // Implementation of CStrtSecurityEventObserver class |
14 // Implementation of CStrtSecurityEventObserver class |
15 // |
15 // |
16 |
16 |
17 |
17 |
18 |
18 #include <ssm/startupdomainpskeys.h> |
19 #include "strtsecphaseobserver.h" |
19 #include "strtsecphaseobserver.h" |
20 #include "ssmsecurityeventobserver.h" |
20 #include "ssmsecurityeventobserver.h" |
21 #include "ssmsecuritynotecontroller.h" |
21 #include "ssmsecuritynotecontroller.h" |
22 #include "ssmuiproviderdll.h" |
22 #include "ssmuiproviderdll.h" |
23 #include "ssmdebug.h" |
23 #include "ssmdebug.h" |
124 void CStrtSecurityEventObserver::ProcessSecurityEvent() |
124 void CStrtSecurityEventObserver::ProcessSecurityEvent() |
125 { |
125 { |
126 switch (iEvent) |
126 switch (iEvent) |
127 { |
127 { |
128 case RMobilePhone::EPin1Required: |
128 case RMobilePhone::EPin1Required: |
129 SimCodeRequest(ESecCodePIN1); |
129 { |
130 break; |
130 TInt pSIgnorePin1RequiredEvent( EPSIgnoreSecurityEventUninitialized ); |
|
131 |
|
132 //Get the KIgnoreSecurityEvent PS value |
|
133 TInt err = RProperty::Get( KPSUidStartup, KIgnoreSecurityEvent, pSIgnorePin1RequiredEvent ); |
|
134 DEBUGPRINT2A("Getting KIgnoreSecurityEvent completed with %d ", err); |
|
135 //Ignore the event only when KIgnoreSecurityEvent value is EPSIgnoreSecurityEventEPin1Required |
|
136 if( KErrNone == err && EPSIgnoreSecurityEventEPin1Required == pSIgnorePin1RequiredEvent ) |
|
137 { |
|
138 err = RProperty::Set( KPSUidStartup, KIgnoreSecurityEvent, EPSIgnoreSecurityEventUninitialized ); |
|
139 DEBUGPRINT2A("Setting KIgnoreSecurityEvent completed with %d ", err); |
|
140 } |
|
141 else |
|
142 { |
|
143 SimCodeRequest(ESecCodePIN1); |
|
144 } |
|
145 break; |
|
146 } |
131 case RMobilePhone::EPuk1Required: |
147 case RMobilePhone::EPuk1Required: |
132 SimCodeRequest(ESecCodePUK1); |
148 SimCodeRequest(ESecCodePUK1); |
133 break; |
149 break; |
134 case RMobilePhone::EPin2Required: |
150 case RMobilePhone::EPin2Required: |
135 SimCodeRequest(ESecCodePIN2); |
151 SimCodeRequest(ESecCodePIN2); |
136 break; |
152 break; |
137 case RMobilePhone::EPuk2Required: |
153 case RMobilePhone::EPuk2Required: |
138 SimCodeRequest(ESecCodePUK2); |
154 SimCodeRequest(ESecCodePUK2); |
139 break; |
155 break; |
140 case RMobilePhone::EPhonePasswordRequired: |
156 case RMobilePhone::EPhonePasswordRequired: |
141 SecCodeRequest(ESecCodePasswd); |
157 { |
142 break; |
158 TInt pSIgnorePhonePasswordRequiredEvent( EPSIgnoreSecurityEventUninitialized ); |
|
159 |
|
160 //Get the KCancelSecurityNotifier PS value |
|
161 TInt err = RProperty::Get( KPSUidStartup, KIgnoreSecurityEvent, pSIgnorePhonePasswordRequiredEvent ); |
|
162 DEBUGPRINT2A("Getting KIgnoreSecurityEvent completed with %d ", err); |
|
163 //Ignore the event only when KIgnoreSecurityEvent value is EPSIgnoreSecurityEventEPhonePasswordRequired |
|
164 if( KErrNone == err && EPSIgnoreSecurityEventEPhonePasswordRequired == pSIgnorePhonePasswordRequiredEvent ) |
|
165 { |
|
166 err = RProperty::Set( KPSUidStartup, KIgnoreSecurityEvent, EPSIgnoreSecurityEventUninitialized ); |
|
167 DEBUGPRINT2A("Setting KIgnoreSecurityEvent completed with %d ", err); |
|
168 } |
|
169 else |
|
170 { |
|
171 SecCodeRequest(ESecCodePasswd); |
|
172 } |
|
173 break; |
|
174 } |
143 case RMobilePhone::EPin1Verified: |
175 case RMobilePhone::EPin1Verified: |
144 CodeVerifyIndication(ESecCodePIN1); |
176 CodeVerifyIndication(ESecCodePIN1); |
145 break; |
177 break; |
146 case RMobilePhone::EPin2Verified: |
178 case RMobilePhone::EPin2Verified: |
147 CodeVerifyIndication(ESecCodePIN2); |
179 CodeVerifyIndication(ESecCodePIN2); |