uifw/AvKon/src/AknKeyLock.cpp
changeset 33 b3425bf29f82
parent 0 2f259fa3e83a
child 56 d48ab3b357f1
--- 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 <e32property.h>
 #include "aknkeylock.h"
 #include "AknNotifierController.h"
+#include <keyguardaccessapi.h>
+#include <devicelockaccessapi.h>
 
 // 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<SAknNotifierPackage<SAknKeyLockNotifierParams> > data;
 	TRequestStatus status;
 	data().iParamData.iReason = aMessage;
 	StartNotifierAndGetResponse(status,KAknKeyLockNotifierUid, data, data);
 	User::WaitForRequest(status);
 	CancelNotifier(KAknKeyLockNotifierUid);
+	*/
 	}
 
 // RAknKeyLock2