sysstatemgmt/systemstatereferenceplugins/clayer/src/ssmsecurityeventobserver.cpp
branchRCL_3
changeset 9 21e939dd208a
parent 5 1a73e8f1b64d
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/src/ssmsecurityeventobserver.cpp	Wed Apr 14 17:17:45 2010 +0300
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/src/ssmsecurityeventobserver.cpp	Tue Apr 27 17:57:16 2010 +0300
@@ -15,7 +15,7 @@
 //
 
 
-
+#include <ssm/startupdomainpskeys.h>
 #include "strtsecphaseobserver.h"
 #include "ssmsecurityeventobserver.h"
 #include "ssmsecuritynotecontroller.h"
@@ -126,8 +126,24 @@
     switch (iEvent)
         {
         case RMobilePhone::EPin1Required:
-            SimCodeRequest(ESecCodePIN1);
+            {
+            TInt pSIgnorePin1RequiredEvent( EPSIgnoreSecurityEventUninitialized );
+
+            //Get the KIgnoreSecurityEvent PS value
+            TInt err = RProperty::Get( KPSUidStartup, KIgnoreSecurityEvent, pSIgnorePin1RequiredEvent );
+			DEBUGPRINT2A("Getting KIgnoreSecurityEvent completed with %d ", err);
+            //Ignore the event only when KIgnoreSecurityEvent value is EPSIgnoreSecurityEventEPin1Required 
+            if( KErrNone == err && EPSIgnoreSecurityEventEPin1Required == pSIgnorePin1RequiredEvent )
+                {
+                err = RProperty::Set( KPSUidStartup, KIgnoreSecurityEvent, EPSIgnoreSecurityEventUninitialized );
+                DEBUGPRINT2A("Setting KIgnoreSecurityEvent completed with %d ", err);
+				}
+            else
+                {
+                SimCodeRequest(ESecCodePIN1);
+                }
             break;
+            }
         case RMobilePhone::EPuk1Required:
             SimCodeRequest(ESecCodePUK1);
             break;
@@ -138,8 +154,24 @@
             SimCodeRequest(ESecCodePUK2);
             break;
         case RMobilePhone::EPhonePasswordRequired:
-            SecCodeRequest(ESecCodePasswd);
+            {
+            TInt pSIgnorePhonePasswordRequiredEvent( EPSIgnoreSecurityEventUninitialized );
+
+            //Get the KCancelSecurityNotifier PS value
+            TInt err = RProperty::Get( KPSUidStartup, KIgnoreSecurityEvent, pSIgnorePhonePasswordRequiredEvent );
+			DEBUGPRINT2A("Getting KIgnoreSecurityEvent completed with %d ", err);
+            //Ignore the event only when KIgnoreSecurityEvent value is EPSIgnoreSecurityEventEPhonePasswordRequired 
+            if( KErrNone == err && EPSIgnoreSecurityEventEPhonePasswordRequired == pSIgnorePhonePasswordRequiredEvent )
+                {
+                err = RProperty::Set( KPSUidStartup, KIgnoreSecurityEvent, EPSIgnoreSecurityEventUninitialized );
+				DEBUGPRINT2A("Setting KIgnoreSecurityEvent completed with %d ", err);
+				}
+            else
+                {
+                SecCodeRequest(ESecCodePasswd);
+                }
             break;
+            }
         case RMobilePhone::EPin1Verified:
             CodeVerifyIndication(ESecCodePIN1);
             break;