std::unique_ptr<ActionAndWaitEventRunnable> cmd = std::make_unique<ActionAndWaitEventRunnable>(
mRequest->type(), mRequest->elementid(), mRequest->xf86keycode());
std::shared_ptr<UiDevice> obj = UiDevice::getInstance();
- obj->executeAndWaitForEvents(cmd.get(), convertEventType(mRequest->eventtype()), mRequest->timeoutms());
+ bool ret = obj->executeAndWaitForEvents(cmd.get(), convertEventType(mRequest->eventtype()), mRequest->timeoutms());
+
+ if (ret) mResponse->set_status(::aurum::RspStatus::OK);
+ else mResponse->set_status(::aurum::RspStatus::ERROR);
return grpc::Status::OK;
}
void ActionAndWaitEventRunnable::run() const
{
+/**
+ *
+ * enum ActionType{
+ * CLICK = 0;
+ * KEY = 1;
+ * FOCUS = 2;
+ * }
+ *
+ **/
if (mType == 0) {
ObjectMapper *mObjMap = ObjectMapper::getInstance();
std::shared_ptr<UiObject> obj = mObjMap->getElement(mElementId);
else
LOGE("Object Id(%s) is invalid or not exist on view", mElementId.c_str());
}
- else {
+ else if (mType == 1) {
LOGD("Send KeyEvent(%s)", mKeyCode.c_str());
std::shared_ptr<UiDevice> mDevice = UiDevice::getInstance();
mDevice->pressKeyCode(mKeyCode, KeyRequestType::STROKE);
}
+ else if (mType == 2) {
+ ObjectMapper *mObjMap = ObjectMapper::getInstance();
+ std::shared_ptr<UiObject> obj = mObjMap->getElement(mElementId);
+ if (obj) {
+ LOGD("SetFocus Object Id(%s)", mElementId.c_str());
+ obj->setFocus();
+ }
+ else
+ LOGE("Object Id(%s) is invalid or not exist on view", mElementId.c_str());
+ }
}