bool CoreNaviManager::handleEvent(QEvent *event) {
	if (!m_leds) {
		return false;
	}

	QKeyEvent *keyEvent = NULL;
	if (QEvent::KeyPress == event->type() || QEvent::KeyRelease == event->type()) {
		keyEvent = static_cast<QKeyEvent*> (event);
	}

#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))
	if (keyEvent && keyEvent->isGestureKey()) {
#else
    if (keyEvent && keyEvent->type() == QEvent::Gesture) {
#endif
		switch (keyEvent->key()) {
        case KEYS::Key_CoreNavi_QuickLaunch:
        case KEYS::Key_CoreNavi_Launcher:
        case KEYS::Key_CoreNavi_Previous:
        case KEYS::Key_CoreNavi_Next:
        case KEYS::Key_CoreNavi_Back:
        case KEYS::Key_CoreNavi_Menu:
        case KEYS::Key_CoreNavi_SwipeDown:
        case KEYS::Key_CoreNavi_Home:
			//One shot events
			if (keyEvent->type() == QEvent::KeyPress) {
				if (m_hasLightBar) {
					renderGestureOnLightbar(keyEvent->key());
				} else {
					renderGesture(keyEvent->key());
				}
			}
			break;
        case KEYS::Key_CoreNavi_Meta:
			if (!m_hasLightBar) {
				//continous glow
				if (keyEvent->type() == QEvent::KeyPress) {
					setMetaGlow(true);
				} else {
					setMetaGlow(false);
				}
			} else {
				if (useLightbar()) {
					if (keyEvent->type() == QEvent::KeyPress && m_systemUiController->isCardWindowMaximized()
							&& !m_systemUiController->isScreenLocked()) {
						// this is just finger down in the meta area, triggering hold timer
						g_debug("Key down in core navi area, triggering lightbarHoldTimer");
						m_metaKeyDown = true;
						m_lightbarHoldTimer.start(300, true);
					} else if (keyEvent->type() == QEvent::KeyRelease) {
						m_lightbarHoldTimer.stop();
						if (!m_systemUiController->isScreenLocked() && m_systemUiController->isCardWindowMaximized()
								&& !m_allGlow && !m_lightbarSwipeLeftTimer.running()
								&& !m_lightbarSwipeRightTimer.running() && !m_lightbarRestoreTimer.running()) {
							m_metaKeyDown = false;
							g_debug("key up, setting leds back to %d", m_brightness);
							m_leds->ledSet(m_leds->All(), m_brightness);
							m_allGlow = true;
						}
					}
				}
			}
			break;
		default:
			break;
		}
	}
	return false;
}


bool CoreNaviManager::handleEvent(sptr<Event> e)
{
	return false;
}

CoreNaviManager::LedRequest::LedRequest (const std::string& appId, const std::string& requestId)
{ 
    this->appId = appId; 
    this->requestId = requestId;
}