mirror of
https://github.com/openharmony/accessibility.git
synced 2026-08-24 22:11:28 -04:00
@@ -264,7 +264,8 @@ void AccessibilityAccountData::AddInstalledAbility(AccessibilityAbilityInfo& abi
|
||||
{
|
||||
HILOG_DEBUG("abilityInfo's bundle name is %{public}s", abilityInfo.GetPackageName().c_str());
|
||||
for (size_t i = 0; i < installedAbilities_.size(); i++) {
|
||||
if (installedAbilities_[i].GetPackageName() == abilityInfo.GetPackageName()) {
|
||||
if ((installedAbilities_[i].GetPackageName() == abilityInfo.GetPackageName()) &&
|
||||
installedAbilities_[i].GetName() == abilityInfo.GetName()) {
|
||||
HILOG_DEBUG("the ability is already exist.");
|
||||
return;
|
||||
}
|
||||
@@ -764,19 +765,16 @@ void AccessibilityAccountData::AddAbility(const std::string &bundleName)
|
||||
bms->QueryExtensionAbilityInfos(AppExecFwk::ExtensionAbilityType::ACCESSIBILITY, id_, extensionInfos);
|
||||
HILOG_DEBUG("query extensionAbilityInfos' size is %{public}zu.", extensionInfos.size());
|
||||
bool hasNewExtensionAbility = false;
|
||||
auto it = std::find_if(extensionInfos.begin(), extensionInfos.end(),
|
||||
[&bundleName](const AppExecFwk::ExtensionAbilityInfo &newAbility) {
|
||||
return newAbility.bundleName == bundleName;
|
||||
});
|
||||
if (it != extensionInfos.end()) {
|
||||
HILOG_DEBUG("The package added is an extension ability and\
|
||||
extension ability's name is %{public}s", (*it).name.c_str());
|
||||
AccessibilityAbilityInitParams initParams;
|
||||
Utils::Parse(*it, initParams);
|
||||
std::shared_ptr<AccessibilityAbilityInfo> accessibilityInfo =
|
||||
std::make_shared<AccessibilityAbilityInfo>(initParams);
|
||||
AddInstalledAbility(*accessibilityInfo);
|
||||
hasNewExtensionAbility = true;
|
||||
for (auto &newAbility : extensionInfos) {
|
||||
if (newAbility.bundleName == bundleName) {
|
||||
HILOG_DEBUG("The package%{public}s added", (bundleName + "/" + newAbility.name).c_str());
|
||||
AccessibilityAbilityInitParams initParams;
|
||||
Utils::Parse(newAbility, initParams);
|
||||
std::shared_ptr<AccessibilityAbilityInfo> accessibilityInfo =
|
||||
std::make_shared<AccessibilityAbilityInfo>(initParams);
|
||||
AddInstalledAbility(*accessibilityInfo);
|
||||
hasNewExtensionAbility = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (hasNewExtensionAbility) {
|
||||
|
||||
Reference in New Issue
Block a user