• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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