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 
SubscribeConfigObserver(const CONFIG_ID id,const std::shared_ptr<AccessibilityConfigObserver> & observer,const bool retFlag)47 Accessibility::RetError AccessibilityConfig::SubscribeConfigObserver(const CONFIG_ID id,
48     const std::shared_ptr<AccessibilityConfigObserver> &observer, const bool retFlag)
49 {
50     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
51     return pImpl_->SubscribeConfigObserver(id, observer, retFlag);
52 }
53 
UnsubscribeConfigObserver(const CONFIG_ID id,const std::shared_ptr<AccessibilityConfigObserver> & observer)54 Accessibility::RetError AccessibilityConfig::UnsubscribeConfigObserver(const CONFIG_ID id,
55     const std::shared_ptr<AccessibilityConfigObserver> &observer)
56 {
57     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
58     return pImpl_->UnsubscribeConfigObserver(id, observer);
59 }
60 
SubscribeEnableAbilityListsObserver(const std::shared_ptr<AccessibilityEnableAbilityListsObserver> & observer)61 Accessibility::RetError AccessibilityConfig::SubscribeEnableAbilityListsObserver(
62     const std::shared_ptr<AccessibilityEnableAbilityListsObserver> &observer)
63 {
64     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
65     return pImpl_->SubscribeEnableAbilityListsObserver(observer);
66 }
67 
UnsubscribeEnableAbilityListsObserver(const std::shared_ptr<AccessibilityEnableAbilityListsObserver> & observer)68 Accessibility::RetError AccessibilityConfig::UnsubscribeEnableAbilityListsObserver(
69     const std::shared_ptr<AccessibilityEnableAbilityListsObserver> &observer)
70 {
71     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
72     return pImpl_->UnsubscribeEnableAbilityListsObserver(observer);
73 }
74 
EnableAbility(const std::string & name,const uint32_t capabilities)75 Accessibility::RetError AccessibilityConfig::EnableAbility(const std::string &name, const uint32_t capabilities)
76 {
77     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
78     return pImpl_->EnableAbility(name, capabilities);
79 }
80 
DisableAbility(const std::string & name)81 Accessibility::RetError AccessibilityConfig::DisableAbility(const std::string &name)
82 {
83     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
84     return pImpl_->DisableAbility(name);
85 }
86 
SetScreenMagnificationState(const bool state)87 Accessibility::RetError AccessibilityConfig::SetScreenMagnificationState(const bool state)
88 {
89     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
90     return pImpl_->SetScreenMagnificationState(state);
91 }
92 
SetShortKeyState(const bool state)93 Accessibility::RetError AccessibilityConfig::SetShortKeyState(const bool state)
94 {
95     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
96     return pImpl_->SetShortKeyState(state);
97 }
98 
SetMouseKeyState(const bool state)99 Accessibility::RetError AccessibilityConfig::SetMouseKeyState(const bool state)
100 {
101     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
102     return pImpl_->SetMouseKeyState(state);
103 }
104 
SetCaptionsState(const bool state)105 Accessibility::RetError AccessibilityConfig::SetCaptionsState(const bool state)
106 {
107     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
108     return pImpl_->SetCaptionsState(state);
109 }
110 
SetCaptionsProperty(const CaptionProperty & caption)111 Accessibility::RetError AccessibilityConfig::SetCaptionsProperty(const CaptionProperty &caption)
112 {
113     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
114     return pImpl_->SetCaptionsProperty(caption);
115 }
116 
SetMouseAutoClick(const int32_t time)117 Accessibility::RetError AccessibilityConfig::SetMouseAutoClick(const int32_t time)
118 {
119     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
120     return pImpl_->SetMouseAutoClick(time);
121 }
122 
SetShortkeyTarget(const std::string & name)123 Accessibility::RetError AccessibilityConfig::SetShortkeyTarget(const std::string &name)
124 {
125     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
126     return pImpl_->SetShortkeyTarget(name);
127 }
128 
SetShortkeyMultiTarget(const std::vector<std::string> & name)129 Accessibility::RetError AccessibilityConfig::SetShortkeyMultiTarget(const std::vector<std::string> &name)
130 {
131     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
132     return pImpl_->SetShortkeyMultiTarget(name);
133 }
134 
SetHighContrastTextState(bool state)135 Accessibility::RetError AccessibilityConfig::SetHighContrastTextState(bool state)
136 {
137     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
138     return pImpl_->SetHighContrastTextState(state);
139 }
140 
SetInvertColorState(const bool state)141 Accessibility::RetError AccessibilityConfig::SetInvertColorState(const bool state)
142 {
143     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
144     return pImpl_->SetInvertColorState(state);
145 }
146 
SetDaltonizationState(bool state)147 Accessibility::RetError AccessibilityConfig::SetDaltonizationState(bool state)
148 {
149     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
150     return pImpl_->SetDaltonizationState(state);
151 }
152 
SetDaltonizationColorFilter(const DALTONIZATION_TYPE type)153 Accessibility::RetError AccessibilityConfig::SetDaltonizationColorFilter(const DALTONIZATION_TYPE type)
154 {
155     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
156     return pImpl_->SetDaltonizationColorFilter(type);
157 }
158 
SetContentTimeout(const uint32_t timer)159 Accessibility::RetError AccessibilityConfig::SetContentTimeout(const uint32_t timer)
160 {
161     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
162     return pImpl_->SetContentTimeout(timer);
163 }
164 
SetAnimationOffState(const bool state)165 Accessibility::RetError AccessibilityConfig::SetAnimationOffState(const bool state)
166 {
167     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
168     return pImpl_->SetAnimationOffState(state);
169 }
170 
SetBrightnessDiscount(const float brightness)171 Accessibility::RetError AccessibilityConfig::SetBrightnessDiscount(const float brightness)
172 {
173     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
174     return pImpl_->SetBrightnessDiscount(brightness);
175 }
176 
SetAudioMonoState(const bool state)177 Accessibility::RetError AccessibilityConfig::SetAudioMonoState(const bool state)
178 {
179     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
180     return pImpl_->SetAudioMonoState(state);
181 }
182 
SetAudioBalance(const float balance)183 Accessibility::RetError AccessibilityConfig::SetAudioBalance(const float balance)
184 {
185     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
186     return pImpl_->SetAudioBalance(balance);
187 }
188 
SetClickResponseTime(const CLICK_RESPONSE_TIME time)189 Accessibility::RetError AccessibilityConfig::SetClickResponseTime(const CLICK_RESPONSE_TIME time)
190 {
191     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
192     return pImpl_->SetClickResponseTime(time);
193 }
194 
SetIgnoreRepeatClickState(const bool state)195 Accessibility::RetError AccessibilityConfig::SetIgnoreRepeatClickState(const bool state)
196 {
197     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
198     return pImpl_->SetIgnoreRepeatClickState(state);
199 }
200 
SetIgnoreRepeatClickTime(const IGNORE_REPEAT_CLICK_TIME time)201 Accessibility::RetError AccessibilityConfig::SetIgnoreRepeatClickTime(const IGNORE_REPEAT_CLICK_TIME time)
202 {
203     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
204     return pImpl_->SetIgnoreRepeatClickTime(time);
205 }
206 
GetScreenMagnificationState(bool & state) const207 Accessibility::RetError AccessibilityConfig::GetScreenMagnificationState(bool &state) const
208 {
209     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
210     return pImpl_->GetScreenMagnificationState(state);
211 }
212 
GetShortKeyState(bool & state) const213 Accessibility::RetError AccessibilityConfig::GetShortKeyState(bool &state) const
214 {
215     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
216     return pImpl_->GetShortKeyState(state);
217 }
218 
GetMouseKeyState(bool & state) const219 Accessibility::RetError AccessibilityConfig::GetMouseKeyState(bool &state) const
220 {
221     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
222     return pImpl_->GetMouseKeyState(state);
223 }
224 
GetCaptionsState(bool & state) const225 Accessibility::RetError AccessibilityConfig::GetCaptionsState(bool &state) const
226 {
227     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
228     return pImpl_->GetCaptionsState(state);
229 }
230 
GetCaptionsProperty(CaptionProperty & caption) const231 Accessibility::RetError AccessibilityConfig::GetCaptionsProperty(CaptionProperty &caption) const
232 {
233     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
234     return pImpl_->GetCaptionsProperty(caption);
235 }
236 
GetMouseAutoClick(int32_t & time) const237 Accessibility::RetError AccessibilityConfig::GetMouseAutoClick(int32_t &time) const
238 {
239     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
240     return pImpl_->GetMouseAutoClick(time);
241 }
242 
GetShortkeyTarget(std::string & name) const243 Accessibility::RetError AccessibilityConfig::GetShortkeyTarget(std::string &name) const
244 {
245     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
246     return pImpl_->GetShortkeyTarget(name);
247 }
248 
GetShortkeyMultiTarget(std::vector<std::string> & name) const249 Accessibility::RetError AccessibilityConfig::GetShortkeyMultiTarget(std::vector<std::string> &name) const
250 {
251     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
252     return pImpl_->GetShortkeyMultiTarget(name);
253 }
254 
GetInvertColorState(bool & state) const255 Accessibility::RetError AccessibilityConfig::GetInvertColorState(bool &state) const
256 {
257     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
258     return pImpl_->GetInvertColorState(state);
259 }
260 
GetHighContrastTextState(bool & state) const261 Accessibility::RetError AccessibilityConfig::GetHighContrastTextState(bool &state) const
262 {
263     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
264     return pImpl_->GetHighContrastTextState(state);
265 }
266 
GetDaltonizationState(bool & state) const267 Accessibility::RetError AccessibilityConfig::GetDaltonizationState(bool &state) const
268 {
269     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
270     return pImpl_->GetDaltonizationState(state);
271 }
272 
GetDaltonizationColorFilter(DALTONIZATION_TYPE & type) const273 Accessibility::RetError AccessibilityConfig::GetDaltonizationColorFilter(DALTONIZATION_TYPE &type) const
274 {
275     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
276     return pImpl_->GetDaltonizationColorFilter(type);
277 }
278 
GetContentTimeout(uint32_t & timer) const279 Accessibility::RetError AccessibilityConfig::GetContentTimeout(uint32_t &timer) const
280 {
281     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
282     return pImpl_->GetContentTimeout(timer);
283 }
284 
GetAnimationOffState(bool & state) const285 Accessibility::RetError AccessibilityConfig::GetAnimationOffState(bool &state) const
286 {
287     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
288     return pImpl_->GetAnimationOffState(state);
289 }
290 
GetBrightnessDiscount(float & brightness) const291 Accessibility::RetError AccessibilityConfig::GetBrightnessDiscount(float &brightness) const
292 {
293     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
294     return pImpl_->GetBrightnessDiscount(brightness);
295 }
296 
GetAudioMonoState(bool & state) const297 Accessibility::RetError AccessibilityConfig::GetAudioMonoState(bool &state) const
298 {
299     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
300     return pImpl_->GetAudioMonoState(state);
301 }
302 
GetAudioBalance(float & balance) const303 Accessibility::RetError AccessibilityConfig::GetAudioBalance(float &balance) const
304 {
305     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
306     return pImpl_->GetAudioBalance(balance);
307 }
308 
GetClickResponseTime(CLICK_RESPONSE_TIME & time) const309 Accessibility::RetError AccessibilityConfig::GetClickResponseTime(CLICK_RESPONSE_TIME &time) const
310 {
311     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
312     return pImpl_->GetClickResponseTime(time);
313 }
314 
GetIgnoreRepeatClickState(bool & state) const315 Accessibility::RetError AccessibilityConfig::GetIgnoreRepeatClickState(bool &state) const
316 {
317     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
318     return pImpl_->GetIgnoreRepeatClickState(state);
319 }
320 
GetIgnoreRepeatClickTime(IGNORE_REPEAT_CLICK_TIME & time) const321 Accessibility::RetError AccessibilityConfig::GetIgnoreRepeatClickTime(IGNORE_REPEAT_CLICK_TIME &time) const
322 {
323     CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
324     return pImpl_->GetIgnoreRepeatClickTime(time);
325 }
326 } // Accessibility
327 } // OHOS