1 /* 2 * Copyright (c) 2022 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 #ifndef BUNDLE_ACTIVE_EVENT_H 17 #define BUNDLE_ACTIVE_EVENT_H 18 19 #include <cstdint> 20 #include <iosfwd> 21 #include <memory> 22 #include "parcel.h" 23 24 namespace OHOS { 25 namespace DeviceUsageStats { 26 class BundleActiveEvent : public Parcelable { 27 public: 28 // external events 29 static const int32_t ABILITY_FOREGROUND = 2; // onForeground() called, ability is in front. 30 static const int32_t ABILITY_BACKGROUND = 3; // onBackground() called, ability is in background. 31 static const int32_t ABILITY_STOP = 4; // onStop() called, ability is destroyed. 32 static const int32_t LONG_TIME_TASK_STARTTED = 5; 33 static const int32_t LONG_TIME_TASK_ENDED = 6; 34 static const int32_t SYSTEM_INTERACTIVE = 7; 35 static const int32_t USER_INTERACTIVE = 8; 36 // internal events 37 static const int32_t DEFAULT_EVENT_ID = 0; 38 static const int32_t DEFAULT_UID_ID = -1; 39 static const int32_t END_OF_THE_DAY = 9; 40 static const int32_t SHUTDOWN = 10; 41 static const int32_t STARTUP = 11; 42 static const int32_t FLUSH = 12; 43 static const int32_t SCREEN_INTERACTIVE = 13; 44 static const int32_t SCREEN_NON_INTERACTIVE = 14; 45 static const int32_t FORM_IS_CLICKED = 15; 46 static const int32_t FORM_IS_REMOVED = 16; 47 static const int32_t KEYGUARD_SHOWN = 17; 48 static const int32_t KEYGUARD_HIDDEN = 18; 49 static const int32_t NOTIFICATION_SEEN = 19; 50 static const int32_t SYSTEM_LOCK = 20; 51 static const int32_t SYSTEM_UNLOCK = 21; 52 static const int32_t SYSTEM_SLEEP = 22; 53 static const int32_t SYSTEM_WAKEUP = 23; 54 inline static const std::string DEVICE_EVENT_PACKAGE_NAME = "openharmony"; 55 std::string bundleName_; 56 std::string continuousTaskAbilityName_; 57 std::string abilityName_; 58 std::string abilityId_; 59 std::string moduleName_; 60 std::string formName_; 61 int32_t formDimension_; 62 int64_t formId_; 63 int64_t timeStamp_; 64 int32_t eventId_; 65 int32_t uid_; 66 67 public: 68 /* 69 * function: BundleActiveEvent, default constructor. 70 */ 71 BundleActiveEvent(); 72 /* 73 * function: BundleActiveEvent, copy constructor. 74 * parameters: orig 75 */ 76 BundleActiveEvent(const BundleActiveEvent& orig); 77 /* 78 * function: BundleActiveEvent, constructor using event Id, time stamp. 79 * parameters: eventId, timeStamp 80 */ 81 BundleActiveEvent(int32_t eventId, int64_t timeStamp); 82 /* 83 * function: BundleActiveEvent, constructor using event Id, time stamp. 84 * parameters: eventId, bundleName. 85 */ 86 BundleActiveEvent(const int32_t eventId, const std::string bundleName, const int32_t uid = DEFAULT_UID_ID); 87 /* 88 * function: BundleActiveEvent, constructor of continuous task event. 89 * parameters: bundleName, continuousTaskAbilityName 90 */ 91 BundleActiveEvent(const std::string bundleName, const std::string continuousTaskAbilityName, 92 const int32_t uid = DEFAULT_UID_ID); 93 /* 94 * function: BundleActiveEvent, constructor of app ability event. 95 * parameters: bundleName, abilityName, abilityId 96 */ 97 BundleActiveEvent(const std::string bundleName, const std::string abilityName, const std::string abilityId, 98 const std::string moduleName, const int32_t uid = DEFAULT_UID_ID); 99 /* 100 * function: BundleActiveEvent, constructor of form event. 101 * parameters: bundleName, moduleName, formName, formDimension, formId, eventId 102 */ 103 BundleActiveEvent(const std::string bundleName, const std::string moduleName, 104 const std::string formName, const int32_t formDimension, const int64_t formId, const int32_t eventId, 105 const int32_t uid = DEFAULT_UID_ID); 106 void PrintEvent(const bool debug) const; 107 /* 108 * function: operator=, override operator =. 109 * parameters: orig 110 * return: a BundleActiveEvent object same as orig. 111 */ 112 BundleActiveEvent& operator=(const BundleActiveEvent& orig); 113 /* 114 * function: Marshalling, mashalling event object to parcel. 115 * parameters: parcel 116 * return: result of mashalling, true means successful, flase means failed. 117 */ 118 virtual bool Marshalling(Parcel &parcel) const override; 119 /* 120 * function: UnMarshalling, Unmashalling event object from parcel. 121 * parameters: parcel 122 * return: point to a BundleActiveEvent. 123 */ 124 static std::shared_ptr<BundleActiveEvent> UnMarshalling(Parcel &parcel); 125 /* 126 * function: ToString, change event object to string. 127 * return: string of bundlename, timestamp, eventid. 128 */ 129 std::string ToString(); 130 /** 131 * @brief get if the event is reported by bundle usage. 132 * 133 * @return return true if event reported by bundle usage. 134 */ 135 static bool IsBundleEvent(const int32_t eventId); 136 }; 137 } // namespace DeviceUsageStats 138 } // namespace OHOS 139 #endif // BUNDLE_ACTIVE_EVENT_H 140 141