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 #include "accessibility_config.h"
17 #include "accessibility_config_impl.h"
18 #include "hilog_wrapper.h"
19
20 namespace OHOS {
21 namespace AccessibilityConfig {
22 #define CHECK_IMPL_PTR(ret_expr) \
23 if (!pImpl_) { \
24 HILOG_ERROR("pImpl_ is nullptr"); \
25 return ret_expr; \
26 }
27
ACCESSIBILITY_DEFINE_SINGLETON(AccessibilityConfig)28 ACCESSIBILITY_DEFINE_SINGLETON(AccessibilityConfig)
29
30 AccessibilityConfig::AccessibilityConfig() : pImpl_(std::make_unique<Impl>())
31 {
32 if (!pImpl_) {
33 HILOG_ERROR("Create AccessibilityConfigImpl Failed");
34 }
35 }
36
~AccessibilityConfig()37 AccessibilityConfig::~AccessibilityConfig()
38 {
39 }
40
InitializeContext()41 bool AccessibilityConfig::InitializeContext()
42 {
43 CHECK_IMPL_PTR(false)
44 return pImpl_->InitializeContext();
45 }
46
UnInitializeContext()47 void AccessibilityConfig::UnInitializeContext()
48 {
49 if (!pImpl_) {
50 HILOG_ERROR("pImpl_ is nullptr");
51 return;
52 }
53 pImpl_->UnInitializeContext();
54 }
55
SubscribeConfigObserver(const CONFIG_ID id,const std::shared_ptr<AccessibilityConfigObserver> & observer,const bool retFlag)56 Accessibility::RetError AccessibilityConfig::SubscribeConfigObserver(const CONFIG_ID id,
57 const std::shared_ptr<AccessibilityConfigObserver> &observer, const bool retFlag)
58 {
59 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
60 return pImpl_->SubscribeConfigObserver(id, observer, retFlag);
61 }
62
UnsubscribeConfigObserver(const CONFIG_ID id,const std::shared_ptr<AccessibilityConfigObserver> & observer)63 Accessibility::RetError AccessibilityConfig::UnsubscribeConfigObserver(const CONFIG_ID id,
64 const std::shared_ptr<AccessibilityConfigObserver> &observer)
65 {
66 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
67 return pImpl_->UnsubscribeConfigObserver(id, observer);
68 }
69
SubscribeEnableAbilityListsObserver(const std::shared_ptr<AccessibilityEnableAbilityListsObserver> & observer)70 Accessibility::RetError AccessibilityConfig::SubscribeEnableAbilityListsObserver(
71 const std::shared_ptr<AccessibilityEnableAbilityListsObserver> &observer)
72 {
73 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
74 return pImpl_->SubscribeEnableAbilityListsObserver(observer);
75 }
76
UnsubscribeEnableAbilityListsObserver(const std::shared_ptr<AccessibilityEnableAbilityListsObserver> & observer)77 Accessibility::RetError AccessibilityConfig::UnsubscribeEnableAbilityListsObserver(
78 const std::shared_ptr<AccessibilityEnableAbilityListsObserver> &observer)
79 {
80 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
81 return pImpl_->UnsubscribeEnableAbilityListsObserver(observer);
82 }
83
EnableAbility(const std::string & name,const uint32_t capabilities)84 Accessibility::RetError AccessibilityConfig::EnableAbility(const std::string &name, const uint32_t capabilities)
85 {
86 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
87 return pImpl_->EnableAbility(name, capabilities);
88 }
89
DisableAbility(const std::string & name)90 Accessibility::RetError AccessibilityConfig::DisableAbility(const std::string &name)
91 {
92 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
93 return pImpl_->DisableAbility(name);
94 }
95
SetMagnificationState(const bool state)96 Accessibility::RetError AccessibilityConfig::SetMagnificationState(const bool state)
97 {
98 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
99 return pImpl_->SetMagnificationState(state);
100 }
101
SetScreenMagnificationState(const bool state)102 Accessibility::RetError AccessibilityConfig::SetScreenMagnificationState(const bool state)
103 {
104 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
105 return pImpl_->SetScreenMagnificationState(state);
106 }
107
SetShortKeyState(const bool state)108 Accessibility::RetError AccessibilityConfig::SetShortKeyState(const bool state)
109 {
110 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
111 return pImpl_->SetShortKeyState(state);
112 }
113
SetMouseKeyState(const bool state)114 Accessibility::RetError AccessibilityConfig::SetMouseKeyState(const bool state)
115 {
116 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
117 return pImpl_->SetMouseKeyState(state);
118 }
119
SetCaptionsState(const bool state)120 Accessibility::RetError AccessibilityConfig::SetCaptionsState(const bool state)
121 {
122 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
123 return pImpl_->SetCaptionsState(state);
124 }
125
SetCaptionsProperty(const CaptionProperty & caption)126 Accessibility::RetError AccessibilityConfig::SetCaptionsProperty(const CaptionProperty &caption)
127 {
128 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
129 return pImpl_->SetCaptionsProperty(caption);
130 }
131
SetMouseAutoClick(const int32_t time)132 Accessibility::RetError AccessibilityConfig::SetMouseAutoClick(const int32_t time)
133 {
134 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
135 return pImpl_->SetMouseAutoClick(time);
136 }
137
SetShortkeyTarget(const std::string & name)138 Accessibility::RetError AccessibilityConfig::SetShortkeyTarget(const std::string &name)
139 {
140 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
141 return pImpl_->SetShortkeyTarget(name);
142 }
143
SetShortkeyMultiTarget(const std::vector<std::string> & name)144 Accessibility::RetError AccessibilityConfig::SetShortkeyMultiTarget(const std::vector<std::string> &name)
145 {
146 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
147 return pImpl_->SetShortkeyMultiTarget(name);
148 }
149
SetHighContrastTextState(bool state)150 Accessibility::RetError AccessibilityConfig::SetHighContrastTextState(bool state)
151 {
152 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
153 return pImpl_->SetHighContrastTextState(state);
154 }
155
SetInvertColorState(const bool state)156 Accessibility::RetError AccessibilityConfig::SetInvertColorState(const bool state)
157 {
158 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
159 return pImpl_->SetInvertColorState(state);
160 }
161
SetDaltonizationState(bool state)162 Accessibility::RetError AccessibilityConfig::SetDaltonizationState(bool state)
163 {
164 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
165 return pImpl_->SetDaltonizationState(state);
166 }
167
SetDaltonizationColorFilter(const DALTONIZATION_TYPE type)168 Accessibility::RetError AccessibilityConfig::SetDaltonizationColorFilter(const DALTONIZATION_TYPE type)
169 {
170 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
171 return pImpl_->SetDaltonizationColorFilter(type);
172 }
173
SetContentTimeout(const uint32_t timer)174 Accessibility::RetError AccessibilityConfig::SetContentTimeout(const uint32_t timer)
175 {
176 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
177 return pImpl_->SetContentTimeout(timer);
178 }
179
SetAnimationOffState(const bool state)180 Accessibility::RetError AccessibilityConfig::SetAnimationOffState(const bool state)
181 {
182 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
183 return pImpl_->SetAnimationOffState(state);
184 }
185
SetBrightnessDiscount(const float brightness)186 Accessibility::RetError AccessibilityConfig::SetBrightnessDiscount(const float brightness)
187 {
188 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
189 return pImpl_->SetBrightnessDiscount(brightness);
190 }
191
SetAudioMonoState(const bool state)192 Accessibility::RetError AccessibilityConfig::SetAudioMonoState(const bool state)
193 {
194 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
195 return pImpl_->SetAudioMonoState(state);
196 }
197
SetAudioBalance(const float balance)198 Accessibility::RetError AccessibilityConfig::SetAudioBalance(const float balance)
199 {
200 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
201 return pImpl_->SetAudioBalance(balance);
202 }
203
SetClickResponseTime(const CLICK_RESPONSE_TIME time)204 Accessibility::RetError AccessibilityConfig::SetClickResponseTime(const CLICK_RESPONSE_TIME time)
205 {
206 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
207 return pImpl_->SetClickResponseTime(time);
208 }
209
SetIgnoreRepeatClickState(const bool state)210 Accessibility::RetError AccessibilityConfig::SetIgnoreRepeatClickState(const bool state)
211 {
212 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
213 return pImpl_->SetIgnoreRepeatClickState(state);
214 }
215
SetIgnoreRepeatClickTime(const IGNORE_REPEAT_CLICK_TIME time)216 Accessibility::RetError AccessibilityConfig::SetIgnoreRepeatClickTime(const IGNORE_REPEAT_CLICK_TIME time)
217 {
218 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
219 return pImpl_->SetIgnoreRepeatClickTime(time);
220 }
221
GetScreenMagnificationState(bool & state) const222 Accessibility::RetError AccessibilityConfig::GetScreenMagnificationState(bool &state) const
223 {
224 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
225 return pImpl_->GetScreenMagnificationState(state);
226 }
227
GetShortKeyState(bool & state) const228 Accessibility::RetError AccessibilityConfig::GetShortKeyState(bool &state) const
229 {
230 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
231 return pImpl_->GetShortKeyState(state);
232 }
233
GetMouseKeyState(bool & state) const234 Accessibility::RetError AccessibilityConfig::GetMouseKeyState(bool &state) const
235 {
236 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
237 return pImpl_->GetMouseKeyState(state);
238 }
239
GetCaptionsState(bool & state) const240 Accessibility::RetError AccessibilityConfig::GetCaptionsState(bool &state) const
241 {
242 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
243 return pImpl_->GetCaptionsState(state);
244 }
245
GetCaptionsProperty(CaptionProperty & caption) const246 Accessibility::RetError AccessibilityConfig::GetCaptionsProperty(CaptionProperty &caption) const
247 {
248 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
249 return pImpl_->GetCaptionsProperty(caption);
250 }
251
GetMouseAutoClick(int32_t & time) const252 Accessibility::RetError AccessibilityConfig::GetMouseAutoClick(int32_t &time) const
253 {
254 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
255 return pImpl_->GetMouseAutoClick(time);
256 }
257
GetShortkeyTarget(std::string & name) const258 Accessibility::RetError AccessibilityConfig::GetShortkeyTarget(std::string &name) const
259 {
260 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
261 return pImpl_->GetShortkeyTarget(name);
262 }
263
GetShortkeyMultiTarget(std::vector<std::string> & name) const264 Accessibility::RetError AccessibilityConfig::GetShortkeyMultiTarget(std::vector<std::string> &name) const
265 {
266 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
267 return pImpl_->GetShortkeyMultiTarget(name);
268 }
269
GetInvertColorState(bool & state) const270 Accessibility::RetError AccessibilityConfig::GetInvertColorState(bool &state) const
271 {
272 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
273 return pImpl_->GetInvertColorState(state);
274 }
275
GetHighContrastTextState(bool & state) const276 Accessibility::RetError AccessibilityConfig::GetHighContrastTextState(bool &state) const
277 {
278 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
279 return pImpl_->GetHighContrastTextState(state);
280 }
281
GetDaltonizationState(bool & state) const282 Accessibility::RetError AccessibilityConfig::GetDaltonizationState(bool &state) const
283 {
284 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
285 return pImpl_->GetDaltonizationState(state);
286 }
287
GetDaltonizationColorFilter(DALTONIZATION_TYPE & type) const288 Accessibility::RetError AccessibilityConfig::GetDaltonizationColorFilter(DALTONIZATION_TYPE &type) const
289 {
290 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
291 return pImpl_->GetDaltonizationColorFilter(type);
292 }
293
GetContentTimeout(uint32_t & timer) const294 Accessibility::RetError AccessibilityConfig::GetContentTimeout(uint32_t &timer) const
295 {
296 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
297 return pImpl_->GetContentTimeout(timer);
298 }
299
GetAnimationOffState(bool & state) const300 Accessibility::RetError AccessibilityConfig::GetAnimationOffState(bool &state) const
301 {
302 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
303 return pImpl_->GetAnimationOffState(state);
304 }
305
GetBrightnessDiscount(float & brightness) const306 Accessibility::RetError AccessibilityConfig::GetBrightnessDiscount(float &brightness) const
307 {
308 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
309 return pImpl_->GetBrightnessDiscount(brightness);
310 }
311
GetAudioMonoState(bool & state) const312 Accessibility::RetError AccessibilityConfig::GetAudioMonoState(bool &state) const
313 {
314 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
315 return pImpl_->GetAudioMonoState(state);
316 }
317
GetAudioBalance(float & balance) const318 Accessibility::RetError AccessibilityConfig::GetAudioBalance(float &balance) const
319 {
320 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
321 return pImpl_->GetAudioBalance(balance);
322 }
323
GetClickResponseTime(CLICK_RESPONSE_TIME & time) const324 Accessibility::RetError AccessibilityConfig::GetClickResponseTime(CLICK_RESPONSE_TIME &time) const
325 {
326 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
327 return pImpl_->GetClickResponseTime(time);
328 }
329
GetIgnoreRepeatClickState(bool & state) const330 Accessibility::RetError AccessibilityConfig::GetIgnoreRepeatClickState(bool &state) const
331 {
332 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
333 return pImpl_->GetIgnoreRepeatClickState(state);
334 }
335
GetIgnoreRepeatClickTime(IGNORE_REPEAT_CLICK_TIME & time) const336 Accessibility::RetError AccessibilityConfig::GetIgnoreRepeatClickTime(IGNORE_REPEAT_CLICK_TIME &time) const
337 {
338 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
339 return pImpl_->GetIgnoreRepeatClickTime(time);
340 }
341
SetEnhanceConfig(uint8_t * cfg,uint32_t cfgLen) const342 Accessibility::RetError AccessibilityConfig::SetEnhanceConfig(uint8_t *cfg, uint32_t cfgLen) const
343 {
344 HILOG_INFO();
345 if (cfg == nullptr || cfgLen <= 0) {
346 HILOG_ERROR("SecCompEnhance cfg info is empty");
347 return Accessibility::RET_ERR_INVALID_PARAM;
348 }
349 CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
350 return pImpl_->SetEnhanceConfig(cfg, cfgLen);
351 }
352 } // Accessibility
353 } // OHOS