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