1 /* 2 * Copyright (c) 2022-2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "dfx_hisysevent.h" 17 18 #include <fstream> 19 20 #include "i_input_windows_manager.h" 21 #include "parameters.h" 22 23 #undef MMI_LOG_DOMAIN 24 #define MMI_LOG_DOMAIN MMI_LOG_SERVER 25 #undef MMI_LOG_TAG 26 #define MMI_LOG_TAG "DfxHisysevent" 27 28 namespace OHOS { 29 namespace MMI { 30 namespace { 31 constexpr int32_t INVALID_DEVICE_ID { -1 }; 32 constexpr uint32_t REPORT_DISPATCH_TIMES { 100 }; 33 constexpr uint32_t REPORT_COMBO_START_TIMES { 100 }; 34 constexpr uint32_t POINTER_CLEAR_TIMES { 10 }; 35 constexpr int32_t CONVERSION_US_TO_MS { 1000 }; 36 constexpr int32_t TIMES_LEVEL1 { 10 }; 37 constexpr int32_t TIMES_LEVEL2 { 25 }; 38 constexpr int32_t TIMES_LEVEL3 { 30 }; 39 constexpr int32_t TIMES_LEVEL4 { 50 }; 40 constexpr int32_t FINGERSENSE_EVENT_TIMES { 1 }; 41 constexpr size_t SINGLE_KNUCKLE_SIZE { 1 }; 42 constexpr size_t DOUBLE_KNUCKLE_SIZE { 2 }; 43 constexpr int32_t FAIL_SUCC_TIME_DIFF { 3 * 60 * 1000 }; 44 constexpr int32_t MIN_GESTURE_TIMESTAMPS_SIZE { 2 }; 45 constexpr int32_t DOWN_TO_PREV_UP_MAX_TIME_THRESHOLD { 1000 * 1000 }; 46 constexpr int32_t FOLDABLE_DEVICE { 2 }; 47 const int32_t ROTATE_POLICY = system::GetIntParameter("const.window.device.rotate_policy", 0); 48 const std::string EMPTY_STRING { "" }; 49 const std::string LCD_PATH { "/sys/class/graphics/fb0/lcd_model" }; 50 const std::string ACC_PATH { "/sys/devices/platform/huawei_sensor/acc_info" }; 51 const std::string ACC0_PATH { "/sys/class/sensors/acc_sensor/info" }; 52 const std::string TP_PATH { "/sys/touchscreen/touch_chip_info" }; 53 const std::string TP0_PATH { "/sys/touchscreen0/touch_chip_info" }; 54 const std::string TP1_PATH { "/sys/touchscreen1/touch_chip_info" }; 55 } // namespace 56 GetVendorInfo(const std::string & nodePath)57 static std::string GetVendorInfo(const std::string &nodePath) 58 { 59 char realPath[PATH_MAX] = {}; 60 if (realpath(nodePath.c_str(), realPath) == nullptr) { 61 MMI_HILOGE("The realpath return nullptr"); 62 return ""; 63 } 64 std::ifstream file(realPath); 65 if (!file.is_open()) { 66 MMI_HILOGE("Unable to open file:%{public}s, error:%{public}d", nodePath.c_str(), errno); 67 return ""; 68 } 69 std::string vendorInfo; 70 file >> vendorInfo; 71 file.close(); 72 return vendorInfo; 73 } 74 OnDeviceConnect(int32_t id,OHOS::HiviewDFX::HiSysEvent::EventType type)75 void DfxHisysevent::OnDeviceConnect(int32_t id, OHOS::HiviewDFX::HiSysEvent::EventType type) 76 { 77 std::shared_ptr<InputDevice> dev = INPUT_DEV_MGR->GetInputDevice(id); 78 CHKPV(dev); 79 std::string message; 80 std::string name; 81 if (type == OHOS::HiviewDFX::HiSysEvent::EventType::FAULT) { 82 message = "The input_device connection failed for already existing"; 83 name = "INPUT_DEV_CONNECTION_FAILURE"; 84 } else { 85 message = "The input_device connection succeed"; 86 name = "INPUT_DEV_CONNECTION_SUCCESS"; 87 } 88 if (id == INT32_MAX) { 89 int32_t ret = HiSysEventWrite( 90 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 91 name, 92 type, 93 "MSG", "The input_device connection failed because the nextId_ exceeded the upper limit"); 94 if (ret != 0) { 95 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 96 } 97 } else { 98 int32_t ret = HiSysEventWrite( 99 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 100 name, 101 type, 102 "DEVICE_ID", id, 103 "DEVICE_PHYS", dev->GetPhys(), 104 "DEVICE_NAME", dev->GetName(), 105 "DEVICE_TYPE", dev->GetType(), 106 "MSG", message); 107 if (ret != 0) { 108 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 109 } 110 } 111 } 112 OnDeviceDisconnect(int32_t id,OHOS::HiviewDFX::HiSysEvent::EventType type)113 void DfxHisysevent::OnDeviceDisconnect(int32_t id, OHOS::HiviewDFX::HiSysEvent::EventType type) 114 { 115 if (id == INVALID_DEVICE_ID) { 116 int32_t ret = HiSysEventWrite( 117 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 118 "INPUT_DEV_DISCONNECTION_FAILURE", 119 type, 120 "MSG", "The input device failed to disconnect to server"); 121 if (ret != 0) { 122 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 123 } 124 } else { 125 std::shared_ptr dev = INPUT_DEV_MGR->GetInputDevice(id); 126 CHKPV(dev); 127 int32_t ret = HiSysEventWrite( 128 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 129 "INPUT_DEV_DISCONNECTION_SUCCESS", 130 type, 131 "DEVICE_Id", id, 132 "DEVICE_PHYS", dev->GetPhys(), 133 "DEVICE_NAME", dev->GetName(), 134 "DEVICE_TYPE", dev->GetType(), 135 "MSG", "The input device successfully disconnect to server"); 136 if (ret != 0) { 137 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 138 } 139 } 140 } 141 OnClientConnect(const ClientConnectData & data,OHOS::HiviewDFX::HiSysEvent::EventType type)142 void DfxHisysevent::OnClientConnect(const ClientConnectData &data, OHOS::HiviewDFX::HiSysEvent::EventType type) 143 { 144 if (type == OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR) { 145 int32_t ret = HiSysEventWrite( 146 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 147 "CLIENT_CONNECTION_SUCCESS", 148 type, 149 "PID", data.pid, 150 "UID", data.uid, 151 "MODULE_TYPE", data.moduleType, 152 "SERVER_FD", data.serverFd, 153 "PROGRAMNAME", data.programName, 154 "MSG", "The client successfully connected to the server"); 155 if (ret != 0) { 156 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 157 } 158 } else { 159 int32_t ret = HiSysEventWrite( 160 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 161 "CLIENT_CONNECTION_FAILURE", 162 type, 163 "PID", data.pid, 164 "UID", data.uid, 165 "MODULE_TYPE", data.moduleType, 166 "PROGRAMNAME", data.programName, 167 "MSG", "The client failed to connect to the server"); 168 if (ret != 0) { 169 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 170 } 171 } 172 } 173 OnClientDisconnect(const SessionPtr & secPtr,int32_t fd,OHOS::HiviewDFX::HiSysEvent::EventType type)174 void DfxHisysevent::OnClientDisconnect(const SessionPtr& secPtr, int32_t fd, 175 OHOS::HiviewDFX::HiSysEvent::EventType type) 176 { 177 CHKPV(secPtr); 178 if (type == OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR) { 179 int32_t ret = HiSysEventWrite( 180 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 181 "CLIENT_DISCONNECTION_SUCCESS", 182 type, 183 "PID", secPtr->GetPid(), 184 "UID", secPtr->GetUid(), 185 "MODULE_TYPE", secPtr->GetModuleType(), 186 "FD", fd, 187 "PROGRAMNAME", secPtr->GetProgramName(), 188 "MSG", "The client successfully disconnected to the server"); 189 if (ret != 0) { 190 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 191 } 192 } else { 193 if (secPtr == nullptr) { 194 int32_t ret = HiSysEventWrite( 195 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 196 "CLIENT_DISCONNECTION_FAILURE", 197 type, 198 "MSG", "The client failed to disconnect to the server because secPtr is nullptr"); 199 if (ret != 0) { 200 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 201 } 202 } else { 203 int32_t ret = HiSysEventWrite( 204 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 205 "CLIENT_DISCONNECTION_FAILURE", 206 type, 207 "MSG", "The client failed to disconnect to the server because close(fd) return error"); 208 if (ret != 0) { 209 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 210 } 211 } 212 } 213 } 214 OnUpdateTargetPointer(std::shared_ptr<PointerEvent> pointer,int32_t fd,OHOS::HiviewDFX::HiSysEvent::EventType type)215 void DfxHisysevent::OnUpdateTargetPointer(std::shared_ptr<PointerEvent> pointer, int32_t fd, 216 OHOS::HiviewDFX::HiSysEvent::EventType type) 217 { 218 CHKPV(pointer); 219 if (type == OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR) { 220 int32_t ret = HiSysEventWrite( 221 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 222 "TARGET_POINTER_EVENT_SUCCESS", 223 type, 224 "EVENTTYPE", pointer->GetEventType(), 225 "AGENT_WINDOWID", pointer->GetAgentWindowId(), 226 "TARGET_WINDOWID", pointer->GetTargetWindowId(), 227 "PID", WIN_MGR->GetWindowPid(pointer->GetTargetWindowId()), 228 "FD", fd, 229 "MSG", "The window manager successfully update target pointer"); 230 if (ret != 0) { 231 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 232 } 233 } else { 234 int32_t ret = HiSysEventWrite( 235 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 236 "TARGET_POINTER_EVENT_FAILURE", 237 OHOS::HiviewDFX::HiSysEvent::EventType::FAULT, 238 "EVENTTYPE", pointer->GetEventType(), 239 "MSG", "The window manager failed to update target pointer"); 240 if (ret != 0) { 241 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 242 } 243 } 244 } 245 OnUpdateTargetKey(std::shared_ptr<KeyEvent> key,int32_t fd,OHOS::HiviewDFX::HiSysEvent::EventType type)246 void DfxHisysevent::OnUpdateTargetKey(std::shared_ptr<KeyEvent> key, int32_t fd, 247 OHOS::HiviewDFX::HiSysEvent::EventType type) 248 { 249 CHKPV(key); 250 if (type == OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR) { 251 int32_t ret = HiSysEventWrite( 252 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 253 "TARGET_KEY_EVENT_SUCCESS", 254 type, 255 "EVENTTYPE", key->GetEventType(), 256 "KEYCODE", key->GetKeyCode(), 257 "ACTION", key->GetAction(), 258 "ACTION_TIME", key->GetActionTime(), 259 "ACTION_STARTTIME", key->GetActionStartTime(), 260 "FLAG", key->GetFlag(), 261 "KEYACTION", key->GetKeyAction(), 262 "FD", fd, 263 "AGENT_WINDOWID", key->GetAgentWindowId(), 264 "TARGET_WINDOWID", key->GetTargetWindowId(), 265 "PID", WIN_MGR->GetWindowPid(key->GetTargetWindowId()), 266 "MSG", "The window manager successfully update target key"); 267 if (ret != 0) { 268 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 269 } 270 } else { 271 int32_t ret = HiSysEventWrite( 272 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 273 "TARGET_KEY_EVENT_FAILURE", 274 type, 275 "EVENTTYPE", key->GetEventType(), 276 "KEYCODE", key->GetKeyCode(), 277 "ACTION", key->GetAction(), 278 "ACTION_TIME", key->GetActionTime(), 279 "ACTION_STARTTIME", key->GetActionStartTime(), 280 "FLAG", key->GetFlag(), 281 "KEYACTION", key->GetKeyAction(), 282 "MSG", "The window manager failed to update target key"); 283 if (ret != 0) { 284 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 285 } 286 } 287 } 288 OnFocusWindowChanged(int32_t oldFocusWindowId,int32_t newFocusWindowId,int32_t oldFocusWindowPid,int32_t newFocusWindowPid)289 void DfxHisysevent::OnFocusWindowChanged(int32_t oldFocusWindowId, int32_t newFocusWindowId, 290 int32_t oldFocusWindowPid, int32_t newFocusWindowPid) 291 { 292 int32_t ret = HiSysEventWrite( 293 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 294 "FOCUS_WINDOW_CHANGE", 295 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 296 "OLD_FOCUS_WINDOWID", oldFocusWindowId, 297 "NEW_FOCUS_WINDOWID", newFocusWindowId, 298 "OLD_FOCUS_WINDOWPID", oldFocusWindowPid, 299 "NEW_FOCUS_WINDOWPID", newFocusWindowPid, 300 "MSG", "The focusWindowId changing succeeded"); 301 if (ret != 0) { 302 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 303 } 304 } 305 OnZorderWindowChanged(int32_t oldZorderFirstWindowId,int32_t newZorderFirstWindowId,int32_t oldZorderFirstWindowPid,int32_t newZorderFirstWindowPid)306 void DfxHisysevent::OnZorderWindowChanged(int32_t oldZorderFirstWindowId, int32_t newZorderFirstWindowId, 307 int32_t oldZorderFirstWindowPid, int32_t newZorderFirstWindowPid) 308 { 309 int32_t ret = HiSysEventWrite( 310 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 311 "Z_ORDER_WINDOW_CHANGE", 312 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 313 "OLD_ZORDER_FIRST_WINDOWID", oldZorderFirstWindowId, 314 "NEW_ZORDER_FIRST_WINDOWID", newZorderFirstWindowId, 315 "OLD_ZORDER_FIRST_WINDOWPID", oldZorderFirstWindowPid, 316 "NEW_ZORDER_FIRST_WINDOWPID", newZorderFirstWindowPid, 317 "MSG", "The ZorderFirstWindow changing succeeded"); 318 if (ret != 0) { 319 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 320 } 321 } 322 OnLidSwitchChanged(int32_t lidSwitch)323 void DfxHisysevent::OnLidSwitchChanged(int32_t lidSwitch) 324 { 325 int32_t ret = HiSysEventWrite( 326 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 327 "LID_SWITCH", 328 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 329 "SWITCH", lidSwitch); 330 if (ret != 0) { 331 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 332 } 333 } 334 ApplicationBlockInput(const SessionPtr & sess)335 void DfxHisysevent::ApplicationBlockInput(const SessionPtr& sess) 336 { 337 int32_t ret = HiSysEventWrite( 338 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 339 "APPLICATION_BLOCK_INPUT", 340 OHOS::HiviewDFX::HiSysEvent::EventType::FAULT, 341 "PID", sess->GetPid(), 342 "UID", sess->GetUid(), 343 "PACKAGE_NAME", sess->GetProgramName(), 344 "PROCESS_NAME", sess->GetProgramName(), 345 "MSG", "User input does not respond"); 346 if (ret != 0) { 347 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 348 } 349 } 350 CalcKeyDispTimes()351 void DfxHisysevent::CalcKeyDispTimes() 352 { 353 int64_t endTime = GetSysClockTime(); 354 dispCastTime_.totalTimes++; 355 int64_t castTime = (endTime - dispatchStartTime_) / CONVERSION_US_TO_MS; 356 if (castTime <= TIMES_LEVEL1) { 357 dispCastTime_.below10msTimes++; 358 } else if (castTime <= TIMES_LEVEL2) { 359 dispCastTime_.below25msTimes++; 360 } else if (castTime <= TIMES_LEVEL4) { 361 dispCastTime_.below50msTimes++; 362 } else { 363 dispCastTime_.above50msTimes++; 364 } 365 } 366 CalcPointerDispTimes()367 void DfxHisysevent::CalcPointerDispTimes() 368 { 369 int64_t endTime = GetSysClockTime(); 370 dispCastTime_.sampleCount++; 371 int64_t castTime = (endTime - dispatchStartTime_) / CONVERSION_US_TO_MS; 372 if (dispCastTime_.sampleCount == POINTER_CLEAR_TIMES) { 373 dispCastTime_.sampleCount = 0; 374 dispCastTime_.totalTimes++; 375 if (castTime <= TIMES_LEVEL1) { 376 dispCastTime_.below10msTimes++; 377 } else if (castTime <= TIMES_LEVEL2) { 378 dispCastTime_.below25msTimes++; 379 } else if (castTime <= TIMES_LEVEL4) { 380 dispCastTime_.below50msTimes++; 381 } else { 382 dispCastTime_.above50msTimes++; 383 } 384 } 385 } 386 ReportDispTimes()387 void DfxHisysevent::ReportDispTimes() 388 { 389 if (dispCastTime_.totalTimes >= REPORT_DISPATCH_TIMES) { 390 int32_t ret = HiSysEventWrite( 391 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 392 "INPUT_DISPATCH_TIME", 393 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 394 "BELOW10MS", dispCastTime_.below10msTimes, 395 "BELOW25MS", dispCastTime_.below25msTimes, 396 "BELOW50MS", dispCastTime_.below50msTimes, 397 "ABOVE50MS", dispCastTime_.above50msTimes, 398 "MSG", "The costing time to dispatch event"); 399 if (ret != 0) { 400 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 401 } else { 402 dispCastTime_.sampleCount = 0; 403 dispCastTime_.totalTimes = 0; 404 dispCastTime_.below10msTimes = 0; 405 dispCastTime_.below25msTimes = 0; 406 dispCastTime_.below50msTimes = 0; 407 dispCastTime_.above50msTimes = 0; 408 } 409 } 410 } 411 CalcComboStartTimes(const int32_t keyDownDuration)412 void DfxHisysevent::CalcComboStartTimes(const int32_t keyDownDuration) 413 { 414 int64_t endTime = GetSysClockTime(); 415 comboStartCastTime_.totalTimes++; 416 int64_t castTime = (endTime - comboStartTime_) / CONVERSION_US_TO_MS - keyDownDuration; 417 if (castTime <= TIMES_LEVEL1) { 418 comboStartCastTime_.below10msTimes++; 419 } else if (castTime <= TIMES_LEVEL3) { 420 comboStartCastTime_.below30msTimes++; 421 } else if (castTime <= TIMES_LEVEL4) { 422 comboStartCastTime_.below50msTimes++; 423 } else { 424 comboStartCastTime_.above50msTimes++; 425 } 426 } 427 ReportComboStartTimes()428 void DfxHisysevent::ReportComboStartTimes() 429 { 430 if (comboStartCastTime_.totalTimes >= REPORT_COMBO_START_TIMES) { 431 int32_t ret = HiSysEventWrite( 432 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 433 "COMBO_START_TIME", 434 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 435 "BELOW10MS", comboStartCastTime_.below10msTimes, 436 "BELOW30MS", comboStartCastTime_.below30msTimes, 437 "BELOW50MS", comboStartCastTime_.below50msTimes, 438 "ABOVE50MS", comboStartCastTime_.above50msTimes, 439 "MSG", "The costing time to launch application of combination"); 440 if (ret != 0) { 441 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 442 } else { 443 comboStartCastTime_.totalTimes = 0; 444 comboStartCastTime_.below10msTimes = 0; 445 comboStartCastTime_.below30msTimes = 0; 446 comboStartCastTime_.below50msTimes = 0; 447 comboStartCastTime_.above50msTimes = 0; 448 } 449 } 450 } 451 ReportPowerInfo(std::shared_ptr<KeyEvent> key,OHOS::HiviewDFX::HiSysEvent::EventType type)452 void DfxHisysevent::ReportPowerInfo(std::shared_ptr<KeyEvent> key, OHOS::HiviewDFX::HiSysEvent::EventType type) 453 { 454 CHKPV(key); 455 if (key->GetKeyAction() == KeyEvent::KEY_ACTION_UP) { 456 int32_t ret = HiSysEventWrite( 457 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 458 "INPUT_POWER_UP", 459 type); 460 if (ret != RET_OK) { 461 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 462 } 463 } else if (key->GetKeyAction() == KeyEvent::KEY_ACTION_DOWN) { 464 int32_t ret = HiSysEventWrite( 465 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 466 "INPUT_POWER_DOWN", 467 type); 468 if (ret != RET_OK) { 469 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 470 } 471 } else { 472 MMI_HILOGW("press power key is error"); 473 } 474 } 475 StatisticTouchpadGesture(std::shared_ptr<PointerEvent> pointerEvent)476 void DfxHisysevent::StatisticTouchpadGesture(std::shared_ptr<PointerEvent> pointerEvent) 477 { 478 CHKPV(pointerEvent); 479 int32_t pointerAction = pointerEvent->GetPointerAction(); 480 int32_t fingerCount = pointerEvent->GetFingerCount(); 481 482 if (pointerAction == PointerEvent::POINTER_ACTION_AXIS_BEGIN) { 483 int32_t ret = HiSysEventWrite( 484 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 485 "TOUCHPAD_PINCH", 486 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 487 "FINGER_COUNT", fingerCount); 488 if (ret != RET_OK) { 489 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 490 } 491 } else if (pointerAction == PointerEvent::POINTER_ACTION_SWIPE_BEGIN) { 492 int32_t ret = HiSysEventWrite( 493 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 494 "TOUCHPAD_SWIPE", 495 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 496 "FINGER_COUNT", fingerCount); 497 if (ret != RET_OK) { 498 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 499 } 500 } else { 501 MMI_HILOGW("HiviewDFX Statistic touchpad gesture is error, pointer action is invalid"); 502 } 503 } 504 ReportTouchpadSettingState(TOUCHPAD_SETTING_CODE settingCode,bool flag)505 void DfxHisysevent::ReportTouchpadSettingState(TOUCHPAD_SETTING_CODE settingCode, bool flag) 506 { 507 const std::map<uint32_t, std::string> mapSettingCodeToSettingType = { 508 { TOUCHPAD_SCROLL_SETTING, "TOUCHPAD_SCROLL_SETTING" }, 509 { TOUCHPAD_SCROLL_DIR_SETTING, "TOUCHPAD_SCROLL_DIR_SETTING" }, 510 { TOUCHPAD_TAP_SETTING, "TOUCHPAD_TAP_SETTING" }, 511 { TOUCHPAD_SWIPE_SETTING, "TOUCHPAD_SWIPE_SETTING" }, 512 { TOUCHPAD_PINCH_SETTING, "TOUCHPAD_PINCH_SETTING" }, 513 { TOUCHPAD_DOUBLE_TAP_DRAG_SETTING, "TOUCHPAD_DOUBLE_TAP_DRAG_SETTING" }, 514 }; 515 516 auto it = mapSettingCodeToSettingType.find(settingCode); 517 if (it == mapSettingCodeToSettingType.end()) { 518 MMI_HILOGE("HiviewDFX Report touchpad setting state is error, setting code is invalid"); 519 return; 520 } 521 std::string name = it->second; 522 523 int32_t ret = HiSysEventWrite( 524 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 525 name, 526 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 527 "SWITCH_STATE", flag); 528 if (ret != RET_OK) { 529 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 530 } 531 } 532 ReportTouchpadSettingState(TOUCHPAD_SETTING_CODE settingCode,int32_t value)533 void DfxHisysevent::ReportTouchpadSettingState(TOUCHPAD_SETTING_CODE settingCode, int32_t value) 534 { 535 const std::map<uint32_t, std::string> mapSettingCodeToSettingType = { 536 { TOUCHPAD_POINTER_SPEED_SETTING, "TOUCHPAD_POINTER_SPEED_SETTING" }, 537 { TOUCHPAD_RIGHT_CLICK_SETTING, "TOUCHPAD_RIGHT_CLICK_SETTING" }, 538 }; 539 540 auto it = mapSettingCodeToSettingType.find(settingCode); 541 if (it == mapSettingCodeToSettingType.end()) { 542 MMI_HILOGW("HiviewDFX Report touchpad setting state is error, setting code is invalid"); 543 return; 544 } 545 std::string name = it->second; 546 547 int32_t ret = HiSysEventWrite( 548 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 549 name, 550 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 551 "SWITCH_VALUE", value); 552 if (ret != RET_OK) { 553 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 554 } 555 } 556 ReportSingleKnuckleDoubleClickEvent(int32_t intervalTime,int32_t distanceInterval)557 void DfxHisysevent::ReportSingleKnuckleDoubleClickEvent(int32_t intervalTime, int32_t distanceInterval) 558 { 559 int32_t ret = HiSysEventWrite( 560 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 561 "FINGERSENSE_KNOCK_EVENT_INFO", 562 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 563 "SK_S_T", FINGERSENSE_EVENT_TIMES, 564 "SKS_T_I", intervalTime / CONVERSION_US_TO_MS, 565 "DKS_D_I", distanceInterval, 566 "TP_INFO", GetTpVendorName(), 567 "S_INFO", GetAccVendorName(), 568 "LCD_INFO", GetLcdInfo()); 569 if (ret != RET_OK) { 570 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 571 } 572 } 573 ReportFailIfInvalidTime(const std::shared_ptr<PointerEvent> touchEvent,int32_t intervalTime)574 void DfxHisysevent::ReportFailIfInvalidTime(const std::shared_ptr<PointerEvent> touchEvent, int32_t intervalTime) 575 { 576 if (intervalTime >= DOWN_TO_PREV_UP_MAX_TIME_THRESHOLD) { 577 return; 578 } 579 CHKPV(touchEvent); 580 size_t size = touchEvent->GetPointerIds().size(); 581 std::string knuckleFailCount; 582 std::string invalidTimeFailCount; 583 if (size == SINGLE_KNUCKLE_SIZE) { 584 knuckleFailCount = "SKF_T_I"; 585 invalidTimeFailCount = "SK_F_T"; 586 } else if (size == DOUBLE_KNUCKLE_SIZE) { 587 knuckleFailCount = "DKF_T_I"; 588 invalidTimeFailCount = "DK_F_T"; 589 } else { 590 MMI_HILOGE("HiviewDFX Report knuckle state error, knuckle size:%{public}zu", size); 591 return; 592 } 593 int32_t ret = HiSysEventWrite( 594 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 595 "FINGERSENSE_KNOCK_EVENT_INFO", 596 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 597 "FSF_T_C", FINGERSENSE_EVENT_TIMES, 598 knuckleFailCount, intervalTime / CONVERSION_US_TO_MS, 599 invalidTimeFailCount, FINGERSENSE_EVENT_TIMES, 600 "TP_INFO", GetTpVendorName(), 601 "S_INFO", GetAccVendorName(), 602 "LCD_INFO", GetLcdInfo()); 603 if (ret != RET_OK) { 604 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 605 } 606 } 607 ReportFailIfInvalidDistance(const std::shared_ptr<PointerEvent> touchEvent,float distance)608 void DfxHisysevent::ReportFailIfInvalidDistance(const std::shared_ptr<PointerEvent> touchEvent, float distance) 609 { 610 CHKPV(touchEvent); 611 int32_t ret = HiSysEventWrite( 612 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 613 "FINGERSENSE_KNOCK_EVENT_INFO", 614 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 615 "SK_F_T", FINGERSENSE_EVENT_TIMES, 616 "DKF_D_I", distance, 617 "FSF_D_C", FINGERSENSE_EVENT_TIMES, 618 "TP_INFO", GetTpVendorName(), 619 "S_INFO", GetAccVendorName(), 620 "LCD_INFO", GetLcdInfo()); 621 if (ret != RET_OK) { 622 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 623 } 624 } 625 ReportKnuckleClickEvent()626 void DfxHisysevent::ReportKnuckleClickEvent() 627 { 628 int32_t ret = HiSysEventWrite( 629 OHOS::HiviewDFX::HiSysEvent::Domain::INPUT_UE, 630 "KNUCKLE_CLICK", 631 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 632 "PNAMEID", EMPTY_STRING, 633 "PVERSIONID", EMPTY_STRING); 634 if (ret != RET_OK) { 635 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 636 } 637 } 638 ReportScreenCaptureGesture()639 void DfxHisysevent::ReportScreenCaptureGesture() 640 { 641 int32_t ret = HiSysEventWrite( 642 OHOS::HiviewDFX::HiSysEvent::Domain::INPUT_UE, 643 "SINGLE_KNUCKLE_DOUBLE_CLICK", 644 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 645 "PNAMEID", EMPTY_STRING, 646 "PVERSIONID", EMPTY_STRING); 647 if (ret != RET_OK) { 648 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 649 } 650 } 651 652 #ifdef OHOS_BUILD_ENABLE_MAGICCURSOR ReportMagicCursorColorChange(std::string fill_Color,std::string stroke_Color)653 void DfxHisysevent::ReportMagicCursorColorChange(std::string fill_Color, std::string stroke_Color) 654 { 655 int32_t ret = HiSysEventWrite( 656 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 657 "MAGIC_CURSOR_COLOR", 658 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 659 "FILL_COLOR", fill_Color, 660 "STROKE_COLOR", stroke_Color); 661 if (ret != RET_OK) { 662 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 663 } 664 } 665 ReportMagicCursorShapeChange(std::string fill_Code,OHOS::MMI::MOUSE_ICON mouse_Style)666 void DfxHisysevent::ReportMagicCursorShapeChange(std::string fill_Code, OHOS::MMI::MOUSE_ICON mouse_Style) 667 { 668 int32_t ret = HiSysEventWrite( 669 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 670 "MAGIC_CURSOR_SHAPE", 671 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 672 "MOUSE_STYLE", mouse_Style, 673 "FILL_CODE", fill_Code); 674 if (ret != RET_OK) { 675 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 676 } 677 } 678 ReportMagicCursorSizeChange(std::string fill_Code,std::string mouse_Size)679 void DfxHisysevent::ReportMagicCursorSizeChange(std::string fill_Code, std::string mouse_Size) 680 { 681 int32_t ret = HiSysEventWrite( 682 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 683 "MAGIC_CURSOR_SIZE", 684 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 685 "MOUSE_SIZE", mouse_Size, 686 "FILL_CODE", fill_Code); 687 if (ret != RET_OK) { 688 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 689 } 690 } 691 ReportMagicCursorFault(std::string error_Code,std::string error_Name)692 void DfxHisysevent::ReportMagicCursorFault(std::string error_Code, std::string error_Name) 693 { 694 int32_t ret = HiSysEventWrite( 695 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 696 "FANTASY_CURSOR_FAILED", 697 OHOS::HiviewDFX::HiSysEvent::EventType::FAULT, 698 "ERROR_CODE", error_Code, 699 "ERROR_NAME", error_Name); 700 if (ret != RET_OK) { 701 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 702 } 703 } 704 #endif // OHOS_BUILD_ENABLE_MAGICCURSOR 705 ReportSmartShotSuccTimes()706 void DfxHisysevent::ReportSmartShotSuccTimes() 707 { 708 int32_t ret = HiSysEventWrite( 709 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 710 "FINGERSENSE_KNOCK_EVENT_INFO", 711 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 712 "RG_S_T", FINGERSENSE_EVENT_TIMES, 713 "TP_INFO", GetTpVendorName(), 714 "S_INFO", GetAccVendorName(), 715 "LCD_INFO", GetLcdInfo()); 716 if (ret != RET_OK) { 717 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 718 } 719 } 720 ReportKnuckleGestureTrackLength(int32_t knuckleGestureTrackLength)721 void DfxHisysevent::ReportKnuckleGestureTrackLength(int32_t knuckleGestureTrackLength) 722 { 723 int32_t ret = HiSysEventWrite( 724 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 725 "FINGERSENSE_KNOCK_EVENT_INFO", 726 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 727 "RG_TRACK_LENGTH", knuckleGestureTrackLength, 728 "TP_INFO", GetTpVendorName(), 729 "S_INFO", GetAccVendorName(), 730 "LCD_INFO", GetLcdInfo()); 731 if (ret != RET_OK) { 732 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 733 } 734 } 735 ReportKnuckleGestureTrackTime(const std::vector<int64_t> & gestureTimeStamps)736 void DfxHisysevent::ReportKnuckleGestureTrackTime(const std::vector<int64_t> &gestureTimeStamps) 737 { 738 size_t size = gestureTimeStamps.size(); 739 if (size < MIN_GESTURE_TIMESTAMPS_SIZE) { 740 MMI_HILOGE("HiviewDFX Report knuckle gesture track time error, knuckle timestamps size:%{public}zu", size); 741 return; 742 } 743 int32_t knuckleGestureTrackTime = (gestureTimeStamps[size - 1] - gestureTimeStamps[0]) / CONVERSION_US_TO_MS; 744 int32_t ret = HiSysEventWrite( 745 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 746 "FINGERSENSE_KNOCK_EVENT_INFO", 747 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 748 "RG_TRACK_TIME", knuckleGestureTrackTime, 749 "TP_INFO", GetTpVendorName(), 750 "S_INFO", GetAccVendorName(), 751 "LCD_INFO", GetLcdInfo()); 752 if (ret != RET_OK) { 753 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 754 } 755 } 756 ReportScreenRecorderGesture(int32_t intervalTime)757 void DfxHisysevent::ReportScreenRecorderGesture(int32_t intervalTime) 758 { 759 int32_t ret = HiSysEventWrite( 760 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 761 "FINGERSENSE_KNOCK_EVENT_INFO", 762 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 763 "DK_S_T", FINGERSENSE_EVENT_TIMES, 764 "DKS_T_I", intervalTime / CONVERSION_US_TO_MS, 765 "TP_INFO", GetTpVendorName(), 766 "S_INFO", GetAccVendorName(), 767 "LCD_INFO", GetLcdInfo()); 768 if (ret != RET_OK) { 769 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 770 } 771 } 772 ReportKnuckleGestureFaildTimes()773 void DfxHisysevent::ReportKnuckleGestureFaildTimes() 774 { 775 int32_t ret = HiSysEventWrite( 776 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 777 "FINGERSENSE_KNOCK_EVENT_INFO", 778 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 779 "LG_F_T", FINGERSENSE_EVENT_TIMES, 780 "TP_INFO", GetTpVendorName(), 781 "S_INFO", GetAccVendorName(), 782 "LCD_INFO", GetLcdInfo()); 783 if (ret != RET_OK) { 784 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 785 } 786 } 787 ReportKnuckleDrawSSuccessTimes()788 void DfxHisysevent::ReportKnuckleDrawSSuccessTimes() 789 { 790 int32_t ret = HiSysEventWrite( 791 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 792 "FINGERSENSE_KNOCK_EVENT_INFO", 793 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 794 "L_S_S_T", FINGERSENSE_EVENT_TIMES, 795 "TP_INFO", GetTpVendorName(), 796 "S_INFO", GetAccVendorName(), 797 "LCD_INFO", GetLcdInfo()); 798 if (ret != RET_OK) { 799 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 800 } 801 } 802 ReportKnuckleGestureFromFailToSuccessTime(int32_t intervalTime)803 void DfxHisysevent::ReportKnuckleGestureFromFailToSuccessTime(int32_t intervalTime) 804 { 805 intervalTime /= CONVERSION_US_TO_MS; 806 if (intervalTime < 0 || intervalTime >= FAIL_SUCC_TIME_DIFF) { 807 return; 808 } 809 int32_t ret = HiSysEventWrite( 810 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 811 "FINGERSENSE_KNOCK_EVENT_INFO", 812 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 813 "RG_F_S_TIME_DIFF", intervalTime, 814 "TP_INFO", GetTpVendorName(), 815 "S_INFO", GetAccVendorName(), 816 "LCD_INFO", GetLcdInfo()); 817 if (ret != RET_OK) { 818 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 819 } 820 } 821 ReportKnuckleGestureFromSuccessToFailTime(int32_t intervalTime)822 void DfxHisysevent::ReportKnuckleGestureFromSuccessToFailTime(int32_t intervalTime) 823 { 824 intervalTime /= CONVERSION_US_TO_MS; 825 if (intervalTime < 0 || intervalTime >= FAIL_SUCC_TIME_DIFF) { 826 return; 827 } 828 int32_t ret = HiSysEventWrite( 829 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 830 "FINGERSENSE_KNOCK_EVENT_INFO", 831 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 832 "RG_S_F_TIME_DIFF", intervalTime, 833 "TP_INFO", GetTpVendorName(), 834 "S_INFO", GetAccVendorName(), 835 "LCD_INFO", GetLcdInfo()); 836 if (ret != RET_OK) { 837 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 838 } 839 } 840 ReportFailIfKnockTooFast()841 void DfxHisysevent::ReportFailIfKnockTooFast() 842 { 843 int32_t ret = HiSysEventWrite( 844 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 845 "FINGERSENSE_KNOCK_EVENT_INFO", 846 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 847 "SK_F_T", FINGERSENSE_EVENT_TIMES, 848 "FSF_C_C", FINGERSENSE_EVENT_TIMES, 849 "TP_INFO", GetTpVendorName(), 850 "S_INFO", GetAccVendorName(), 851 "LCD_INFO", GetLcdInfo()); 852 if (ret != RET_OK) { 853 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 854 } 855 } 856 ReportFailIfOneSuccTwoFail(std::shared_ptr<PointerEvent> touchEvent)857 void DfxHisysevent::ReportFailIfOneSuccTwoFail(std::shared_ptr<PointerEvent> touchEvent) 858 { 859 CHKPV(touchEvent); 860 int32_t id = touchEvent->GetPointerId(); 861 PointerEvent::PointerItem item; 862 touchEvent->GetPointerItem(id, item); 863 if (item.GetToolType() == PointerEvent::TOOL_TYPE_KNUCKLE) { 864 return; 865 } 866 int32_t ret = HiSysEventWrite( 867 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 868 "FINGERSENSE_KNOCK_EVENT_INFO", 869 OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, 870 "SK_F_T", FINGERSENSE_EVENT_TIMES, 871 "FSF_1S_2F_C", FINGERSENSE_EVENT_TIMES, 872 "TP_INFO", GetTpVendorName(), 873 "S_INFO", GetAccVendorName(), 874 "LCD_INFO", GetLcdInfo()); 875 if (ret != RET_OK) { 876 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 877 } 878 } 879 GetTpVendorName()880 std::string DfxHisysevent::GetTpVendorName() 881 { 882 if (ROTATE_POLICY != FOLDABLE_DEVICE) { 883 return GetVendorInfo(TP_PATH); 884 } 885 auto displayMode = WIN_MGR->GetDisplayMode(); 886 if (displayMode == DisplayMode::FULL) { 887 return GetVendorInfo(TP0_PATH); 888 } else if (displayMode == DisplayMode::MAIN) { 889 return GetVendorInfo(TP1_PATH); 890 } 891 return "NA"; 892 } 893 GetAccVendorName()894 std::string DfxHisysevent::GetAccVendorName() 895 { 896 if (ROTATE_POLICY != FOLDABLE_DEVICE) { 897 return GetVendorInfo(ACC_PATH); 898 } 899 return GetVendorInfo(ACC0_PATH); 900 } 901 GetLcdInfo()902 std::string DfxHisysevent::GetLcdInfo() 903 { 904 return GetVendorInfo(LCD_PATH); 905 } 906 ReportSubscribeKeyEvent(int32_t subscribeId,int32_t finalKey,std::string name,int32_t pid)907 void DfxHisysevent::ReportSubscribeKeyEvent(int32_t subscribeId, int32_t finalKey, 908 std::string name, int32_t pid) 909 { 910 int32_t ret = HiSysEventWrite( 911 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 912 "SUBSCRIBE_KEY_EVENT", 913 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 914 "SUBSCRIBE_ID", subscribeId, 915 "FINAL_KEY", finalKey, 916 "NAME", name, 917 "PID", pid); 918 if (ret != RET_OK) { 919 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 920 } 921 } 922 ReportUnSubscribeKeyEvent(int32_t subscribeId,int32_t finalKey,std::string name,int32_t pid)923 void DfxHisysevent::ReportUnSubscribeKeyEvent(int32_t subscribeId, int32_t finalKey, 924 std::string name, int32_t pid) 925 { 926 int32_t ret = HiSysEventWrite( 927 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 928 "UNSUBSCRIBE_KEY_EVENT", 929 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 930 "SUBSCRIBE_ID", subscribeId, 931 "FINAL_KEY", finalKey, 932 "NAME", name, 933 "PID", pid); 934 if (ret != RET_OK) { 935 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 936 } 937 } 938 ReportKeyboardEvent(int32_t eventType,int32_t keyCode,int32_t keyAction)939 void DfxHisysevent::ReportKeyboardEvent(int32_t eventType, int32_t keyCode, int32_t keyAction) 940 { 941 int32_t ret = HiSysEventWrite( 942 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 943 "KAYBOARD_EVENT", 944 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 945 "KEY_EVENT_TYPE", eventType, 946 "KEY_CODE", keyCode, 947 "KEY_ACTION", keyAction); 948 if (ret != RET_OK) { 949 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 950 } 951 } 952 ReportLaunchAbility(std::string bundleName)953 void DfxHisysevent::ReportLaunchAbility(std::string bundleName) 954 { 955 int32_t ret = HiSysEventWrite( 956 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 957 "LAUNCH_ABILITY", 958 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 959 "BUNDLE_NAME", bundleName); 960 if (ret != RET_OK) { 961 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 962 } 963 } 964 ReportCommonAction(std::string action)965 void DfxHisysevent::ReportCommonAction(std::string action) 966 { 967 int32_t ret = HiSysEventWrite( 968 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 969 "COMMON_ACTION", 970 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 971 "ACTION", action); 972 if (ret != RET_OK) { 973 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 974 } 975 } 976 ReportTouchEvent(int32_t pointAction,int32_t pointId,int32_t windowId)977 void DfxHisysevent::ReportTouchEvent(int32_t pointAction, int32_t pointId, int32_t windowId) 978 { 979 int32_t ret = HiSysEventWrite( 980 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 981 "TOUCH_EVENT", 982 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 983 "POINT_ACTION", pointAction, 984 "POINT_ID", pointId, 985 "WINDOW_ID", windowId); 986 if (ret != RET_OK) { 987 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 988 } 989 } 990 ReportSetCustomCursor(int32_t windowPid,int32_t windowId)991 void DfxHisysevent::ReportSetCustomCursor(int32_t windowPid, int32_t windowId) 992 { 993 int32_t ret = HiSysEventWrite( 994 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 995 "SET_CUSTOM_CURSOR", 996 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 997 "WINDOW_PID", windowPid, 998 "WINDOW_ID", windowId); 999 if (ret != RET_OK) { 1000 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 1001 } 1002 } 1003 ReportSetMouseIcon(int32_t windowId)1004 void DfxHisysevent::ReportSetMouseIcon(int32_t windowId) 1005 { 1006 int32_t ret = HiSysEventWrite( 1007 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 1008 "SET_MOUSE_ICON", 1009 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 1010 "WINDOW_ID", windowId); 1011 if (ret != RET_OK) { 1012 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 1013 } 1014 } 1015 ReportSetPointerStyle(int32_t windowId,int32_t pointerStyleId,bool isUiExtension)1016 void DfxHisysevent::ReportSetPointerStyle(int32_t windowId, int32_t pointerStyleId, bool isUiExtension) 1017 { 1018 int32_t ret = HiSysEventWrite( 1019 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 1020 "SET_POINTER_STYLE", 1021 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 1022 "WINDOW_ID", windowId, 1023 "POINTER_STYLE_ID", pointerStyleId, 1024 "IS_UIEXTENSION", isUiExtension); 1025 if (ret != RET_OK) { 1026 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 1027 } 1028 } 1029 ReportSetPointerVisible(bool visible,int32_t priority)1030 void DfxHisysevent::ReportSetPointerVisible(bool visible, int32_t priority) 1031 { 1032 int32_t ret = HiSysEventWrite( 1033 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 1034 "SET_POINTER_VISIBLE", 1035 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 1036 "VISIBLE", visible, 1037 "PRIORITY", priority); 1038 if (ret != RET_OK) { 1039 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 1040 } 1041 } 1042 ReportSetPointerSpeed(int32_t speed)1043 void DfxHisysevent::ReportSetPointerSpeed(int32_t speed) 1044 { 1045 int32_t ret = HiSysEventWrite( 1046 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 1047 "SET_POINTER_SPEED", 1048 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 1049 "SPEED", speed); 1050 if (ret != RET_OK) { 1051 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 1052 } 1053 } 1054 ReportAddInputHandler(int32_t handlerType)1055 void DfxHisysevent::ReportAddInputHandler(int32_t handlerType) 1056 { 1057 int32_t ret = HiSysEventWrite( 1058 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 1059 "ADD_INPUT_HANDLER", 1060 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 1061 "INPUT_HANDLER_TYPE", handlerType); 1062 if (ret != RET_OK) { 1063 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 1064 } 1065 } 1066 ReportRemoveInputHandler(int32_t handlerType)1067 void DfxHisysevent::ReportRemoveInputHandler(int32_t handlerType) 1068 { 1069 int32_t ret = HiSysEventWrite( 1070 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 1071 "REMOVE_INPUT_HANDLER", 1072 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 1073 "INPUT_HANDLER_TYPE", handlerType); 1074 if (ret != RET_OK) { 1075 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 1076 } 1077 } 1078 ReportInjectPointerEvent(bool isNativeInject)1079 void DfxHisysevent::ReportInjectPointerEvent(bool isNativeInject) 1080 { 1081 int32_t ret = HiSysEventWrite( 1082 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 1083 "INJECT_POINTER_EVENT", 1084 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 1085 "IS_NATIVE_INJECT", isNativeInject); 1086 if (ret != RET_OK) { 1087 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 1088 } 1089 } 1090 ReportEnableCombineKey(bool enable)1091 void DfxHisysevent::ReportEnableCombineKey(bool enable) 1092 { 1093 int32_t ret = HiSysEventWrite( 1094 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 1095 "ENABLE_COMBINE_KEY", 1096 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 1097 "ENABLE", enable); 1098 if (ret != RET_OK) { 1099 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 1100 } 1101 } 1102 ReportAppendExtraData()1103 void DfxHisysevent::ReportAppendExtraData() 1104 { 1105 int32_t ret = HiSysEventWrite( 1106 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 1107 "APPEND_EXTRA_DATA", 1108 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR); 1109 if (ret != RET_OK) { 1110 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 1111 } 1112 } 1113 ReportTransmitInfrared(int64_t number)1114 void DfxHisysevent::ReportTransmitInfrared(int64_t number) 1115 { 1116 int32_t ret = HiSysEventWrite( 1117 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 1118 "APPEND_EXTRA_DATA", 1119 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 1120 "ENABLE", number); 1121 if (ret != RET_OK) { 1122 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 1123 } 1124 } 1125 ReportSetCurrentUser(int32_t userId)1126 void DfxHisysevent::ReportSetCurrentUser(int32_t userId) 1127 { 1128 int32_t ret = HiSysEventWrite( 1129 OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT, 1130 "SET_CURRENT_USER", 1131 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 1132 "USER_ID", userId); 1133 if (ret != RET_OK) { 1134 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d", ret); 1135 } 1136 } 1137 } // namespace MMI 1138 } // namespace OHOS