--- a/mediakeys/MMKeyBearer/src/MMKeyBearerImplementation.cpp Tue Aug 31 15:24:25 2010 +0300
+++ b/mediakeys/MMKeyBearer/src/MMKeyBearerImplementation.cpp Wed Sep 01 12:24:48 2010 +0100
@@ -26,7 +26,6 @@
#include <UsbWatcherInternalPSKeys.h>
#include <usbpersonalityids.h>
#include <PSVariables.h> // Property values
-#include <keyguardaccessapi.h>
// Include this once it is exported
// #include <RemConExtensionApi.h>
@@ -75,7 +74,7 @@
delete iMediaKeyObserver;
delete iAccessoryVolKeyObserver;
delete iUSBFileTransferObserver;
- delete iKeyguardAccess;
+ iAknServer.Close();
}
// ---------------------------------------------------------
@@ -85,10 +84,11 @@
//
CMMKeyBearer::CMMKeyBearer(TBearerParams& aParams)
: CRemConBearerPlugin(aParams),
- iUSBFileTransfer(KUsbWatcherSelectedPersonalityNone)
+ iUSBFileTransfer(KUsbWatcherSelectedPersonalityNone),
+ iAknServerConnected(EFalse)
{
FUNC_LOG;
-
+
//Pass
}
@@ -105,7 +105,6 @@
TRemConAddress addr;
addr.BearerUid() = Uid();
TInt err = Observer().ConnectIndicate(addr);
- iKeyguardAccess = CKeyguardAccessApi::NewL();
// Start Active object for listening key events from P&S
TRAP_AND_LEAVE(
@@ -343,6 +342,12 @@
INFO_3( "Received key: enumValue = %d, keyType = %d, usbFileTransfer = %d",
aEnumValue, aKeyType, iUSBFileTransfer );
+ //Start the listener once again
+ if (aKeyType == ESideVolumeKeys)
+ {
+ iMMKeyBearerObserver->Start();
+ }
+
// Mediakeys must be disabled when MTP (Music Transfer) is happening.
if (aKeyType == EFileTransferStatus)
{
@@ -362,20 +367,25 @@
// If events are from accessory device,then do not check for keypadlock
if (aKeyType != EAccessoryVolumeKeys && aKeyType != ESideVolumeKeys )
{
-
- TInt err=iKeyguardAccess->ShowKeysLockedNote();
+ TBool keysLocked = EFalse;
+ if (!(iAknServerConnected)) // Connect to server for first time
+ {
+ if(iAknServer.Connect() == KErrNone)
+ {
+ iAknServerConnected = ETrue;
+ }
+ else if (aKeyType == EMediaKeys) // If connection fails, then return
+ {
+ iMediaKeyObserver->Start();
+ return ;
+ }
+ }
+ iAknServer.ShowKeysLockedNote(keysLocked);
- if (err==KErrNone)
+ if (keysLocked && aKeyType == EMediaKeys)
{
// Device is locked , Discard the key event
-
- //Start the listener once again
-
- if (aKeyType == EMediaKeys)
- {
- iMediaKeyObserver->Start();
- }
-
+ iMediaKeyObserver->Start();
return;
}
}
@@ -408,11 +418,7 @@
TInt aError = Observer().NewCommand(addr);
//Start the listener once again
- if (aKeyType == ESideVolumeKeys)
- {
- iMMKeyBearerObserver->Start();
- }
- else if (aKeyType == EMediaKeys)
+ if (aKeyType == EMediaKeys)
{
iMediaKeyObserver->Start();
}