1/* 2 * Copyright (c) 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 <hisysevent.h> 17#include "dms_reporter.h" 18#include "window_manager_hilog.h" 19 20namespace OHOS { 21namespace Rosen { 22WM_IMPLEMENT_SINGLE_INSTANCE(DmsReporter) 23 24enum class StageRes : int32_t { 25 SUCCESS = 1, 26 FAILED = 2, 27}; 28 29enum class BizScene : int32_t { 30 CONTINUE_APP = 10, 31 QUERY_MISSION_INFO = 10, 32 REGISTER = 12, 33}; 34 35enum class BizStage : int32_t { 36 REGISTER = 1, 37 QUERY_MISSION_INFO = 7, 38 CONTINUE_APP = 8, 39}; 40 41constexpr const char APP_CONTINUE_DOMAIN[] = "APP_CONTINUE"; 42constexpr const char APP_CONTINUE_EVENT_NAME[] = "APPLICATION_CONTINUE_BEHAVIOR"; 43constexpr const char PKG_NAME_SCB[] = "com.ohos.sceneboard"; 44constexpr const char PKG_NAME_ABILITY_MANAGER[] = "ohos.abilitymanagerservice"; 45constexpr const char PKG_NAME_DMS[] = "ohos.distributedschedule"; 46constexpr const char EVENT_KEY_ORG_PKG[] = "ORG_PKG"; 47constexpr const char EVENT_KEY_HOST_PKG[] = "HOST_PKG"; 48constexpr const char EVENT_KEY_FUNC[] = "FUNC"; 49constexpr const char EVENT_KEY_BIZ_SCENE[] = "BIZ_SCENE"; 50constexpr const char EVENT_KEY_BIZ_STAGE[] = "BIZ_STAGE"; 51constexpr const char EVENT_KEY_STAGE_RES[] = "STAGE_RES"; 52constexpr const char EVENT_KEY_ERROR_CODE[] = "ERROR_CODE"; 53 54void DmsReporter::ReportRegisterSessionListener(bool isSuccess, int32_t errCode) 55{ 56 TLOGI(WmsLogTag::WMS_LIFE, "[AppContinue]Report register session listener"); 57 int32_t ret = HiSysEventWrite( 58 APP_CONTINUE_DOMAIN, APP_CONTINUE_EVENT_NAME, 59 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 60 EVENT_KEY_ORG_PKG, PKG_NAME_SCB, 61 EVENT_KEY_FUNC, "RegisterSessionListener", 62 EVENT_KEY_BIZ_SCENE, static_cast<int32_t>(BizScene::REGISTER), 63 EVENT_KEY_BIZ_STAGE, static_cast<int32_t>(BizStage::REGISTER), 64 EVENT_KEY_STAGE_RES, isSuccess ? static_cast<int32_t>(StageRes::SUCCESS) : 65 static_cast<int32_t>(StageRes::FAILED), 66 EVENT_KEY_ERROR_CODE, errCode, 67 EVENT_KEY_HOST_PKG, PKG_NAME_ABILITY_MANAGER); 68 if (ret != 0) { 69 TLOGE(WmsLogTag::WMS_LIFE, "Write HiSysEvent error, ret:%{public}d", ret); 70 } 71} 72 73void DmsReporter::ReportQuerySessionInfo(bool isSuccess, int32_t errCode) 74{ 75 TLOGI(WmsLogTag::WMS_LIFE, "[AppContinue]Report query session info"); 76 int32_t ret = HiSysEventWrite( 77 APP_CONTINUE_DOMAIN, APP_CONTINUE_EVENT_NAME, 78 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 79 EVENT_KEY_ORG_PKG, PKG_NAME_SCB, 80 EVENT_KEY_FUNC, "GetSessionInfoByContinueSessionId", 81 EVENT_KEY_BIZ_SCENE, static_cast<int32_t>(BizScene::QUERY_MISSION_INFO), 82 EVENT_KEY_BIZ_STAGE, static_cast<int32_t>(BizStage::QUERY_MISSION_INFO), 83 EVENT_KEY_STAGE_RES, isSuccess ? static_cast<int32_t>(StageRes::SUCCESS) : 84 static_cast<int32_t>(StageRes::FAILED), 85 EVENT_KEY_ERROR_CODE, errCode, 86 EVENT_KEY_HOST_PKG, PKG_NAME_DMS); 87 if (ret != 0) { 88 TLOGE(WmsLogTag::WMS_LIFE, "Write HiSysEvent error, ret:%{public}d", ret); 89 } 90} 91 92void DmsReporter::ReportContinueApp(bool isSuccess, int32_t errCode) 93{ 94 TLOGI(WmsLogTag::WMS_LIFE, "[AppContinue]Report continue app pending session activation"); 95 int32_t ret = HiSysEventWrite( 96 APP_CONTINUE_DOMAIN, APP_CONTINUE_EVENT_NAME, 97 OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, 98 EVENT_KEY_ORG_PKG, PKG_NAME_SCB, 99 EVENT_KEY_FUNC, "PendingSessionActivation", 100 EVENT_KEY_BIZ_SCENE, static_cast<int32_t>(BizScene::CONTINUE_APP), 101 EVENT_KEY_BIZ_STAGE, static_cast<int32_t>(BizStage::CONTINUE_APP), 102 EVENT_KEY_STAGE_RES, isSuccess ? static_cast<int32_t>(StageRes::SUCCESS) : 103 static_cast<int32_t>(StageRes::FAILED), 104 EVENT_KEY_ERROR_CODE, errCode, 105 EVENT_KEY_HOST_PKG, PKG_NAME_ABILITY_MANAGER); 106 if (ret != 0) { 107 TLOGE(WmsLogTag::WMS_LIFE, "Write HiSysEvent error, ret:%{public}d", ret); 108 } 109} 110 111} // namespace Rosen 112} // namespace OHOS 113