• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021 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_account_data.h"
17 #include "accessible_ability_manager_service.h"
18 #include "hilog_wrapper.h"
19 #include "utils.h"
20 
21 namespace OHOS {
22 namespace Accessibility {
23 namespace {
24     const std::string PREF_TEST_PATH = "/data/service/el1/public/barrierfree/accessibility_ability_manager_service/";
25     std::vector<uint32_t> needEvents_ = {};
26 } // namespace
27 
AccessibilityAccountData(int32_t accountId)28 AccessibilityAccountData::AccessibilityAccountData(int32_t accountId)
29 {
30     id_ = accountId;
31 }
32 
~AccessibilityAccountData()33 AccessibilityAccountData::~AccessibilityAccountData()
34 {}
35 
GetAccountId()36 int32_t AccessibilityAccountData::GetAccountId()
37 {
38     HILOG_DEBUG("start.");
39     return id_;
40 }
41 
42 // get client state.
GetAccessibilityState()43 uint32_t AccessibilityAccountData::GetAccessibilityState()
44 {
45     return 0;
46 }
47 
48 // switch the user causes state changed.
OnAccountSwitched()49 void AccessibilityAccountData::OnAccountSwitched()
50 {
51     HILOG_DEBUG("start.");
52     // reset AccessibleAbilityConnection
53     std::vector<sptr<AccessibleAbilityConnection>> connectionList;
54     connectedA11yAbilities_.GetAccessibilityAbilities(connectionList);
55     for (auto& connection : connectionList) {
56         connection->Disconnect();
57     }
58 
59     // Clear all abilities.
60     connectedA11yAbilities_.Clear();
61     connectingA11yAbilities_.Clear();
62     enabledAbilities_.clear();
63     installedAbilities_.clear();
64 
65     // Clear Setting State.
66     isEventTouchGuideState_ = false;
67     isScreenMagnification_ = false;
68     isFilteringKeyEvents_ = false;
69     isGesturesSimulation_ = false;
70 }
71 
72 // add connect ability.
AddConnectedAbility(sptr<AccessibleAbilityConnection> & connection)73 void AccessibilityAccountData::AddConnectedAbility(sptr<AccessibleAbilityConnection>& connection)
74 {
75     std::string uri = Utils::GetUri(connection->GetElementName());
76     HILOG_DEBUG("URI is %{public}s", uri.c_str());
77     connectedA11yAbilities_.AddAccessibilityAbility(uri, connection);
78 }
79 
80 // remove connect ability.
RemoveConnectedAbility(const AppExecFwk::ElementName & element)81 void AccessibilityAccountData::RemoveConnectedAbility(const AppExecFwk::ElementName &element)
82 {
83     connectedA11yAbilities_.RemoveAccessibilityAbilityByUri(Utils::GetUri(element));
84 }
85 
AddCaptionPropertyCallback(const sptr<IAccessibleAbilityManagerCaptionObserver> & callback)86 void AccessibilityAccountData::AddCaptionPropertyCallback(
87     const sptr<IAccessibleAbilityManagerCaptionObserver>& callback)
88 {
89     (void)callback;
90 }
91 
RemoveCaptionPropertyCallback(const wptr<IRemoteObject> & callback)92 void AccessibilityAccountData::RemoveCaptionPropertyCallback(const wptr<IRemoteObject>& callback)
93 {
94     (void)callback;
95     HILOG_DEBUG("start.");
96 }
97 // add AccessibilityInteractionConnection
AddAccessibilityWindowConnection(const int32_t windowId,const sptr<AccessibilityWindowConnection> & interactionConnection)98 void AccessibilityAccountData::AddAccessibilityWindowConnection(
99     const int32_t windowId, const sptr<AccessibilityWindowConnection>& interactionConnection)
100 {
101     HILOG_DEBUG("windowId(%{public}d)", windowId);
102     if (!asacConnections_.count(windowId)) {
103         asacConnections_.insert(std::make_pair(windowId, interactionConnection));
104     }
105 }
106 
107 // remove AccessibilityWindowConnection
RemoveAccessibilityWindowConnection(const int32_t windowId)108 void AccessibilityAccountData::RemoveAccessibilityWindowConnection(const int32_t windowId)
109 {
110     HILOG_DEBUG("windowId(%{public}d)", windowId);
111     auto iter = asacConnections_.find(windowId);
112     if (iter != asacConnections_.end()) {
113         asacConnections_.erase(iter);
114     }
115 }
116 
AddConnectingA11yAbility(const std::string & uri,const sptr<AccessibleAbilityConnection> & connection)117 void AccessibilityAccountData::AddConnectingA11yAbility(const std::string &uri,
118     const sptr<AccessibleAbilityConnection> &connection)
119 {
120     connectingA11yAbilities_.AddAccessibilityAbility(uri, connection);
121 }
122 
RemoveConnectingA11yAbility(const std::string & uri)123 void AccessibilityAccountData::RemoveConnectingA11yAbility(const std::string &uri)
124 {
125     connectingA11yAbilities_.RemoveAccessibilityAbilityByUri(uri);
126 }
127 
128 // For UT
AddEnabledAbility(const std::string & bundleName)129 void AccessibilityAccountData::AddEnabledAbility(const std::string& bundleName)
130 {
131     HILOG_DEBUG("start.");
132     if (std::any_of(enabledAbilities_.begin(), enabledAbilities_.end(),
133         [bundleName](const std::string &enabledAbility) {
134             return enabledAbility == bundleName;
135         })) {
136         HILOG_ERROR("The ability is already enabled, and it's bundle name is %{public}s", bundleName.c_str());
137         return;
138     }
139     enabledAbilities_.push_back(bundleName);
140     HILOG_DEBUG("Add EnabledAbility: %{public}zu", enabledAbilities_.size());
141 }
142 
RemoveEnabledAbility(const std::string & name)143 RetError AccessibilityAccountData::RemoveEnabledAbility(const std::string &name)
144 {
145     HILOG_DEBUG("start");
146     for (auto it = enabledAbilities_.begin(); it != enabledAbilities_.end(); it++) {
147         if (*it == name) {
148             HILOG_DEBUG("Removed %{public}s from EnabledAbility: ", name.c_str());
149             enabledAbilities_.erase(it);
150             HILOG_DEBUG("EnabledAbility size(%{public}zu)", enabledAbilities_.size());
151             return RET_OK;
152         }
153     }
154     HILOG_ERROR("The ability(%{public}s) is not enabled.", name.c_str());
155     return RET_ERR_NOT_ENABLED;
156 }
157 
158 // For UT
AddInstalledAbility(AccessibilityAbilityInfo & abilityInfo)159 void AccessibilityAccountData::AddInstalledAbility(AccessibilityAbilityInfo& abilityInfo)
160 {
161     (void)abilityInfo;
162 }
163 
RemoveInstalledAbility(const std::string & bundleName)164 void AccessibilityAccountData::RemoveInstalledAbility(const std::string &bundleName)
165 {
166     (void)bundleName;
167 }
168 
ClearInstalledAbility()169 void AccessibilityAccountData::ClearInstalledAbility()
170 {}
171 
GetAccessibleAbilityConnection(const std::string & elementName)172 const sptr<AccessibleAbilityConnection> AccessibilityAccountData::GetAccessibleAbilityConnection(
173     const std::string &elementName)
174 {
175     (void)elementName;
176     return nullptr;
177 }
178 
GetAccessibilityWindowConnection(const int32_t windowId)179 const sptr<AccessibilityWindowConnection> AccessibilityAccountData::GetAccessibilityWindowConnection(
180     const int32_t windowId)
181 {
182     if (asacConnections_.count(windowId) > 0) {
183         return asacConnections_[windowId];
184     }
185     return nullptr;
186 }
187 
GetConnectedA11yAbilities()188 const std::map<std::string, sptr<AccessibleAbilityConnection>> AccessibilityAccountData::GetConnectedA11yAbilities()
189 {
190     HILOG_DEBUG("GetConnectedA11yAbilities start.");
191     std::map<std::string, sptr<AccessibleAbilityConnection>> connectionMap;
192     connectedA11yAbilities_.GetAccessibilityAbilitiesMap(connectionMap);
193     return connectionMap;
194 }
195 
GetAsacConnections()196 const std::map<int32_t, sptr<AccessibilityWindowConnection>> AccessibilityAccountData::GetAsacConnections()
197 {
198     HILOG_DEBUG("GetAsacConnections start");
199     return asacConnections_;
200 }
201 
GetCaptionPropertyCallbacks()202 const CaptionPropertyCallbacks AccessibilityAccountData::GetCaptionPropertyCallbacks()
203 {
204     HILOG_DEBUG("GetCaptionPropertyCallbacks start");
205     return captionPropertyCallbacks_;
206 }
207 
GetConnectingA11yAbility(const std::string & uri)208 sptr<AccessibleAbilityConnection> AccessibilityAccountData::GetConnectingA11yAbility(const std::string &uri)
209 {
210     return connectingA11yAbilities_.GetAccessibilityAbilityByUri(uri);
211 }
212 
GetEnabledAbilities()213 const std::vector<std::string>& AccessibilityAccountData::GetEnabledAbilities()
214 {
215     HILOG_DEBUG("enabledAbilities_'s size is %{public}zu", enabledAbilities_.size());
216     for (auto& ability : enabledAbilities_) {
217         HILOG_DEBUG("bundleName %{public}s ", ability.c_str());
218     }
219     return enabledAbilities_;
220 }
221 
GetInstalledAbilities() const222 const std::vector<AccessibilityAbilityInfo> &AccessibilityAccountData::GetInstalledAbilities() const
223 {
224     HILOG_DEBUG("GetInstalledAbilities start");
225     return installedAbilities_;
226 }
227 
GetAbilitiesByState(AbilityStateType state,std::vector<AccessibilityAbilityInfo> & abilities)228 void AccessibilityAccountData::GetAbilitiesByState(
229     AbilityStateType state, std::vector<AccessibilityAbilityInfo> &abilities)
230 {
231     (void)state;
232     (void)abilities;
233 }
234 
UpdateAccountCapabilities()235 void AccessibilityAccountData::UpdateAccountCapabilities()
236 {}
237 
UpdateEventTouchGuideCapability()238 void AccessibilityAccountData::UpdateEventTouchGuideCapability()
239 {}
240 
UpdateGesturesSimulationCapability()241 void AccessibilityAccountData::UpdateGesturesSimulationCapability()
242 {}
243 
UpdateFilteringKeyEventsCapability()244 void AccessibilityAccountData::UpdateFilteringKeyEventsCapability()
245 {
246     isFilteringKeyEvents_ = false;
247 }
248 
UpdateMagnificationCapability()249 void AccessibilityAccountData::UpdateMagnificationCapability()
250 {
251     isScreenMagnification_ = false;
252 }
253 
UpdateEnableAbilityListsState()254 void AccessibilityAccountData::UpdateEnableAbilityListsState()
255 {
256     return;
257 }
258 
EnableAbility(const std::string & name,const uint32_t capabilities)259 RetError AccessibilityAccountData::EnableAbility(const std::string &name, const uint32_t capabilities)
260 {
261     HILOG_DEBUG("start.");
262     if (std::any_of(enabledAbilities_.begin(), enabledAbilities_.end(),
263         [name](const std::string &enabledAbility) {
264             return enabledAbility == name;
265         })) {
266         HILOG_ERROR("The ability[%{public}s] is already enabled", name.c_str());
267         return RET_ERR_CONNECTION_EXIST;
268     }
269     enabledAbilities_.push_back(name);
270     return RET_OK;
271 }
272 
DealWithScreenReaderState()273 bool AccessibilityAccountData::DealWithScreenReaderState()
274 {
275     HILOG_DEBUG("start.");
276     return true;
277 }
278 
GetInstalledAbilitiesFromBMS()279 bool AccessibilityAccountData::GetInstalledAbilitiesFromBMS()
280 {
281     HILOG_DEBUG("start.");
282     return true;
283 }
284 
SetScreenReaderState(const std::string & name,const std::string & state)285 void AccessibilityAccountData::SetScreenReaderState(const std::string &name, const std::string &state)
286 {
287     HILOG_DEBUG("start.");
288     (void)name;
289     (void)state;
290 }
291 
GetDefaultUserScreenReaderState()292 bool AccessibilityAccountData::GetDefaultUserScreenReaderState()
293 {
294     HILOG_DEBUG("start.");
295     return true;
296 }
297 
GetScreenReaderState()298 bool AccessibilityAccountData::GetScreenReaderState()
299 {
300     HILOG_DEBUG("start.");
301     return true;
302 }
303 
Init()304 void AccessibilityAccountData::Init()
305 {
306     HILOG_DEBUG("start.");
307     if (!config_) {
308         config_ = std::make_shared<AccessibilitySettingsConfig>(id_);
309     }
310 }
311 
AddEnableAbilityListsObserver(const sptr<IAccessibilityEnableAbilityListsObserver> & observer)312 void AccessibilityAccountData::AddEnableAbilityListsObserver(
313     const sptr<IAccessibilityEnableAbilityListsObserver>& observer)
314 {
315     HILOG_DEBUG("start.");
316     (void)observer;
317 }
318 
RemoveEnableAbilityListsObserver(const wptr<IRemoteObject> & observer)319 void AccessibilityAccountData::RemoveEnableAbilityListsObserver(const wptr<IRemoteObject>& observer)
320 {
321     (void)observer;
322 }
323 
AddConfigCallback(const sptr<IAccessibleAbilityManagerConfigObserver> & callback)324 void AccessibilityAccountData::AddConfigCallback(
325     const sptr<IAccessibleAbilityManagerConfigObserver>& callback)
326 {
327     HILOG_DEBUG("AddConfigCallback start");
328     configCallbacks_.push_back(callback);
329 }
330 
GetConfigCallbacks()331 const std::vector<sptr<IAccessibleAbilityManagerConfigObserver>> AccessibilityAccountData::GetConfigCallbacks()
332 {
333     HILOG_DEBUG("GetConfigCallbacks start");
334     return configCallbacks_;
335 }
336 
SetConfigCallbacks(std::vector<sptr<IAccessibleAbilityManagerConfigObserver>> & observer)337 void AccessibilityAccountData::SetConfigCallbacks(std::vector<sptr<IAccessibleAbilityManagerConfigObserver>>& observer)
338 {
339     HILOG_DEBUG("SetConfigCallbacks start");
340     configCallbacks_ = observer;
341 }
342 
RemoveConfigCallback(const wptr<IRemoteObject> & callback)343 void AccessibilityAccountData::RemoveConfigCallback(const wptr<IRemoteObject>& callback)
344 {
345     HILOG_DEBUG("RemoveConfigCallback start");
346     for (auto iter = configCallbacks_.begin(); iter != configCallbacks_.end(); iter++) {
347         if ((*iter)->AsObject() == callback) {
348             configCallbacks_.erase(iter);
349             break;
350         }
351     }
352 }
353 
GetConfig()354 std::shared_ptr<AccessibilitySettingsConfig> AccessibilityAccountData::GetConfig()
355 {
356     HILOG_DEBUG("GetConfig start");
357     return config_;
358 }
359 
GetImportantEnabledAbilities(std::map<std::string,uint32_t> & importantEnabledAbilities) const360 void AccessibilityAccountData::GetImportantEnabledAbilities(
361     std::map<std::string, uint32_t> &importantEnabledAbilities) const
362 {
363     HILOG_DEBUG("GetImportantEnabledAbilities start");
364     (void)importantEnabledAbilities;
365 }
366 
UpdateImportantEnabledAbilities(std::map<std::string,uint32_t> & importantEnabledAbilities)367 void AccessibilityAccountData::UpdateImportantEnabledAbilities(
368     std::map<std::string, uint32_t> &importantEnabledAbilities)
369 {
370     HILOG_DEBUG("UpdateImportantEnabledAbilities start");
371     (void)importantEnabledAbilities;
372 }
373 
GetInputFilterFlag() const374 uint32_t AccessibilityAccountData::GetInputFilterFlag() const
375 {
376     HILOG_DEBUG("GetInputFilterFlag start");
377     return 0;
378 }
379 
UpdateAbilities()380 void AccessibilityAccountData::UpdateAbilities()
381 {
382     HILOG_DEBUG("UpdateAbilities start");
383 }
384 
AddUITestClient(const sptr<IRemoteObject> & obj,const std::string & bundleName,const std::string & abilityName)385 void AccessibilityAccountData::AddUITestClient(const sptr<IRemoteObject> &obj,
386     const std::string &bundleName, const std::string &abilityName)
387 {
388     (void)obj;
389     (void)bundleName;
390     (void)abilityName;
391 }
392 
RemoveUITestClient(sptr<AccessibleAbilityConnection> & connection,const std::string & bundleName)393 void AccessibilityAccountData::RemoveUITestClient(
394     sptr<AccessibleAbilityConnection> &connection, const std::string &bundleName)
395 {
396     (void)connection;
397     (void)bundleName;
398 }
399 
SetAbilityAutoStartState(const std::string & name,const bool state)400 void AccessibilityAccountData::SetAbilityAutoStartState(const std::string &name, const bool state)
401 {
402     (void)name;
403     (void)state;
404 }
405 
GetAbilityAutoStartState(const std::string & key)406 bool AccessibilityAccountData::GetAbilityAutoStartState(const std::string &key)
407 {
408     (void)key;
409     return true;
410 }
411 
GetConfigValueAtoHos(ConfigValueAtoHosUpdate & value)412 void AccessibilityAccountData::GetConfigValueAtoHos(ConfigValueAtoHosUpdate &value)
413 {
414     (void)value;
415 }
416 
DelAutoStartPrefKeyInRemovePkg(const std::string & bundleName)417 void AccessibilityAccountData::DelAutoStartPrefKeyInRemovePkg(const std::string &bundleName)
418 {
419     (void)bundleName;
420 }
421 
UpdateAutoStartEnabledAbilities()422 void AccessibilityAccountData::UpdateAutoStartEnabledAbilities()
423 {
424 }
425 
GetAccessibilityAbilityByUri(const std::string & uri)426 sptr<AccessibleAbilityConnection> AccessibilityAccountData::AccessibilityAbility::GetAccessibilityAbilityByUri(
427     const std::string& uri)
428 {
429     auto iter = connectionMap_.find(uri);
430     if (iter != connectionMap_.end()) {
431         return iter->second;
432     }
433 
434     return nullptr;
435 }
436 
Clear()437 void AccessibilityAccountData::AccessibilityAbility::Clear()
438 {
439     return connectionMap_.clear();
440 }
441 
AddAccessibilityAbility(const std::string & uri,const sptr<AccessibleAbilityConnection> & connection)442 void AccessibilityAccountData::AccessibilityAbility::AddAccessibilityAbility(const std::string& uri,
443     const sptr<AccessibleAbilityConnection>& connection)
444 {
445     if (!connectionMap_.count(uri)) {
446         connectionMap_[uri] = connection;
447         return;
448     }
449 }
450 
RemoveAccessibilityAbilityByUri(const std::string & uri)451 void AccessibilityAccountData::AccessibilityAbility::RemoveAccessibilityAbilityByUri(const std::string& uri)
452 {
453     auto iter = connectionMap_.find(uri);
454     if (iter != connectionMap_.end()) {
455         connectionMap_.erase(iter);
456     }
457 }
458 
GetAccessibilityAbilities(std::vector<sptr<AccessibleAbilityConnection>> & connectionList)459 void AccessibilityAccountData::AccessibilityAbility::GetAccessibilityAbilities(
460     std::vector<sptr<AccessibleAbilityConnection>>& connectionList)
461 {
462     for (auto& connection : connectionMap_) {
463         connectionList.push_back(connection.second);
464     }
465 }
466 
GetAccessibilityAbilitiesMap(std::map<std::string,sptr<AccessibleAbilityConnection>> & connectionMap)467 void AccessibilityAccountData::AccessibilityAbility::GetAccessibilityAbilitiesMap(
468     std::map<std::string, sptr<AccessibleAbilityConnection>>& connectionMap)
469 {
470     connectionMap = connectionMap_;
471 }
472 
AddAccountData(int32_t accountId)473 sptr<AccessibilityAccountData> AccessibilityAccountDataMap::AddAccountData(
474     int32_t accountId)
475 {
476     auto iter = accountDataMap_.find(accountId);
477     if (iter != accountDataMap_.end()) {
478         HILOG_DEBUG("accountId is existed");
479         return iter->second;
480     }
481 
482     sptr<AccessibilityAccountData> accountData = new(std::nothrow) AccessibilityAccountData(accountId);
483     if (accountData == nullptr) {
484         return nullptr;
485     }
486 
487     accountData->Init();
488     accountDataMap_[accountId] = accountData;
489     return accountData;
490 }
491 
GetCurrentAccountData(int32_t accountId)492 sptr<AccessibilityAccountData> AccessibilityAccountDataMap::GetCurrentAccountData(
493     int32_t accountId)
494 {
495     auto iter = accountDataMap_.find(accountId);
496     if (iter != accountDataMap_.end()) {
497         return iter->second;
498     }
499 
500     sptr<AccessibilityAccountData> accountData = new(std::nothrow) AccessibilityAccountData(accountId);
501     if (!accountData) {
502         return nullptr;
503     }
504 
505     accountDataMap_[accountId] = accountData;
506     return accountData;
507 }
508 
GetAccountData(int32_t accountId)509 sptr<AccessibilityAccountData> AccessibilityAccountDataMap::GetAccountData(
510     int32_t accountId)
511 {
512     auto iter = accountDataMap_.find(accountId);
513     if (iter != accountDataMap_.end()) {
514         return iter->second;
515     }
516 
517     return nullptr;
518 }
519 
RemoveAccountData(int32_t accountId)520 sptr<AccessibilityAccountData> AccessibilityAccountDataMap::RemoveAccountData(
521     int32_t accountId)
522 {
523     sptr<AccessibilityAccountData> accountData = nullptr;
524     auto iter = accountDataMap_.find(accountId);
525     if (iter != accountDataMap_.end()) {
526         accountData = iter->second;
527         accountDataMap_.erase(iter);
528     }
529 
530     return accountData;
531 }
532 
Clear()533 void AccessibilityAccountDataMap::Clear()
534 {
535     accountDataMap_.clear();
536 }
537 
GetAccountType()538 AccountSA::OsAccountType AccessibilityAccountData::GetAccountType()
539 {
540     return AccountSA::OsAccountType::PRIVATE;
541 }
542 
GetAccessibilityAbilityByName(const std::string & elementName)543 sptr<AccessibleAbilityConnection> AccessibilityAccountData::AccessibilityAbility::GetAccessibilityAbilityByName(
544     const std::string& elementName)
545 {
546     HILOG_DEBUG("elementName is %{public}s", elementName.c_str());
547     std::lock_guard<ffrt::mutex> lock(mutex_);
548     for (auto& connection : connectionMap_) {
549         std::string::size_type index = connection.first.find(elementName);
550         if (index == std::string::npos) {
551             continue;
552         } else {
553             HILOG_DEBUG("uri %{private}s ", connection.first.c_str());
554             return connection.second;
555         }
556     }
557 
558     return nullptr;
559 }
560 
GetWaitDisConnectAbility(const std::string & elementName)561 const sptr<AccessibleAbilityConnection> AccessibilityAccountData::GetWaitDisConnectAbility(
562     const std::string &elementName)
563 {
564     return waitDisconnectA11yAbilities_.GetAccessibilityAbilityByName(elementName);
565 }
566 
AddWaitDisconnectAbility(sptr<AccessibleAbilityConnection> & connection)567 void AccessibilityAccountData::AddWaitDisconnectAbility(sptr<AccessibleAbilityConnection>& connection)
568 {
569     HILOG_INFO();
570     if (!connection) {
571         HILOG_ERROR("connection is nullptr");
572         return;
573     }
574     if (connection->GetIsRegisterDisconnectCallback()) {
575         HILOG_INFO();
576         std::string uri = Utils::GetUri(connection->GetElementName());
577         waitDisconnectA11yAbilities_.AddAccessibilityAbility(uri, connection);
578     }
579 }
580 
RemoveWaitDisconnectAbility(const std::string & uri)581 void AccessibilityAccountData::RemoveWaitDisconnectAbility(const std::string &uri)
582 {
583     HILOG_INFO();
584     waitDisconnectA11yAbilities_.RemoveAccessibilityAbilityByUri(uri);
585 }
586 
UpdateNeedEvents()587 std::vector<uint32_t> AccessibilityAccountData::UpdateNeedEvents()
588 {
589     return needEvents_;
590 }
591 
AddNeedEvent(std::string & name,std::vector<uint32_t> needEvents)592 void AccessibilityAccountData::AddNeedEvent(std::string &name, std::vector<uint32_t> needEvents)
593 {
594     (void)name;
595     (void)needEvents;
596 }
597 
RemoveNeedEvent(const std::string & name)598 void AccessibilityAccountData::RemoveNeedEvent(const std::string &name)
599 {
600     (void)name;
601 }
602 
GetNeedEvents()603 std::vector<uint32_t> AccessibilityAccountData::GetNeedEvents()
604 {
605     return needEvents_;
606 }
607 
OnStateChanged(const AccountSA::OsAccountStateData & data)608 void AccountSubscriber::OnStateChanged(const AccountSA::OsAccountStateData &data)
609 {
610     (void)data;
611 }
612 } // namespace Accessibility
613 } // namespace OHOS