diff -r 558113899881 -r b3425bf29f82 uifw/AvKon/src/AknKeyLock.cpp --- a/uifw/AvKon/src/AknKeyLock.cpp Mon May 03 12:45:33 2010 +0300 +++ b/uifw/AvKon/src/AknKeyLock.cpp Wed Jun 23 05:40:10 2010 +0800 @@ -37,6 +37,8 @@ #include #include "aknkeylock.h" #include "AknNotifierController.h" +#include +#include // RAknKeyLock @@ -60,6 +62,7 @@ EXPORT_C TBool RAknKeyLock::IsKeyLockEnabled() { TInt value; + /* TInt err = RProperty::Get(KPSUidAvkonDomain, KAknKeyguardStatus, value); if ( err != KErrNone ) return EFalse; @@ -72,6 +75,22 @@ default: return EFalse; } + */ + + TInt valueKeyguard; + CKeyguardAccessApi* iKeyguardAccess = CKeyguardAccessApi::NewL( ); + valueKeyguard = iKeyguardAccess->IsKeyguardEnabled( ); + delete iKeyguardAccess; + + TInt valueDevicelock; + CDevicelockAccessApi* iDevicelockAccess = CDevicelockAccessApi::NewL( ); + valueDevicelock = iDevicelockAccess->IsDevicelockEnabled( ); + delete iDevicelockAccess; + + value = EFalse; + if( valueKeyguard || valueDevicelock ) + value = ETrue; + return value; } EXPORT_C void RAknKeyLock::EnableSoftNotifications(TBool aEnable) @@ -103,12 +122,66 @@ void RAknKeyLock::SendMessage(TKeyLockNotifierReason aMessage) { + + switch(aMessage) + { + case ELockEnabled: + { + CKeyguardAccessApi* iKeyguardAccess = CKeyguardAccessApi::NewL( ); + iKeyguardAccess->EnableKeyguard( ETrue ); + delete iKeyguardAccess; + } + break; + case EEnableWithoutNote: + { + CKeyguardAccessApi* iKeyguardAccess = CKeyguardAccessApi::NewL( ); + iKeyguardAccess->EnableKeyguard( EFalse ); + delete iKeyguardAccess; + } + break; + case ELockDisabled: + { + CKeyguardAccessApi* iKeyguardAccess = CKeyguardAccessApi::NewL( ); + iKeyguardAccess->DisableKeyguard( ETrue ); + delete iKeyguardAccess; + } + break; + case EDisableWithoutNote: + { + CKeyguardAccessApi* iKeyguardAccess = CKeyguardAccessApi::NewL( ); + iKeyguardAccess->DisableKeyguard( EFalse ); + delete iKeyguardAccess; + } + break; + case EOfferKeylock: + { + CKeyguardAccessApi* iKeyguardAccess = CKeyguardAccessApi::NewL( ); + iKeyguardAccess->OfferKeyguard( ); + delete iKeyguardAccess; + } + break; + case EEnableAutoLockEmulation: + { + CDevicelockAccessApi* iDevicelockAccess = CDevicelockAccessApi::NewL( ); + iDevicelockAccess->OfferDevicelock( ); // TODO maybe EnableDevicelock ? + delete iDevicelockAccess; + } + break; + default: + { + } + break; + } + /* + This is the old method. Not used anymore because now KeyguardAccessApi and DeviceLockAccessApi send the requests to Autolock + TPckgBuf > data; TRequestStatus status; data().iParamData.iReason = aMessage; StartNotifierAndGetResponse(status,KAknKeyLockNotifierUid, data, data); User::WaitForRequest(status); CancelNotifier(KAknKeyLockNotifierUid); + */ } // RAknKeyLock2