1a69a01cdSopenharmony_ci/* 2a69a01cdSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3a69a01cdSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4a69a01cdSopenharmony_ci * you may not use this file except in compliance with the License. 5a69a01cdSopenharmony_ci * You may obtain a copy of the License at 6a69a01cdSopenharmony_ci * 7a69a01cdSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8a69a01cdSopenharmony_ci * 9a69a01cdSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10a69a01cdSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11a69a01cdSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12a69a01cdSopenharmony_ci * See the License for the specific language governing permissions and 13a69a01cdSopenharmony_ci * limitations under the License. 14a69a01cdSopenharmony_ci */ 15a69a01cdSopenharmony_ci 16a69a01cdSopenharmony_ci#include "touch_input.h" 17a69a01cdSopenharmony_ci 18a69a01cdSopenharmony_ci#include "input_manager.h" 19a69a01cdSopenharmony_ci#include "multimode_manager.h" 20a69a01cdSopenharmony_ci#include "wukong_define.h" 21a69a01cdSopenharmony_ci#include "report.h" 22a69a01cdSopenharmony_cinamespace OHOS { 23a69a01cdSopenharmony_cinamespace WuKong { 24a69a01cdSopenharmony_ciTouchInput::TouchInput() : InputAction() 25a69a01cdSopenharmony_ci{ 26a69a01cdSopenharmony_ci std::shared_ptr<MultimodeInputMsg> multimodeInputMsg = std::make_shared<MultimodeInputMsg>(); 27a69a01cdSopenharmony_ci multimodeInputMsg->inputType_ = INPUTTYPE_TOUCHINPUT; 28a69a01cdSopenharmony_ci inputedMsgObject_ = multimodeInputMsg; 29a69a01cdSopenharmony_ci} 30a69a01cdSopenharmony_ci 31a69a01cdSopenharmony_ciTouchInput::~TouchInput() 32a69a01cdSopenharmony_ci{ 33a69a01cdSopenharmony_ci} 34a69a01cdSopenharmony_ci 35a69a01cdSopenharmony_ciErrCode TouchInput::OrderInput(const std::shared_ptr<SpcialTestObject>& specialTestObject) 36a69a01cdSopenharmony_ci{ 37a69a01cdSopenharmony_ci TouchParam* touchPtr = static_cast<TouchParam*>(specialTestObject.get()); 38a69a01cdSopenharmony_ci if (touchPtr == nullptr) { 39a69a01cdSopenharmony_ci return OHOS::ERR_INVALID_VALUE; 40a69a01cdSopenharmony_ci } 41a69a01cdSopenharmony_ci int touchX = touchPtr->x_; 42a69a01cdSopenharmony_ci int touchY = touchPtr->y_; 43a69a01cdSopenharmony_ci auto multiinput = MultimodeManager::GetInstance(); 44a69a01cdSopenharmony_ci ErrCode result = multiinput->PointerInput(touchX, touchY, MMI::PointerEvent::SOURCE_TYPE_TOUCHSCREEN, 45a69a01cdSopenharmony_ci MMI::PointerEvent::POINTER_ACTION_DOWN); 46a69a01cdSopenharmony_ci if (result != OHOS::ERR_OK) { 47a69a01cdSopenharmony_ci return result; 48a69a01cdSopenharmony_ci } 49a69a01cdSopenharmony_ci result = multiinput->PointerInput(touchX, touchY, MMI::PointerEvent::SOURCE_TYPE_TOUCHSCREEN, 50a69a01cdSopenharmony_ci MMI::PointerEvent::POINTER_ACTION_UP); 51a69a01cdSopenharmony_ci INFO_LOG_STR("Touch: (%d, %d)", touchX, touchY); 52a69a01cdSopenharmony_ci return result; 53a69a01cdSopenharmony_ci} 54a69a01cdSopenharmony_ci 55a69a01cdSopenharmony_ciErrCode TouchInput::RandomInput() 56a69a01cdSopenharmony_ci{ 57a69a01cdSopenharmony_ci int32_t screenWidth = -1; 58a69a01cdSopenharmony_ci int32_t screenHeight = -1; 59a69a01cdSopenharmony_ci ErrCode result = WuKongUtil::GetInstance()->GetScreenSize(screenWidth, screenHeight); 60a69a01cdSopenharmony_ci if (result != OHOS::ERR_OK) { 61a69a01cdSopenharmony_ci return result; 62a69a01cdSopenharmony_ci } 63a69a01cdSopenharmony_ci int touchX = rand() % screenWidth; 64a69a01cdSopenharmony_ci int touchY = rand() % screenHeight; 65a69a01cdSopenharmony_ci auto multiinput = MultimodeManager::GetInstance(); 66a69a01cdSopenharmony_ci result = multiinput->PointerInput(touchX, touchY, MMI::PointerEvent::SOURCE_TYPE_TOUCHSCREEN, 67a69a01cdSopenharmony_ci MMI::PointerEvent::POINTER_ACTION_DOWN); 68a69a01cdSopenharmony_ci if (result != OHOS::ERR_OK) { 69a69a01cdSopenharmony_ci return result; 70a69a01cdSopenharmony_ci } 71a69a01cdSopenharmony_ci result = multiinput->PointerInput(touchX, touchY, MMI::PointerEvent::SOURCE_TYPE_TOUCHSCREEN, 72a69a01cdSopenharmony_ci MMI::PointerEvent::POINTER_ACTION_UP); 73a69a01cdSopenharmony_ci if (result != OHOS::ERR_OK) { 74a69a01cdSopenharmony_ci return result; 75a69a01cdSopenharmony_ci } 76a69a01cdSopenharmony_ci Report::GetInstance()->SyncInputInfo(inputedMsgObject_); 77a69a01cdSopenharmony_ci INFO_LOG_STR("Touch: (%d, %d)", touchX, touchY); 78a69a01cdSopenharmony_ci return result; 79a69a01cdSopenharmony_ci} 80a69a01cdSopenharmony_ci 81a69a01cdSopenharmony_ciInputType TouchInput::GetInputInfo() 82a69a01cdSopenharmony_ci{ 83a69a01cdSopenharmony_ci return INPUTTYPE_TOUCHINPUT; 84a69a01cdSopenharmony_ci} 85a69a01cdSopenharmony_ci} // namespace WuKong 86a69a01cdSopenharmony_ci} // namespace OHOS 87