diff -r 8d1d8440b626 -r 21e939dd208a sysstatemgmt/systemstatereferenceplugins/clayer/src/ssmsecurityeventobserver.cpp --- 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 #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;