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
20namespace OHOS {
21namespace AccessibilityConfig {
22#define CHECK_IMPL_PTR(ret_expr)            \
23    if (!pImpl_) {                          \
24        HILOG_ERROR("pImpl_ is nullptr");   \
25        return ret_expr;                    \
26    }
27
28ACCESSIBILITY_DEFINE_SINGLETON(AccessibilityConfig)
29
30AccessibilityConfig::AccessibilityConfig() : pImpl_(std::make_unique<Impl>())
31{
32    if (!pImpl_) {
33        HILOG_ERROR("Create AccessibilityConfigImpl Failed");
34    }
35}
36
37AccessibilityConfig::~AccessibilityConfig()
38{
39}
40
41bool AccessibilityConfig::InitializeContext()
42{
43    CHECK_IMPL_PTR(false)
44    return pImpl_->InitializeContext();
45}
46
47Accessibility::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
54Accessibility::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
61Accessibility::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
68Accessibility::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
75Accessibility::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
81Accessibility::RetError AccessibilityConfig::DisableAbility(const std::string &name)
82{
83    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
84    return pImpl_->DisableAbility(name);
85}
86
87Accessibility::RetError AccessibilityConfig::SetScreenMagnificationState(const bool state)
88{
89    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
90    return pImpl_->SetScreenMagnificationState(state);
91}
92
93Accessibility::RetError AccessibilityConfig::SetShortKeyState(const bool state)
94{
95    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
96    return pImpl_->SetShortKeyState(state);
97}
98
99Accessibility::RetError AccessibilityConfig::SetMouseKeyState(const bool state)
100{
101    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
102    return pImpl_->SetMouseKeyState(state);
103}
104
105Accessibility::RetError AccessibilityConfig::SetCaptionsState(const bool state)
106{
107    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
108    return pImpl_->SetCaptionsState(state);
109}
110
111Accessibility::RetError AccessibilityConfig::SetCaptionsProperty(const CaptionProperty &caption)
112{
113    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
114    return pImpl_->SetCaptionsProperty(caption);
115}
116
117Accessibility::RetError AccessibilityConfig::SetMouseAutoClick(const int32_t time)
118{
119    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
120    return pImpl_->SetMouseAutoClick(time);
121}
122
123Accessibility::RetError AccessibilityConfig::SetShortkeyTarget(const std::string &name)
124{
125    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
126    return pImpl_->SetShortkeyTarget(name);
127}
128
129Accessibility::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
135Accessibility::RetError AccessibilityConfig::SetHighContrastTextState(bool state)
136{
137    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
138    return pImpl_->SetHighContrastTextState(state);
139}
140
141Accessibility::RetError AccessibilityConfig::SetInvertColorState(const bool state)
142{
143    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
144    return pImpl_->SetInvertColorState(state);
145}
146
147Accessibility::RetError AccessibilityConfig::SetDaltonizationState(bool state)
148{
149    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
150    return pImpl_->SetDaltonizationState(state);
151}
152
153Accessibility::RetError AccessibilityConfig::SetDaltonizationColorFilter(const DALTONIZATION_TYPE type)
154{
155    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
156    return pImpl_->SetDaltonizationColorFilter(type);
157}
158
159Accessibility::RetError AccessibilityConfig::SetContentTimeout(const uint32_t timer)
160{
161    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
162    return pImpl_->SetContentTimeout(timer);
163}
164
165Accessibility::RetError AccessibilityConfig::SetAnimationOffState(const bool state)
166{
167    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
168    return pImpl_->SetAnimationOffState(state);
169}
170
171Accessibility::RetError AccessibilityConfig::SetBrightnessDiscount(const float brightness)
172{
173    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
174    return pImpl_->SetBrightnessDiscount(brightness);
175}
176
177Accessibility::RetError AccessibilityConfig::SetAudioMonoState(const bool state)
178{
179    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
180    return pImpl_->SetAudioMonoState(state);
181}
182
183Accessibility::RetError AccessibilityConfig::SetAudioBalance(const float balance)
184{
185    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
186    return pImpl_->SetAudioBalance(balance);
187}
188
189Accessibility::RetError AccessibilityConfig::SetClickResponseTime(const CLICK_RESPONSE_TIME time)
190{
191    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
192    return pImpl_->SetClickResponseTime(time);
193}
194
195Accessibility::RetError AccessibilityConfig::SetIgnoreRepeatClickState(const bool state)
196{
197    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
198    return pImpl_->SetIgnoreRepeatClickState(state);
199}
200
201Accessibility::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
207Accessibility::RetError AccessibilityConfig::GetScreenMagnificationState(bool &state) const
208{
209    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
210    return pImpl_->GetScreenMagnificationState(state);
211}
212
213Accessibility::RetError AccessibilityConfig::GetShortKeyState(bool &state) const
214{
215    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
216    return pImpl_->GetShortKeyState(state);
217}
218
219Accessibility::RetError AccessibilityConfig::GetMouseKeyState(bool &state) const
220{
221    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
222    return pImpl_->GetMouseKeyState(state);
223}
224
225Accessibility::RetError AccessibilityConfig::GetCaptionsState(bool &state) const
226{
227    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
228    return pImpl_->GetCaptionsState(state);
229}
230
231Accessibility::RetError AccessibilityConfig::GetCaptionsProperty(CaptionProperty &caption) const
232{
233    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
234    return pImpl_->GetCaptionsProperty(caption);
235}
236
237Accessibility::RetError AccessibilityConfig::GetMouseAutoClick(int32_t &time) const
238{
239    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
240    return pImpl_->GetMouseAutoClick(time);
241}
242
243Accessibility::RetError AccessibilityConfig::GetShortkeyTarget(std::string &name) const
244{
245    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
246    return pImpl_->GetShortkeyTarget(name);
247}
248
249Accessibility::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
255Accessibility::RetError AccessibilityConfig::GetInvertColorState(bool &state) const
256{
257    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
258    return pImpl_->GetInvertColorState(state);
259}
260
261Accessibility::RetError AccessibilityConfig::GetHighContrastTextState(bool &state) const
262{
263    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
264    return pImpl_->GetHighContrastTextState(state);
265}
266
267Accessibility::RetError AccessibilityConfig::GetDaltonizationState(bool &state) const
268{
269    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
270    return pImpl_->GetDaltonizationState(state);
271}
272
273Accessibility::RetError AccessibilityConfig::GetDaltonizationColorFilter(DALTONIZATION_TYPE &type) const
274{
275    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
276    return pImpl_->GetDaltonizationColorFilter(type);
277}
278
279Accessibility::RetError AccessibilityConfig::GetContentTimeout(uint32_t &timer) const
280{
281    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
282    return pImpl_->GetContentTimeout(timer);
283}
284
285Accessibility::RetError AccessibilityConfig::GetAnimationOffState(bool &state) const
286{
287    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
288    return pImpl_->GetAnimationOffState(state);
289}
290
291Accessibility::RetError AccessibilityConfig::GetBrightnessDiscount(float &brightness) const
292{
293    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
294    return pImpl_->GetBrightnessDiscount(brightness);
295}
296
297Accessibility::RetError AccessibilityConfig::GetAudioMonoState(bool &state) const
298{
299    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
300    return pImpl_->GetAudioMonoState(state);
301}
302
303Accessibility::RetError AccessibilityConfig::GetAudioBalance(float &balance) const
304{
305    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
306    return pImpl_->GetAudioBalance(balance);
307}
308
309Accessibility::RetError AccessibilityConfig::GetClickResponseTime(CLICK_RESPONSE_TIME &time) const
310{
311    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
312    return pImpl_->GetClickResponseTime(time);
313}
314
315Accessibility::RetError AccessibilityConfig::GetIgnoreRepeatClickState(bool &state) const
316{
317    CHECK_IMPL_PTR(Accessibility::RET_ERR_NULLPTR)
318    return pImpl_->GetIgnoreRepeatClickState(state);
319}
320
321Accessibility::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