mirror of
https://github.com/openharmony/accessibility.git
synced 2026-08-24 22:11:28 -04:00
@@ -76,18 +76,6 @@ public:
|
||||
*/
|
||||
void RemoveConnectingA11yAbility(const std::string &uri);
|
||||
|
||||
/**
|
||||
* @brief Add accessibility monitoring connection.
|
||||
* @param callback Accessibility monitoring connection.
|
||||
*/
|
||||
void AddStateCallback(const sptr<IAccessibleAbilityManagerStateObserver>& callback);
|
||||
|
||||
/**
|
||||
* @brief Remove accessibility monitoring connection.
|
||||
* @param callback Accessibility monitoring connection.
|
||||
*/
|
||||
void RemoveStateCallback(const wptr<IRemoteObject>& callback);
|
||||
|
||||
void AddCaptionPropertyCallback(const sptr<IAccessibleAbilityManagerCaptionObserver>& callback);
|
||||
void RemoveCaptionPropertyCallback(const wptr<IRemoteObject>& callback);
|
||||
|
||||
@@ -145,12 +133,6 @@ public:
|
||||
*/
|
||||
const std::map<std::string, sptr<AccessibleAbilityConnection>> GetConnectedA11yAbilities();
|
||||
|
||||
/**
|
||||
* @brief Get accessibility listening connection list.
|
||||
* @return Store vector of accessibility listening connection.
|
||||
*/
|
||||
const std::vector<sptr<IAccessibleAbilityManagerStateObserver>> &GetStateCallbacks() const;
|
||||
|
||||
const CaptionPropertyCallbacks GetCaptionPropertyCallbacks();
|
||||
|
||||
/**
|
||||
@@ -308,7 +290,6 @@ private:
|
||||
uint32_t connectCounter_ = 1;
|
||||
std::map<std::string, sptr<AccessibleAbilityConnection>> connectedA11yAbilities_; // key: bundleName/abilityName
|
||||
std::map<std::string, sptr<AccessibleAbilityConnection>> connectingA11yAbilities_; // key: bundleName/abilityName
|
||||
std::vector<sptr<IAccessibleAbilityManagerStateObserver>> stateCallbacks_;
|
||||
std::vector<sptr<IAccessibilityEnableAbilityListsObserver>> enableAbilityListsObservers_;
|
||||
std::map<int32_t, sptr<AccessibilityWindowConnection>> asacConnections_; // key: windowId
|
||||
CaptionPropertyCallbacks captionPropertyCallbacks_;
|
||||
|
||||
@@ -285,6 +285,7 @@ private:
|
||||
sptr<IRemoteObject::DeathRecipient> enableAbilityListsObserverDeathRecipient_ = nullptr;
|
||||
sptr<IRemoteObject::DeathRecipient> configCallbackDeathRecipient_ = nullptr;
|
||||
sptr<IRemoteObject::DeathRecipient> bundleManagerDeathRecipient_ = nullptr;
|
||||
std::vector<sptr<IAccessibleAbilityManagerStateObserver>> stateCallbacks_;
|
||||
};
|
||||
} // namespace Accessibility
|
||||
} // namespace OHOS
|
||||
|
||||
@@ -113,23 +113,6 @@ void AccessibilityAccountData::RemoveConnectedAbility(const AppExecFwk::ElementN
|
||||
HILOG_INFO("Remove ConnectedAbility: %{public}zu", connectedA11yAbilities_.size());
|
||||
}
|
||||
|
||||
void AccessibilityAccountData::AddStateCallback(const sptr<IAccessibleAbilityManagerStateObserver>& callback)
|
||||
{
|
||||
HILOG_INFO();
|
||||
stateCallbacks_.push_back(callback);
|
||||
}
|
||||
|
||||
void AccessibilityAccountData::RemoveStateCallback(const wptr<IRemoteObject>& callback)
|
||||
{
|
||||
HILOG_INFO();
|
||||
for (auto itr = stateCallbacks_.begin(); itr != stateCallbacks_.end(); itr++) {
|
||||
if ((*itr)->AsObject() == callback) {
|
||||
stateCallbacks_.erase(itr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AccessibilityAccountData::AddCaptionPropertyCallback(
|
||||
const sptr<IAccessibleAbilityManagerCaptionObserver>& callback)
|
||||
{
|
||||
@@ -331,12 +314,6 @@ const std::map<std::string, sptr<AccessibleAbilityConnection>> AccessibilityAcco
|
||||
return connectedA11yAbilities_;
|
||||
}
|
||||
|
||||
const std::vector<sptr<IAccessibleAbilityManagerStateObserver>> &AccessibilityAccountData::GetStateCallbacks() const
|
||||
{
|
||||
HILOG_DEBUG("start.");
|
||||
return stateCallbacks_;
|
||||
}
|
||||
|
||||
const std::map<int32_t, sptr<AccessibilityWindowConnection>> AccessibilityAccountData::GetAsacConnections()
|
||||
{
|
||||
HILOG_DEBUG("start.");
|
||||
|
||||
@@ -110,6 +110,7 @@ void AccessibleAbilityManagerService::OnStop()
|
||||
|
||||
currentAccountId_ = -1;
|
||||
a11yAccountsData_.clear();
|
||||
stateCallbacks_.clear();
|
||||
bundleManager_ = nullptr;
|
||||
inputInterceptor_ = nullptr;
|
||||
touchEventInjector_ = nullptr;
|
||||
@@ -253,8 +254,7 @@ uint32_t AccessibleAbilityManagerService::RegisterStateObserver(
|
||||
{
|
||||
HILOG_DEBUG();
|
||||
if (!callback || !handler_) {
|
||||
HILOG_ERROR("Parameters check failed! callback:%{public}p, handler:%{public}p",
|
||||
callback.GetRefPtr(), handler_.get());
|
||||
HILOG_ERROR("Parameters check failed!");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -262,13 +262,6 @@ uint32_t AccessibleAbilityManagerService::RegisterStateObserver(
|
||||
std::future syncFuture = syncPromise.get_future();
|
||||
handler_->PostTask(std::bind([this, &syncPromise, callback]() -> void {
|
||||
HILOG_DEBUG();
|
||||
sptr<AccessibilityAccountData> accountData = GetCurrentAccountData();
|
||||
if (!accountData) {
|
||||
HILOG_ERROR("Account data is null");
|
||||
syncPromise.set_value(0);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!stateCallbackDeathRecipient_) {
|
||||
stateCallbackDeathRecipient_ = new(std::nothrow) StateCallbackDeathRecipient();
|
||||
if (!stateCallbackDeathRecipient_) {
|
||||
@@ -283,10 +276,18 @@ uint32_t AccessibleAbilityManagerService::RegisterStateObserver(
|
||||
return;
|
||||
}
|
||||
callback->AsObject()->AddDeathRecipient(stateCallbackDeathRecipient_);
|
||||
accountData->AddStateCallback(callback);
|
||||
|
||||
HILOG_INFO("AccessibleAbilityManagerService::RegisterStateObserver successfully");
|
||||
auto iter = std::find(stateCallbacks_.begin(), stateCallbacks_.end(), callback);
|
||||
if (iter == stateCallbacks_.end()) {
|
||||
stateCallbacks_.push_back(callback);
|
||||
HILOG_INFO("RegisterStateObserver successfully");
|
||||
}
|
||||
|
||||
sptr<AccessibilityAccountData> accountData = GetCurrentAccountData();
|
||||
if (!accountData) {
|
||||
HILOG_ERROR("Account data is null");
|
||||
syncPromise.set_value(0);
|
||||
return;
|
||||
}
|
||||
uint32_t state = accountData->GetAccessibilityState();
|
||||
syncPromise.set_value(state);
|
||||
}), "TASK_REGISTER_STATE_OBSERVER");
|
||||
@@ -1193,7 +1194,7 @@ void AccessibleAbilityManagerService::UpdateAccessibilityState()
|
||||
if (!(state & STATE_ACCESSIBILITY_ENABLED)) {
|
||||
Singleton<AccessibilityWindowManager>::GetInstance().ClearAccessibilityFocused();
|
||||
}
|
||||
for (auto &callback : accountData->GetStateCallbacks()) {
|
||||
for (auto &callback : stateCallbacks_) {
|
||||
if (callback) {
|
||||
callback->OnStateChanged(state);
|
||||
}
|
||||
@@ -2131,7 +2132,15 @@ void AccessibleAbilityManagerService::RemoveCallback(CallBackID callback,
|
||||
}
|
||||
switch (callback) {
|
||||
case STATE_CALLBACK:
|
||||
accountData->RemoveStateCallback(remote);
|
||||
{
|
||||
auto iter = std::find_if(stateCallbacks_.begin(), stateCallbacks_.end(),
|
||||
[remote](const sptr<IAccessibleAbilityManagerStateObserver> &stateCallback) {
|
||||
return stateCallback->AsObject() == remote;
|
||||
});
|
||||
if (iter != stateCallbacks_.end()) {
|
||||
stateCallbacks_.erase(iter);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CAPTION_PROPERTY_CALLBACK:
|
||||
accountData->RemoveCaptionPropertyCallback(remote);
|
||||
|
||||
@@ -31,8 +31,6 @@ public:
|
||||
MOCK_METHOD1(AddConnectedAbility, void(sptr<AccessibleAbilityConnection>& connection));
|
||||
MOCK_METHOD1(RemoveConnectedAbility, void(const AppExecFwk::ElementName &element));
|
||||
MOCK_METHOD1(RemoveConnectingA11yAbility, void(const std::string &uri));
|
||||
MOCK_METHOD1(AddStateCallback, void(const sptr<AccessibleAbilityManagerServiceStub>& callback));
|
||||
MOCK_METHOD1(RemoveStateCallback, void(const wptr<IRemoteObject>& callback));
|
||||
MOCK_METHOD1(AddCaptionPropertyCallback, void(const sptr<IAccessibleAbilityManagerCaptionObserver>& callback));
|
||||
MOCK_METHOD1(RemoveCaptionPropertyCallback, void(const wptr<IRemoteObject>& callback));
|
||||
MOCK_METHOD2(AddAccessibilityWindowConnection,
|
||||
@@ -45,7 +43,6 @@ public:
|
||||
MOCK_METHOD1(RemoveInstalledAbility, void(const std::string &bundleName));
|
||||
MOCK_METHOD0(ClearInstalledAbility, void());
|
||||
MOCK_METHOD0(GetConnectedA11yAbilities, const std::map<std::string, sptr<AccessibleAbilityConnection>>());
|
||||
MOCK_METHOD0(GetStateCallbacks, const std::vector<sptr<IAccessibleAbilityManagerStateObserver>> &());
|
||||
MOCK_METHOD0(GetCaptionPropertyCallbacks, const CaptionPropertyCallbacks());
|
||||
MOCK_METHOD0(GetAsacConnections, const std::map<int32_t, sptr<AccessibilityWindowConnection>>());
|
||||
MOCK_METHOD1(
|
||||
|
||||
@@ -89,19 +89,6 @@ void AccessibilityAccountData::RemoveConnectedAbility(const AppExecFwk::ElementN
|
||||
HILOG_INFO("Remove ConnectedAbility: %{public}zu", connectedA11yAbilities_.size());
|
||||
}
|
||||
|
||||
void AccessibilityAccountData::AddStateCallback(const sptr<IAccessibleAbilityManagerStateObserver>& callback)
|
||||
{
|
||||
HILOG_DEBUG("start.");
|
||||
stateCallbacks_.push_back(callback);
|
||||
}
|
||||
|
||||
// remove IAccessibleAbilityManagerServiceState
|
||||
void AccessibilityAccountData::RemoveStateCallback(const wptr<IRemoteObject>& callback)
|
||||
{
|
||||
(void)callback;
|
||||
HILOG_DEBUG("start.");
|
||||
}
|
||||
|
||||
void AccessibilityAccountData::AddCaptionPropertyCallback(
|
||||
const sptr<IAccessibleAbilityManagerCaptionObserver>& callback)
|
||||
{
|
||||
@@ -219,12 +206,6 @@ const std::map<std::string, sptr<AccessibleAbilityConnection>> AccessibilityAcco
|
||||
return connectedA11yAbilities_;
|
||||
}
|
||||
|
||||
const std::vector<sptr<IAccessibleAbilityManagerStateObserver>> &AccessibilityAccountData::GetStateCallbacks() const
|
||||
{
|
||||
HILOG_DEBUG("start.");
|
||||
return stateCallbacks_;
|
||||
}
|
||||
|
||||
const std::map<int32_t, sptr<AccessibilityWindowConnection>> AccessibilityAccountData::GetAsacConnections()
|
||||
{
|
||||
HILOG_DEBUG("start.");
|
||||
|
||||
@@ -505,29 +505,6 @@ HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetConn
|
||||
GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetConnectedA11yAbilities001 end";
|
||||
}
|
||||
|
||||
/**
|
||||
* @tc.number: AccessibilityAccountData_Unittest_GetStateCallbacks001
|
||||
* @tc.name: GetStateCallbacks
|
||||
* @tc.desc: Check the get state callbacks.
|
||||
*/
|
||||
HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetStateCallbacks001, TestSize.Level1)
|
||||
{
|
||||
GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetStateCallbacks001 start";
|
||||
const int32_t accountId = 1;
|
||||
sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
|
||||
sptr<AccessibleAbilityManagerStateObserverStub> stub = new MockAccessibleAbilityManagerStateObserverStub();
|
||||
const sptr<IAccessibleAbilityManagerStateObserver> state = new MockAccessibleAbilityManagerStateObserverProxy(stub);
|
||||
/* get */
|
||||
size_t size = accountData->GetStateCallbacks().size();
|
||||
EXPECT_EQ(0, size);
|
||||
/* add */
|
||||
accountData->AddStateCallback(state);
|
||||
/* get */
|
||||
EXPECT_EQ(1, accountData->GetStateCallbacks().size());
|
||||
|
||||
GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetStateCallbacks001 end";
|
||||
}
|
||||
|
||||
/**
|
||||
* @tc.number: AccessibilityAccountData_Unittest_GetAsacConnections001
|
||||
* @tc.name: GetAsacConnections
|
||||
@@ -1334,28 +1311,6 @@ HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveU
|
||||
GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveUITestClient_002 end";
|
||||
}
|
||||
|
||||
/**
|
||||
* @tc.number: AccessibilityAccountData_Unittest_RemoveStateCallback
|
||||
* @tc.name: RemoveStateCallback
|
||||
* @tc.desc: Check the function of RemoveStateCallback.
|
||||
*/
|
||||
HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveStateCallback, TestSize.Level1)
|
||||
{
|
||||
GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveStateCallback start";
|
||||
sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
|
||||
sptr<AccessibleAbilityManagerStateObserverStub> stub = new MockAccessibleAbilityManagerStateObserverStub();
|
||||
sptr<IAccessibleAbilityManagerStateObserver> state = new MockAccessibleAbilityManagerStateObserverProxy(stub);
|
||||
EXPECT_EQ(0, static_cast<int>(accountData->GetStateCallbacks().size()));
|
||||
|
||||
accountData->AddStateCallback(state);
|
||||
EXPECT_EQ(1, static_cast<int>(accountData->GetStateCallbacks().size()));
|
||||
|
||||
accountData->RemoveStateCallback(state->AsObject());
|
||||
EXPECT_EQ(0, static_cast<int>(accountData->GetStateCallbacks().size()));
|
||||
|
||||
GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveStateCallback end";
|
||||
}
|
||||
|
||||
/**
|
||||
* @tc.number: AccessibilityAccountData_Unittest_CaptionPropertyCallback
|
||||
* @tc.name: CaptionPropertyCallback
|
||||
|
||||
Reference in New Issue
Block a user