/*
* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/
#include <e32property.h>
#include <e32std.h> // needed because activeidle2domainpskeys.h doesn't include this
#include "AknCapServerEntry.h"
#include <activeidle2domainpskeys.h> // yet another nasty dep
#define KPhoneAppUid TUid::Uid(0x100058B3)
TBool AknPhoneKeyForwarder::ForwardKeyToPhoneApp(TAny* aKeyEvent)
{
RProperty::Set(
KPSUidAiInformation,
KActiveIdleState,
EPSAiNumberEntry );
RWsSession& ws = CCoeEnv::Static()->WsSession();
TApaTaskList list(ws);
TApaTask phone = list.FindApp(KPhoneAppUid);
if (phone.Exists())
{
TKeyEvent& key = *(TKeyEvent*)aKeyEvent;
// make sure that phone will receive focus before sending key to it
ws.SetWindowGroupOrdinalPosition(phone.WgId(), 0);
// send key event
phone.SendKey(key);
// and check if the up event has been delivered to us meanwhile
if (STATIC_CAST(CAknCapAppServerAppUi*,CEikonEnv::Static()->AppUi())->iUpReceived)
{
TWsEvent event;
event.SetType(EEventKeyUp);
*event.Key()=key;
event.SetTimeNow();
ws.SendEventToWindowGroup(phone.WgId(), event);
}
}
return EFalse; // don't retry
}
TBool AknPhoneKeyForwarder::ForwardUpEventToPhoneApp(TAny* aKeyEvent)
{
RWsSession& ws = CCoeEnv::Static()->WsSession();
TApaTaskList list(ws);
TApaTask phone = list.FindApp(KPhoneAppUid);
if (phone.Exists())
{
TWsEvent event;
event.SetType(EEventKeyUp);
*event.Key()=*(TKeyEvent*)aKeyEvent;
event.SetTimeNow();
ws.SendEventToWindowGroup(phone.WgId(), event);
}
return EFalse; // no need to re-run
}
// End of file