/*
* Copyright (c) 2007-2009 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:
*
*/
#ifndef T_HSAPPKEYHANDLER_H
#define T_HSAPPKEYHANDLER_H
#include <w32std.h>
#include <QObject>
#include <hb/hbcore/hbdevicedialogsymbian.h>
class CHsAppKeyPlugin;
class T_HsAppKeyHandler : public QObject, public MHbDeviceDialogObserver
{
Q_OBJECT
public:
explicit T_HsAppKeyHandler(QObject *parent = 0);
private slots:
void callDataReceived();
void testDeviceDialogClosed();
void testProvideKeyEvents();
void testHandleKeyEventIgnoresKeysOtherThanAppKey();
void testHandleKeyEventConsumesEverySecondEventForAppKey();
void testShortPressSwitchesBetweenHsAndApplibWhenTsIsNotVisible();
void testLongPressShowsTaskSwitcher();
void testShortPressDismissesTaskSwitcherShownByLongpress();
void testLongpressDoesNothingIfTaskSwitcherIsShownByOtherComponent();
void testShortPressDismissesTaskSwitcherShownByOtherComponent();
private slots:
void init();
void cleanup();
public: // from MHbDeviceDialogObserver
void DataReceived(CHbSymbianVariantMap &aData);
void DeviceDialogClosed(TInt aCompletionCode);
private: // helper methods
bool makeShortPress();
bool makeLongPress();
bool sendKeyEventTwice(TKeyEvent keyEvent);
bool isTaskSwitcherVisible();
bool showTaskSwitcher();
private:
CHsAppKeyPlugin *mCHsAppKeyPluginInstance;
CHbDeviceDialogSymbian *mDialog;
};
#endif // T_HSAPPKEYHANDLER_H