fix enableability

Signed-off-by: Mupceet <laiguizhong@huawei.com>
This commit is contained in:
Mupceet
2022-10-28 13:38:24 +08:00
parent 8e0360729f
commit 02e4dc654c
@@ -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) {