mirror of
https://gitee.com/openharmony/bundlemanager_bundle_framework
synced 2024-11-27 09:20:49 +00:00
IssueNo:#IA89FS
Description:fix multi-UIAbility bug Sig:SIG_ApplicaitonFramework Feature or Bugfix:Bugfix Binary Source:No Signed-off-by: wangtiantian <wangtiantian19@huawei.com>
This commit is contained in:
parent
66143d0847
commit
27a17800ee
@ -1799,34 +1799,25 @@ void BundleDataMgr::GetMatchLauncherAbilityInfos(const Want& want,
|
||||
APP_LOGD("response user id is invalid");
|
||||
return;
|
||||
}
|
||||
bool isExist = false;
|
||||
bool isStage = info.GetIsNewVersion();
|
||||
// get clone bundle info
|
||||
InnerBundleUserInfo bundleUserInfo;
|
||||
(void)info.GetInnerBundleUserInfo(responseUserId, bundleUserInfo);
|
||||
std::map<std::string, std::vector<Skill>> skillInfos = info.GetInnerSkillInfos();
|
||||
for (const auto& abilityInfoPair : info.GetInnerAbilityInfos()) {
|
||||
auto skillsPair = skillInfos.find(abilityInfoPair.first);
|
||||
if (skillsPair == skillInfos.end()) {
|
||||
continue;
|
||||
}
|
||||
for (const Skill& skill : skillsPair->second) {
|
||||
if (skill.MatchLauncher(want) && (abilityInfoPair.second.type == AbilityType::PAGE)) {
|
||||
isExist = true;
|
||||
AbilityInfo abilityinfo = abilityInfoPair.second;
|
||||
AbilityInfo mainAbilityInfo;
|
||||
info.GetMainAbilityInfo(mainAbilityInfo);
|
||||
if (!mainAbilityInfo.name.empty()) {
|
||||
APP_LOGD("bundleName %{public}s exist mainAbility", info.GetBundleName().c_str());
|
||||
info.GetApplicationInfo(ApplicationFlag::GET_APPLICATION_INFO_WITH_CERTIFICATE_FINGERPRINT,
|
||||
responseUserId, abilityinfo.applicationInfo);
|
||||
abilityinfo.installTime = installTime;
|
||||
responseUserId, mainAbilityInfo.applicationInfo);
|
||||
mainAbilityInfo.installTime = installTime;
|
||||
// fix labelId or iconId is equal 0
|
||||
ModifyLauncherAbilityInfo(isStage, abilityinfo);
|
||||
abilityInfos.emplace_back(abilityinfo);
|
||||
GetMatchLauncherAbilityInfosForCloneInfos(info, abilityInfoPair.second, bundleUserInfo, abilityInfos);
|
||||
break;
|
||||
}
|
||||
}
|
||||
ModifyLauncherAbilityInfo(info.GetIsNewVersion(), mainAbilityInfo);
|
||||
abilityInfos.emplace_back(mainAbilityInfo);
|
||||
GetMatchLauncherAbilityInfosForCloneInfos(info, mainAbilityInfo, bundleUserInfo,
|
||||
abilityInfos);
|
||||
return;
|
||||
}
|
||||
// add app detail ability
|
||||
if (!isExist && info.GetBaseApplicationInfo().needAppDetail) {
|
||||
if (info.GetBaseApplicationInfo().needAppDetail) {
|
||||
LOG_D(BMS_TAG_QUERY_ABILITY, "bundleName: %{public}s add detail ability info.", info.GetBundleName().c_str());
|
||||
std::string moduleName = "";
|
||||
auto ability = info.FindAbilityInfo(moduleName, ServiceConstants::APP_DETAIL_ABILITY, responseUserId);
|
||||
@ -1839,6 +1830,7 @@ void BundleDataMgr::GetMatchLauncherAbilityInfos(const Want& want,
|
||||
}
|
||||
ability->installTime = installTime;
|
||||
abilityInfos.emplace_back(*ability);
|
||||
GetMatchLauncherAbilityInfosForCloneInfos(info, *ability, bundleUserInfo, abilityInfos);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3764,31 +3764,18 @@ void InnerBundleInfo::AdaptMainLauncherResourceInfo(ApplicationInfo &application
|
||||
APP_LOGI("com.ohos.contacts no need to process");
|
||||
return;
|
||||
}
|
||||
OHOS::AAFwk::Want want;
|
||||
want.SetAction(OHOS::AAFwk::Want::ACTION_HOME);
|
||||
want.AddEntity(OHOS::AAFwk::Want::ENTITY_HOME);
|
||||
for (const auto& abilityInfoPair : baseAbilityInfos_) {
|
||||
auto skillsPair = skillInfos_.find(abilityInfoPair.first);
|
||||
if (skillsPair == skillInfos_.end()) {
|
||||
continue;
|
||||
}
|
||||
for (const Skill& skill : skillsPair->second) {
|
||||
if (skill.MatchLauncher(want) && (abilityInfoPair.second.type == AbilityType::PAGE)) {
|
||||
if (abilityInfoPair.second.labelId != 0) {
|
||||
applicationInfo.labelId = abilityInfoPair.second.labelId;
|
||||
applicationInfo.labelResource.id = abilityInfoPair.second.labelId;
|
||||
applicationInfo.labelResource.moduleName = abilityInfoPair.second.moduleName;
|
||||
applicationInfo.labelResource.bundleName = abilityInfoPair.second.bundleName;
|
||||
}
|
||||
if (abilityInfoPair.second.iconId != 0) {
|
||||
applicationInfo.iconId = abilityInfoPair.second.iconId;
|
||||
applicationInfo.iconResource.id = abilityInfoPair.second.iconId;
|
||||
applicationInfo.iconResource.moduleName = abilityInfoPair.second.moduleName;
|
||||
applicationInfo.iconResource.bundleName = abilityInfoPair.second.bundleName;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
AbilityInfo mainAbilityInfo;
|
||||
GetMainAbilityInfo(mainAbilityInfo);
|
||||
if ((mainAbilityInfo.labelId != 0) && (mainAbilityInfo.iconId != 0)) {
|
||||
applicationInfo.labelId = mainAbilityInfo.labelId ;
|
||||
applicationInfo.labelResource.id = mainAbilityInfo.labelId;
|
||||
applicationInfo.labelResource.moduleName = mainAbilityInfo.moduleName;
|
||||
applicationInfo.labelResource.bundleName = mainAbilityInfo.bundleName;
|
||||
|
||||
applicationInfo.iconId = mainAbilityInfo.iconId ;
|
||||
applicationInfo.labelResource.id = mainAbilityInfo.iconId;
|
||||
applicationInfo.labelResource.moduleName = mainAbilityInfo.moduleName;
|
||||
applicationInfo.labelResource.bundleName = mainAbilityInfo.bundleName;
|
||||
}
|
||||
}
|
||||
} // namespace AppExecFwk
|
||||
|
@ -8569,11 +8569,6 @@ HWTEST_F(BmsBundleKitServiceTest, QueryBundleStatsInfoByInterval_0100, Function
|
||||
|
||||
bool ret = bundleAgingMgr.QueryBundleStatsInfoByInterval(results);
|
||||
EXPECT_EQ(ret, false);
|
||||
|
||||
AppExecFwk::BundleAgingMgr::AgingTriggertype type =
|
||||
AppExecFwk::BundleAgingMgr::AgingTriggertype::PREIOD;
|
||||
ret = bundleAgingMgr.CheckPrerequisite(type);
|
||||
EXPECT_EQ(ret, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -49,7 +49,7 @@ const std::string BUNDLE_UPDATE = "Bundle Update Success";
|
||||
const std::string BUNDLE_REMOVE = "Bundle Remove Success";
|
||||
constexpr uint32_t WAIT_SECONDS = 10;
|
||||
constexpr uint32_t USERID = 100;
|
||||
const unsigned int LIST_SIZE = 2;
|
||||
const unsigned int LIST_SIZE = 1;
|
||||
static const int APP_LABELID = 16777216;
|
||||
static const int APP_ICONID = 16777218;
|
||||
} // namespace
|
||||
@ -679,9 +679,6 @@ HWTEST_F(BmsLauncherServiceSystemTest, BMS_GetAbilityList_0400, Function | Mediu
|
||||
EXPECT_TRUE(result) << "Get ability list failed";
|
||||
EXPECT_FALSE(launcherAbilityInfos.empty()) << "Launcher ability infos is empty";
|
||||
EXPECT_EQ(launcherAbilityInfos.size(), LIST_SIZE);
|
||||
if (!launcherAbilityInfos.empty()) {
|
||||
EXPECT_EQ(launcherAbilityInfos[0].elementName.GetAbilityName(), abilityName1);
|
||||
}
|
||||
|
||||
Uninstall(bundleName, message);
|
||||
EXPECT_EQ(message, "Success") << "uninstall fail!";
|
||||
|
Loading…
Reference in New Issue
Block a user