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 <gtest/gtest.h>
17 #include "ability_info.h"
18 #include "accessibility_display_manager.h"
19 #include "accessibility_event_info.h"
20 #include "accessibility_ut_helper.h"
21 #include "accessibility_window_manager.h"
22 #include "accessible_ability_manager_service.h"
23 #include "hilog_wrapper.h"
24 #include "iservice_registry.h"
25 #include "system_ability_definition.h"
26 #include "utils.h"
27
28 namespace OHOS {
29 namespace Accessibility {
30 namespace {
31 constexpr int32_t ACCOUNT_ID = 100;
32 } // namespace
33
34 const bool REGISTER_RESULT =
35 SystemAbility::MakeAndRegisterAbility(&Singleton<AccessibleAbilityManagerService>::GetInstance());
36
AccessibleAbilityManagerService()37 AccessibleAbilityManagerService::AccessibleAbilityManagerService()
38 : SystemAbility(ACCESSIBILITY_MANAGER_SERVICE_ID, true)
39 {
40 }
41
~AccessibleAbilityManagerService()42 AccessibleAbilityManagerService::~AccessibleAbilityManagerService()
43 {
44 }
45
OnStart()46 void AccessibleAbilityManagerService::OnStart()
47 {
48 GTEST_LOG_(INFO) << "###AccessibleAbilityManagerService::OnStart";
49 runner_ = AppExecFwk::EventRunner::Create("AccessibleAbilityManagerService");
50 handler_ = std::make_shared<AAMSEventHandler>(runner_);
51 Singleton<AccessibilityWindowManager>::GetInstance().RegisterWindowListener(handler_);
52 Singleton<AccessibilityCommonEvent>::GetInstance().SubscriberEvent(handler_);
53 }
54
OnStop()55 void AccessibleAbilityManagerService::OnStop()
56 {
57 Singleton<AccessibilityCommonEvent>::GetInstance().UnSubscriberEvent();
58 Singleton<AccessibilityWindowManager>::GetInstance().DeregisterWindowListener();
59 runner_.reset();
60 handler_.reset();
61 }
62
OnAddSystemAbility(int32_t systemAbilityId,const std::string & deviceId)63 void AccessibleAbilityManagerService::OnAddSystemAbility(int32_t systemAbilityId, const std::string& deviceId)
64 {
65 (void)systemAbilityId;
66 (void)deviceId;
67 }
68
OnRemoveSystemAbility(int32_t systemAbilityId,const std::string & deviceId)69 void AccessibleAbilityManagerService::OnRemoveSystemAbility(int32_t systemAbilityId, const std::string& deviceId)
70 {
71 (void)systemAbilityId;
72 (void)deviceId;
73 }
74
Dump(int fd,const std::vector<std::u16string> & args)75 int AccessibleAbilityManagerService::Dump(int fd, const std::vector<std::u16string>& args)
76 {
77 (void)fd;
78 (void)args;
79 return 0;
80 }
81
SendEvent(const AccessibilityEventInfo & uiEvent)82 RetError AccessibleAbilityManagerService::SendEvent(const AccessibilityEventInfo& uiEvent)
83 {
84 HILOG_INFO("AccessibleAbilityManagerService::SendEvent successfully");
85 EventType uTeventType = uiEvent.GetEventType();
86 AccessibilityAbilityHelper::GetInstance().SetGestureId(uiEvent.GetGestureType());
87 AccessibilityAbilityHelper::GetInstance().SetEventTypeVector(uTeventType);
88 AccessibilityAbilityHelper::GetInstance().SetEventWindowId(uiEvent.GetWindowId());
89 AccessibilityAbilityHelper::GetInstance().SetEventWindowChangeType(uiEvent.GetWindowChangeTypes());
90 GTEST_LOG_(INFO) << "###AccessibleAbilityManagerService::SendEvent GetGestureType="
91 << (int32_t)uiEvent.GetGestureType();
92 GTEST_LOG_(INFO) << "###AccessibleAbilityManagerService::SendEvent uTeventType=0x" << std::hex
93 << (int32_t)uTeventType;
94
95 handler_->PostTask(std::bind([=]() -> void {
96 HILOG_DEBUG("start");
97 AccessibilityAbilityHelper::GetInstance().AddSendEventTimes();
98 }), "TASK_SEND_EVENT");
99 return RET_OK;
100 }
101
RegisterStateObserver(const sptr<IAccessibleAbilityManagerStateObserver> & callback)102 uint32_t AccessibleAbilityManagerService::RegisterStateObserver(
103 const sptr<IAccessibleAbilityManagerStateObserver>& callback)
104 {
105 (void)callback;
106 return 0;
107 }
108
GetAbilityList(const uint32_t abilityTypes,const int32_t stateType,std::vector<AccessibilityAbilityInfo> & infos)109 RetError AccessibleAbilityManagerService::GetAbilityList(const uint32_t abilityTypes, const int32_t stateType,
110 std::vector<AccessibilityAbilityInfo> &infos)
111 {
112 (void)abilityTypes;
113 (void)stateType;
114 (void)infos;
115 return RET_OK;
116 }
117
RegisterElementOperator(const int32_t windowId,const sptr<IAccessibilityElementOperator> & operation)118 RetError AccessibleAbilityManagerService::RegisterElementOperator(
119 const int32_t windowId, const sptr<IAccessibilityElementOperator>& operation)
120 {
121 (void)windowId;
122 (void)operation;
123 return RET_OK;
124 }
125
DeregisterElementOperator(int32_t windowId)126 RetError AccessibleAbilityManagerService::DeregisterElementOperator(int32_t windowId)
127 {
128 (void)windowId;
129 return RET_OK;
130 }
131
GetCurrentAccountData()132 sptr<AccessibilityAccountData> AccessibleAbilityManagerService::GetCurrentAccountData()
133 {
134 bool needNullFlag = AccessibilityAbilityHelper::GetInstance().GetNeedAccountDataNullFlag();
135 if (needNullFlag) {
136 return nullptr;
137 }
138 auto iter = a11yAccountsData_.find(ACCOUNT_ID);
139 if (iter != a11yAccountsData_.end()) {
140 return iter->second;
141 }
142 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(ACCOUNT_ID);
143 accountData->Init();
144 a11yAccountsData_[ACCOUNT_ID] = accountData;
145 return accountData;
146 }
147
GetAccountData(int32_t accountId) const148 sptr<AccessibilityAccountData> AccessibleAbilityManagerService::GetAccountData(int32_t accountId) const
149 {
150 auto iter = a11yAccountsData_.find(accountId);
151 if (iter != a11yAccountsData_.end()) {
152 return iter->second;
153 }
154 return nullptr;
155 }
156
GetCaptionProperty(AccessibilityConfig::CaptionProperty & caption)157 RetError AccessibleAbilityManagerService::GetCaptionProperty(AccessibilityConfig::CaptionProperty &caption)
158 {
159 (void)caption;
160 return RET_OK;
161 }
162
SetCaptionProperty(const AccessibilityConfig::CaptionProperty & caption)163 RetError AccessibleAbilityManagerService::SetCaptionProperty(const AccessibilityConfig::CaptionProperty& caption)
164 {
165 (void)caption;
166 return RET_OK;
167 }
168
SetCaptionState(const bool state)169 RetError AccessibleAbilityManagerService::SetCaptionState(const bool state)
170 {
171 (void)state;
172 return RET_OK;
173 }
174
GetEnabledState()175 bool AccessibleAbilityManagerService::GetEnabledState()
176 {
177 return true;
178 }
179
GetCaptionState(bool & state)180 RetError AccessibleAbilityManagerService::GetCaptionState(bool &state)
181 {
182 state = true;
183 return RET_OK;
184 }
185
GetTouchGuideState()186 bool AccessibleAbilityManagerService::GetTouchGuideState()
187 {
188 return true;
189 }
190
GetGestureState()191 bool AccessibleAbilityManagerService::GetGestureState()
192 {
193 return true;
194 }
195
GetKeyEventObserverState()196 bool AccessibleAbilityManagerService::GetKeyEventObserverState()
197 {
198 return true;
199 }
200
EnableAbility(const std::string & name,const uint32_t capabilities)201 RetError AccessibleAbilityManagerService::EnableAbility(const std::string &name, const uint32_t capabilities)
202 {
203 (void)name;
204 (void)capabilities;
205 return RET_OK;
206 }
207
GetEnabledAbilities(std::vector<std::string> & enabledAbilities)208 RetError AccessibleAbilityManagerService::GetEnabledAbilities(std::vector<std::string> &enabledAbilities)
209 {
210 (void)enabledAbilities;
211 return RET_OK;
212 }
213
RegisterCaptionObserver(const sptr<IAccessibleAbilityManagerCaptionObserver> & callback)214 uint32_t AccessibleAbilityManagerService::RegisterCaptionObserver(
215 const sptr<IAccessibleAbilityManagerCaptionObserver>& callback)
216 {
217 (void)callback;
218 return NO_ERROR;
219 }
220
DisableAbility(const std::string & name)221 RetError AccessibleAbilityManagerService::DisableAbility(const std::string &name)
222 {
223 (void)name;
224 return RET_OK;
225 }
226
EnableUITestAbility(const sptr<IRemoteObject> & obj)227 RetError AccessibleAbilityManagerService::EnableUITestAbility(const sptr<IRemoteObject>& obj)
228 {
229 (void)obj;
230 return RET_OK;
231 }
232
DisableUITestAbility()233 RetError AccessibleAbilityManagerService::DisableUITestAbility()
234 {
235 return RET_OK;
236 }
237
GetActiveWindow()238 int32_t AccessibleAbilityManagerService::GetActiveWindow()
239 {
240 return 0;
241 }
242
SetScreenMagnificationState(const bool state)243 RetError AccessibleAbilityManagerService::SetScreenMagnificationState(const bool state)
244 {
245 (void)state;
246 return RET_OK;
247 }
248
SetShortKeyState(const bool state)249 RetError AccessibleAbilityManagerService::SetShortKeyState(const bool state)
250 {
251 (void)state;
252 return RET_OK;
253 }
254
SetMouseKeyState(const bool state)255 RetError AccessibleAbilityManagerService::SetMouseKeyState(const bool state)
256 {
257 (void)state;
258 return RET_OK;
259 }
260
SetMouseAutoClick(const int32_t time)261 RetError AccessibleAbilityManagerService::SetMouseAutoClick(const int32_t time)
262 {
263 (void)time;
264 return RET_OK;
265 }
266
SetShortkeyTarget(const std::string & name)267 RetError AccessibleAbilityManagerService::SetShortkeyTarget(const std::string &name)
268 {
269 (void)name;
270 return RET_OK;
271 }
272
SetHighContrastTextState(const bool state)273 RetError AccessibleAbilityManagerService::SetHighContrastTextState(const bool state)
274 {
275 (void)state;
276 return RET_OK;
277 }
278
SetInvertColorState(const bool state)279 RetError AccessibleAbilityManagerService::SetInvertColorState(const bool state)
280 {
281 (void)state;
282 return RET_OK;
283 }
284
SetAnimationOffState(const bool state)285 RetError AccessibleAbilityManagerService::SetAnimationOffState(const bool state)
286 {
287 (void)state;
288 return RET_OK;
289 }
290
SetAudioMonoState(const bool state)291 RetError AccessibleAbilityManagerService::SetAudioMonoState(const bool state)
292 {
293 (void)state;
294 return RET_OK;
295 }
296
SetDaltonizationColorFilter(const uint32_t filter)297 RetError AccessibleAbilityManagerService::SetDaltonizationColorFilter(const uint32_t filter)
298 {
299 (void)filter;
300 return RET_OK;
301 }
302
SetContentTimeout(const uint32_t time)303 RetError AccessibleAbilityManagerService::SetContentTimeout(const uint32_t time)
304 {
305 (void)time;
306 return RET_OK;
307 }
308
SetBrightnessDiscount(const float discount)309 RetError AccessibleAbilityManagerService::SetBrightnessDiscount(const float discount)
310 {
311 (void)discount;
312 return RET_OK;
313 }
314
SetAudioBalance(const float balance)315 RetError AccessibleAbilityManagerService::SetAudioBalance(const float balance)
316 {
317 (void)balance;
318 return RET_OK;
319 }
320
GetScreenMagnificationState(bool & state)321 RetError AccessibleAbilityManagerService::GetScreenMagnificationState(bool &state)
322 {
323 state = true;
324 return RET_OK;
325 }
326
GetShortKeyState(bool & state)327 RetError AccessibleAbilityManagerService::GetShortKeyState(bool &state)
328 {
329 state = true;
330 return RET_OK;
331 }
332
GetMouseKeyState(bool & state)333 RetError AccessibleAbilityManagerService::GetMouseKeyState(bool &state)
334 {
335 state = true;
336 return RET_OK;
337 }
338
GetMouseAutoClick(int32_t & time)339 RetError AccessibleAbilityManagerService::GetMouseAutoClick(int32_t &time)
340 {
341 time = 0;
342 return RET_OK;
343 }
344
GetShortkeyTarget(std::string & name)345 RetError AccessibleAbilityManagerService::GetShortkeyTarget(std::string &name)
346 {
347 name = "";
348 return RET_OK;
349 }
350
GetHighContrastTextState(bool & state)351 RetError AccessibleAbilityManagerService::GetHighContrastTextState(bool &state)
352 {
353 state = true;
354 return RET_OK;
355 }
356
GetInvertColorState(bool & state)357 RetError AccessibleAbilityManagerService::GetInvertColorState(bool &state)
358 {
359 state = true;
360 return RET_OK;
361 }
362
GetAnimationOffState(bool & state)363 RetError AccessibleAbilityManagerService::GetAnimationOffState(bool &state)
364 {
365 state = true;
366 return RET_OK;
367 }
368
GetAudioMonoState(bool & state)369 RetError AccessibleAbilityManagerService::GetAudioMonoState(bool &state)
370 {
371 state = true;
372 return RET_OK;
373 }
374
GetDaltonizationColorFilter(uint32_t & type)375 RetError AccessibleAbilityManagerService::GetDaltonizationColorFilter(uint32_t &type)
376 {
377 type = 0;
378 return RET_OK;
379 }
380
GetContentTimeout(uint32_t & timer)381 RetError AccessibleAbilityManagerService::GetContentTimeout(uint32_t &timer)
382 {
383 timer = 0;
384 return RET_OK;
385 }
386
GetBrightnessDiscount(float & brightness)387 RetError AccessibleAbilityManagerService::GetBrightnessDiscount(float &brightness)
388 {
389 brightness = 0.0f;
390 return RET_OK;
391 }
392
GetAudioBalance(float & balance)393 RetError AccessibleAbilityManagerService::GetAudioBalance(float &balance)
394 {
395 balance = 0.0f;
396 return RET_OK;
397 }
398
GetAllConfigs(AccessibilityConfigData & configData)399 void AccessibleAbilityManagerService::GetAllConfigs(AccessibilityConfigData &configData)
400 {
401 (void)configData;
402 }
403
RegisterEnableAbilityListsObserver(const sptr<IAccessibilityEnableAbilityListsObserver> & observer)404 void AccessibleAbilityManagerService::RegisterEnableAbilityListsObserver(
405 const sptr<IAccessibilityEnableAbilityListsObserver> &observer)
406 {
407 (void)observer;
408 }
409
RegisterConfigObserver(const sptr<IAccessibleAbilityManagerConfigObserver> & callback)410 uint32_t AccessibleAbilityManagerService::RegisterConfigObserver(
411 const sptr<IAccessibleAbilityManagerConfigObserver> &callback)
412 {
413 (void)callback;
414 return NO_ERROR;
415 }
416
UpdateAccessibilityManagerService()417 void AccessibleAbilityManagerService::UpdateAccessibilityManagerService()
418 {
419 }
420
GetBundleMgrProxy()421 sptr<AppExecFwk::IBundleMgr> AccessibleAbilityManagerService::GetBundleMgrProxy()
422 {
423 return nullptr;
424 }
425
SetKeyEventFilter(const sptr<KeyEventFilter> & keyEventFilter)426 void AccessibleAbilityManagerService::SetKeyEventFilter(const sptr<KeyEventFilter> &keyEventFilter)
427 {
428 HILOG_DEBUG();
429 keyEventFilter_ = keyEventFilter;
430 }
431
EnableShortKeyTargetAbility()432 bool AccessibleAbilityManagerService::EnableShortKeyTargetAbility()
433 {
434 AccessibilityAbilityHelper::GetInstance().SetShortKeyTargetAbilityState(true);
435 return true;
436 }
437
AddedUser(int32_t accountId)438 void AccessibleAbilityManagerService::AddedUser(int32_t accountId)
439 {
440 HILOG_DEBUG();
441 AccessibilityAbilityHelper::GetInstance().AddUserId(accountId);
442 }
RemovedUser(int32_t accountId)443 void AccessibleAbilityManagerService::RemovedUser(int32_t accountId)
444 {
445 HILOG_DEBUG();
446 AccessibilityAbilityHelper::GetInstance().RemoveUserId(accountId);
447 }
SwitchedUser(int32_t accountId)448 void AccessibleAbilityManagerService::SwitchedUser(int32_t accountId)
449 {
450 HILOG_DEBUG();
451 AccessibilityAbilityHelper::GetInstance().SetCurrentUserId(accountId);
452 }
PackageChanged(const std::string & bundleName)453 void AccessibleAbilityManagerService::PackageChanged(const std::string &bundleName)
454 {
455 HILOG_DEBUG();
456 AccessibilityAbilityHelper::GetInstance().ChangePackage(true);
457 }
PackageRemoved(const std::string & bundleName)458 void AccessibleAbilityManagerService::PackageRemoved(const std::string &bundleName)
459 {
460 HILOG_DEBUG();
461 AccessibilityAbilityHelper::GetInstance().RemovePackage(bundleName);
462 }
PackageAdd(const std::string & bundleName)463 void AccessibleAbilityManagerService::PackageAdd(const std::string &bundleName)
464 {
465 HILOG_DEBUG();
466 AccessibilityAbilityHelper::GetInstance().AddPackage(bundleName);
467 }
468 } // namespace Accessibility
469 } // namespace OHOS
470