1 /*
2 * Copyright (c) 2023 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_context.h"
17
18 #include <cstring>
19 #include "hilog_wrapper.h"
20
21 namespace OHOS {
22 namespace AbilityRuntime {
GetConfiguration()23 std::shared_ptr<AppExecFwk::Configuration> AbilityContext::GetConfiguration()
24 {
25 return stageContext_ ? stageContext_->GetConfiguration() : nullptr;
26 }
27
GetApplicationInfo() const28 std::shared_ptr<AppExecFwk::ApplicationInfo> AbilityContext::GetApplicationInfo() const
29 {
30 return stageContext_ ? stageContext_->GetApplicationInfo() : nullptr;
31 }
32
GetHapModuleInfo() const33 std::shared_ptr<AppExecFwk::HapModuleInfo> AbilityContext::GetHapModuleInfo() const
34 {
35 return stageContext_ ? stageContext_->GetHapModuleInfo() : nullptr;
36 }
37
GetAbilityInfo() const38 std::shared_ptr<AppExecFwk::AbilityInfo> AbilityContext::GetAbilityInfo() const
39 {
40 return abilityInfo_;
41 }
42
GetOptions()43 Options AbilityContext::GetOptions()
44 {
45 return options_;
46 }
47
SetOptions(const Options & options)48 void AbilityContext::SetOptions(const Options &options)
49 {
50 options_ = options;
51 abilityInfo_ = std::make_shared<AppExecFwk::AbilityInfo>(options.abilityInfo);
52 if (abilityInfo_ != nullptr) {
53 abilityInfo_->bundleName = options_.bundleName;
54 abilityInfo_->moduleName = options_.moduleName;
55 }
56
57 HILOG_DEBUG("Options.bundleName: %{public}s", options.bundleName.c_str());
58 HILOG_DEBUG("Options.moduleName: %{public}s", options.moduleName.c_str());
59 HILOG_DEBUG("Options.modulePath: %{public}s", options.modulePath.c_str());
60 HILOG_DEBUG("Options.resourcePath: %{public}s", options.resourcePath.c_str());
61 HILOG_DEBUG("Options.debugPort: %{public}d", options.debugPort);
62 HILOG_DEBUG("Options.assetPath: %{public}s", options.assetPath.c_str());
63 HILOG_DEBUG("Options.systemResourcePath: %{public}s", options.systemResourcePath.c_str());
64 HILOG_DEBUG("Options.appResourcePath: %{public}s", options.appResourcePath.c_str());
65 HILOG_DEBUG("Options.containerSdkPath: %{public}s", options.containerSdkPath.c_str());
66 HILOG_DEBUG("Options.url: %{public}s", options.url.c_str());
67 HILOG_DEBUG("Options.language: %{public}s", options.language.c_str());
68 HILOG_DEBUG("Options.region: %{public}s", options.region.c_str());
69 HILOG_DEBUG("Options.script: %{public}s", options.script.c_str());
70 HILOG_DEBUG("Options.themeId: %{public}d", options.themeId);
71 HILOG_DEBUG("Options.deviceWidth: %{public}d", options.deviceWidth);
72 HILOG_DEBUG("Options.deviceHeight: %{public}d", options.deviceHeight);
73 HILOG_DEBUG("Options.isRound: %{public}d", options.themeId);
74 HILOG_DEBUG("Options.compatibleVersion: %{public}d", options.compatibleVersion);
75 HILOG_DEBUG("Options.installationFree: %{public}d", options.installationFree);
76 HILOG_DEBUG("Options.labelId: %{public}d", options.labelId);
77 HILOG_DEBUG("Options.compileMode: %{public}s", options.compileMode.c_str());
78 HILOG_DEBUG("Options.pageProfile: %{public}s", options.pageProfile.c_str());
79 HILOG_DEBUG("Options.targetVersion: %{public}d", options.targetVersion);
80 HILOG_DEBUG("Options.releaseType: %{public}s", options.releaseType.c_str());
81 HILOG_DEBUG("Options.enablePartialUpdate: %{public}d", options.enablePartialUpdate);
82 }
83
GetBundleName()84 std::string AbilityContext::GetBundleName()
85 {
86 return stageContext_ ? stageContext_->GetBundleName() : "";
87 }
88
GetBundleCodePath()89 std::string AbilityContext::GetBundleCodePath()
90 {
91 return stageContext_ ? stageContext_->GetBundleCodePath() : "";
92 }
93
GetBundleCodeDir()94 std::string AbilityContext::GetBundleCodeDir()
95 {
96 return stageContext_ ? stageContext_->GetBundleCodeDir() : "";
97 }
98
GetCacheDir()99 std::string AbilityContext::GetCacheDir()
100 {
101 return stageContext_ ? stageContext_->GetCacheDir() : "";
102 }
103
GetTempDir()104 std::string AbilityContext::GetTempDir()
105 {
106 return stageContext_ ? stageContext_->GetTempDir() : "";
107 }
108
GetFilesDir()109 std::string AbilityContext::GetFilesDir()
110 {
111 return stageContext_ ? stageContext_->GetFilesDir() : "";
112 }
113
GetDatabaseDir()114 std::string AbilityContext::GetDatabaseDir()
115 {
116 return stageContext_ ? stageContext_->GetDatabaseDir() : "";
117 }
118
GetPreferencesDir()119 std::string AbilityContext::GetPreferencesDir()
120 {
121 return stageContext_ ? stageContext_->GetPreferencesDir() : "";
122 }
123
GetDistributedFilesDir()124 std::string AbilityContext::GetDistributedFilesDir()
125 {
126 return stageContext_ ? stageContext_->GetDistributedFilesDir() : "";
127 }
128
SwitchArea(int mode)129 void AbilityContext::SwitchArea(int mode)
130 {
131 if (stageContext_) {
132 stageContext_->SwitchArea(mode);
133 }
134 }
135
GetArea()136 int AbilityContext::GetArea()
137 {
138 return stageContext_ ? stageContext_->GetArea() : EL_DEFAULT;
139 }
140
GetBaseDir()141 std::string AbilityContext::GetBaseDir()
142 {
143 return stageContext_ ? stageContext_->GetBaseDir() : "";
144 }
145
GetResourceManager() const146 std::shared_ptr<Global::Resource::ResourceManager> AbilityContext::GetResourceManager() const
147 {
148 return resourceMgr_;
149 }
150
SetResourceManager(const std::shared_ptr<Global::Resource::ResourceManager> & resMgr)151 void AbilityContext::SetResourceManager(const std::shared_ptr<Global::Resource::ResourceManager> &resMgr)
152 {
153 resourceMgr_ = resMgr;
154 }
155
SetAbilityStageContext(const std::shared_ptr<AbilityStageContext> & stageContext)156 void AbilityContext::SetAbilityStageContext(const std::shared_ptr<AbilityStageContext> &stageContext)
157 {
158 stageContext_ = stageContext;
159 }
160
IsTerminating()161 bool AbilityContext::IsTerminating()
162 {
163 return isTerminating_;
164 }
165
SetTerminating(const bool & state)166 void AbilityContext::SetTerminating(const bool &state)
167 {
168 isTerminating_ = state;
169 }
170
TerminateSelf()171 int32_t AbilityContext::TerminateSelf()
172 {
173 if (simulator_ != nullptr) {
174 simulator_->TerminateAbility(0);
175 }
176 return 0;
177 }
178
SetSimulator(Simulator * simulator)179 void AbilityContext::SetSimulator(Simulator *simulator)
180 {
181 simulator_ = simulator;
182 }
183 } // namespace AbilityRuntime
184 } // namespace OHOS
185