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 "hardkey_input.h" 17a69a01cdSopenharmony_ci#include "input_manager.h" 18a69a01cdSopenharmony_ci#include "multimode_manager.h" 19a69a01cdSopenharmony_ci#include "wukong_define.h" 20a69a01cdSopenharmony_ci#include "report.h" 21a69a01cdSopenharmony_ci 22a69a01cdSopenharmony_cinamespace OHOS { 23a69a01cdSopenharmony_cinamespace WuKong { 24a69a01cdSopenharmony_cinamespace { 25a69a01cdSopenharmony_ciconst int HARDKEY_COUNT = 2; 26a69a01cdSopenharmony_ciconst int DOWN_TIME = 10; 27a69a01cdSopenharmony_cibool g_shouldWakeup = true; 28a69a01cdSopenharmony_ci} // namespace 29a69a01cdSopenharmony_ciHardkeyInput::HardkeyInput() : InputAction() 30a69a01cdSopenharmony_ci{ 31a69a01cdSopenharmony_ci std::shared_ptr<MultimodeInputMsg> multimodeInputMsg = std::make_shared<MultimodeInputMsg>(); 32a69a01cdSopenharmony_ci multimodeInputMsg->inputType_ = INPUTTYPE_HARDKEYINPUT; 33a69a01cdSopenharmony_ci inputedMsgObject_ = multimodeInputMsg; 34a69a01cdSopenharmony_ci} 35a69a01cdSopenharmony_ci 36a69a01cdSopenharmony_ciHardkeyInput::~HardkeyInput() {} 37a69a01cdSopenharmony_ci 38a69a01cdSopenharmony_ciErrCode HardkeyInput::OrderInput(const std::shared_ptr<SpcialTestObject>& specialTestObject) 39a69a01cdSopenharmony_ci{ 40a69a01cdSopenharmony_ci auto util = WuKongUtil::GetInstance(); 41a69a01cdSopenharmony_ci if (g_shouldWakeup) { 42a69a01cdSopenharmony_ci std::string hCmdw = "power-shell wakeup"; 43a69a01cdSopenharmony_ci util->runProcess(hCmdw); 44a69a01cdSopenharmony_ci } else { 45a69a01cdSopenharmony_ci std::string hCmds = "power-shell suspend"; 46a69a01cdSopenharmony_ci util->runProcess(hCmds); 47a69a01cdSopenharmony_ci } 48a69a01cdSopenharmony_ci g_shouldWakeup = !g_shouldWakeup; 49a69a01cdSopenharmony_ci return OHOS::ERR_OK; 50a69a01cdSopenharmony_ci} 51a69a01cdSopenharmony_ci 52a69a01cdSopenharmony_ciErrCode HardkeyInput::RandomInput() 53a69a01cdSopenharmony_ci{ 54a69a01cdSopenharmony_ci int keycode = MMI::KeyEvent::KEYCODE_VOLUME_UP + rand() % HARDKEY_COUNT; 55a69a01cdSopenharmony_ci ErrCode result = MultimodeManager::GetInstance()->SingleKeyCodeInput(keycode, DOWN_TIME); 56a69a01cdSopenharmony_ci Report::GetInstance()->SyncInputInfo(inputedMsgObject_); 57a69a01cdSopenharmony_ci return result; 58a69a01cdSopenharmony_ci} 59a69a01cdSopenharmony_ci 60a69a01cdSopenharmony_ciInputType HardkeyInput::GetInputInfo() 61a69a01cdSopenharmony_ci{ 62a69a01cdSopenharmony_ci return INPUTTYPE_HARDKEYINPUT; 63a69a01cdSopenharmony_ci} 64a69a01cdSopenharmony_ci} // namespace WuKong 65a69a01cdSopenharmony_ci} // namespace OHOS 66