mirror of
https://gitee.com/openharmony/bundlemanager_bundle_framework
synced 2024-11-23 07:09:53 +00:00
!7086 隐式匹配action为分享类型时校验文件数量需计算总数-代码回退
Merge pull request !7086 from 张欣宇/master
This commit is contained in:
commit
a2aba75425
@ -1052,7 +1052,7 @@ private:
|
||||
std::vector<ExtensionAbilityInfo> &infos, int32_t appIndex = 0) const;
|
||||
void GetAllExtensionInfosByExtensionTypeName(const std::string &typeName, uint32_t flags, int32_t userId,
|
||||
const InnerBundleInfo &info, std::vector<ExtensionAbilityInfo> &infos, int32_t appIndex = 0) const;
|
||||
bool MatchUtd(Skill &skill, const std::string &utd, int32_t count) const;
|
||||
bool MatchUtd(const Skill &skill, const std::string &utd, int32_t count) const;
|
||||
bool MatchUtd(const std::string &skillUtd, const std::string &wantUtd) const;
|
||||
bool MatchTypeWithUtd(const std::string &mimeType, const std::string &wantUtd) const;
|
||||
std::vector<int32_t> GetCloneAppIndexesNoLock(const std::string &bundleName, int32_t userId) const;
|
||||
|
@ -1775,40 +1775,39 @@ bool BundleDataMgr::MatchShare(const Want &want, const std::vector<Skill> &skill
|
||||
}
|
||||
auto shareSummary = pickerSummary.GetWantParams(WANT_PARAM_SUMMARY);
|
||||
auto utds = shareSummary.KeySet();
|
||||
for (auto &skill : shareActionSkills) {
|
||||
bool match = true;
|
||||
for (const auto &utd : utds) {
|
||||
int32_t count = shareSummary.GetIntParam(utd, DEFAULT_SUMMARY_COUNT);
|
||||
if (count <= DEFAULT_SUMMARY_COUNT) {
|
||||
LOG_W(BMS_TAG_QUERY, "invalid utd count");
|
||||
return false;
|
||||
}
|
||||
if (!MatchUtd(skill, utd, count)) {
|
||||
match = false;
|
||||
for (const auto &utd : utds) {
|
||||
int32_t count = shareSummary.GetIntParam(utd, DEFAULT_SUMMARY_COUNT);
|
||||
if (count <= DEFAULT_SUMMARY_COUNT) {
|
||||
LOG_W(BMS_TAG_QUERY, "invalid utd count");
|
||||
return false;
|
||||
}
|
||||
bool match = false;
|
||||
for (const auto &skill : shareActionSkills) {
|
||||
if (MatchUtd(skill, utd, count)) {
|
||||
match = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (match) {
|
||||
return true;
|
||||
if (!match) {
|
||||
LOG_D(BMS_TAG_QUERY, "match failed");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool BundleDataMgr::MatchUtd(Skill &skill, const std::string &utd, int32_t count) const
|
||||
bool BundleDataMgr::MatchUtd(const Skill &skill, const std::string &utd, int32_t count) const
|
||||
{
|
||||
for (SkillUri &skillUri : skill.uris) {
|
||||
for (const SkillUri &skillUri : skill.uris) {
|
||||
if (skillUri.maxFileSupported < count) {
|
||||
continue;
|
||||
}
|
||||
if (!skillUri.utd.empty()) {
|
||||
if (MatchUtd(skillUri.utd, utd)) {
|
||||
skillUri.maxFileSupported -= count;
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if (MatchTypeWithUtd(skillUri.type, utd)) {
|
||||
skillUri.maxFileSupported -= count;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user