1 /*
2 * Copyright (c) 2021-2025 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 "ability_running_record.h"
17 #include "hilog_tag_wrapper.h"
18
19 namespace OHOS {
20 namespace AppExecFwk {
21 namespace {
22 constexpr const char* BUNDLE_NAME_SCENEBOARD = "com.ohos.sceneboard";
23 constexpr const char* SCENEBOARD_ABILITY_NAME = "com.ohos.sceneboard.MainAbility";
24 constexpr const char* IS_HOOK = "ohos.ability_runtime.is_hook";
25 static const std::string EMPTY_NAME;
26 }
AbilityRunningRecord(std::shared_ptr<AbilityInfo> info,sptr<IRemoteObject> token,int32_t abilityRecordId)27 AbilityRunningRecord::AbilityRunningRecord(std::shared_ptr<AbilityInfo> info,
28 sptr<IRemoteObject> token, int32_t abilityRecordId)
29 : abilityRecordId_(abilityRecordId), info_(info), token_(token)
30 {}
31
~AbilityRunningRecord()32 AbilityRunningRecord::~AbilityRunningRecord()
33 {}
34
GetName() const35 const std::string &AbilityRunningRecord::GetName() const
36 {
37 if (info_ == nullptr) {
38 TAG_LOGE(AAFwkTag::APPMGR, "GetName info_ nullptr");
39 return EMPTY_NAME;
40 }
41 return info_->name;
42 }
43
GetBundleName() const44 const std::string &AbilityRunningRecord::GetBundleName() const
45 {
46 if (info_ == nullptr) {
47 TAG_LOGE(AAFwkTag::APPMGR, "GetBundleName info_ nullptr");
48 return EMPTY_NAME;
49 }
50 return info_->bundleName;
51 }
52
GetModuleName() const53 const std::string &AbilityRunningRecord::GetModuleName() const
54 {
55 if (info_ == nullptr) {
56 TAG_LOGE(AAFwkTag::APPMGR, "GetModuleName info_ nullptr");
57 return EMPTY_NAME;
58 }
59 return info_->moduleName;
60 }
61
GetAbilityInfo() const62 const std::shared_ptr<AbilityInfo> &AbilityRunningRecord::GetAbilityInfo() const
63 {
64 return info_;
65 }
66
GetWant() const67 const std::shared_ptr<AAFwk::Want> &AbilityRunningRecord::GetWant() const
68 {
69 return want_;
70 }
71
SetWant(const std::shared_ptr<AAFwk::Want> & want)72 void AbilityRunningRecord::SetWant(const std::shared_ptr<AAFwk::Want> &want)
73 {
74 want_ = want;
75 }
76
GetToken() const77 const sptr<IRemoteObject> &AbilityRunningRecord::GetToken() const
78 {
79 return token_;
80 }
81
SetState(const AbilityState state)82 void AbilityRunningRecord::SetState(const AbilityState state)
83 {
84 state_ = state;
85 }
86
GetState() const87 AbilityState AbilityRunningRecord::GetState() const
88 {
89 return state_;
90 }
91
SetEventId(const int64_t eventId)92 void AbilityRunningRecord::SetEventId(const int64_t eventId)
93 {
94 eventId_ = eventId;
95 }
96
GetEventId() const97 int64_t AbilityRunningRecord::GetEventId() const
98 {
99 return eventId_;
100 }
101
SetTerminating()102 void AbilityRunningRecord::SetTerminating()
103 {
104 isTerminating_ = true;
105 }
106
IsTerminating() const107 bool AbilityRunningRecord::IsTerminating() const
108 {
109 return isTerminating_;
110 }
111
SetOwnerUserId(int32_t ownerUserId)112 void AbilityRunningRecord::SetOwnerUserId(int32_t ownerUserId)
113 {
114 ownerUserId_ = ownerUserId;
115 }
116
GetOwnerUserId() const117 int32_t AbilityRunningRecord::GetOwnerUserId() const
118 {
119 return ownerUserId_;
120 }
121
SetIsSingleUser(bool flag)122 void AbilityRunningRecord::SetIsSingleUser(bool flag)
123 {
124 isSingleUser_ = flag;
125 }
126
IsSingleUser() const127 bool AbilityRunningRecord::IsSingleUser() const
128 {
129 return isSingleUser_;
130 }
131
UpdateFocusState(bool isFocus)132 void AbilityRunningRecord::UpdateFocusState(bool isFocus)
133 {
134 isFocused_ = isFocus;
135 }
136
GetFocusFlag() const137 bool AbilityRunningRecord::GetFocusFlag() const
138 {
139 return isFocused_;
140 }
141
SetUIExtensionAbilityId(const int32_t uiExtensionAbilityId)142 void AbilityRunningRecord::SetUIExtensionAbilityId(const int32_t uiExtensionAbilityId)
143 {
144 uiExtensionAbilityId_ = uiExtensionAbilityId;
145 }
146
GetUIExtensionAbilityId() const147 int32_t AbilityRunningRecord::GetUIExtensionAbilityId() const
148 {
149 return uiExtensionAbilityId_;
150 }
151
SetUserRequestCleaningStatus()152 void AbilityRunningRecord::SetUserRequestCleaningStatus()
153 {
154 isUserRequestCleaning_ = true;
155 }
156
IsUserRequestCleaning() const157 bool AbilityRunningRecord::IsUserRequestCleaning() const
158 {
159 return isUserRequestCleaning_;
160 }
161
IsSceneBoard() const162 bool AbilityRunningRecord::IsSceneBoard() const
163 {
164 if (info_ == nullptr) {
165 return false;
166 }
167 return info_->name == SCENEBOARD_ABILITY_NAME && info_->bundleName == BUNDLE_NAME_SCENEBOARD;
168 }
169
IsHook() const170 bool AbilityRunningRecord::IsHook() const
171 {
172 return want_ && want_->GetBoolParam(IS_HOOK, false);
173 }
174
SetUIExtensionBindAbilityId(const int32_t uiExtensionBindAbilityId)175 void AbilityRunningRecord::SetUIExtensionBindAbilityId(const int32_t uiExtensionBindAbilityId)
176 {
177 uiExtensionBindAbilityId_ = uiExtensionBindAbilityId;
178 }
179
GetUIExtensionBindAbilityId() const180 int32_t AbilityRunningRecord::GetUIExtensionBindAbilityId() const
181 {
182 return uiExtensionBindAbilityId_;
183 }
184 } // namespace AppExecFwk
185 } // namespace OHOS
186