diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/components/dialog.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/components/dialog.ets index c0fc08c7521ac77c44c931347326874ba21522fb..cd703a33dd37a8d8542be709f89f07f1a416a838 100644 --- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/components/dialog.ets +++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/components/dialog.ets @@ -150,6 +150,25 @@ export struct privacyDialog { console.log(TAG + "applicationInfo error :" + err) this.initStatus = Constants.INIT_NEED_TO_TERMINATED }) + bundle.getBundleInfo(data, Constants.PARMETER_BUNDLE_FLAG).then(bundleInfo => { + var indexGroup = new Array(this.grantGroups.length).fill(Constants.INITIAL_INDEX); + this.grantGroups.forEach((group, idx) => { + bundleInfo.reqPermissionDetails.forEach(reqPermissionDetail => { + var index = group.permissions.indexOf(reqPermissionDetail.name) + if(index !== -1 && index < indexGroup[idx]) { + Resmgr.getResourceManager(data).then(item => { + item.getString(reqPermissionDetail.reasonId, (err, value) => { + this.initStatus = Constants.INIT_NEED_TO_VERIFY + if (value !== undefined) { + group.description = value + } + }) + }) + indexGroup[idx] = index + } + }) + }) + }) }).catch(err => { console.log(TAG + "getNameForUid error :" + JSON.stringify(err)) this.initStatus = Constants.INIT_NEED_TO_TERMINATED @@ -173,7 +192,6 @@ export struct privacyDialog { } } }) - this.initStatus = Constants.INIT_NEED_TO_VERIFY } answer(ret, reqPerms) { diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/utils/constant.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/utils/constant.ets index 54eeee8f04afb4ca413e3083747eb1447cb12183..340b98ec89691dbbe7668dd0b8ffadeae02726ef 100644 --- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/utils/constant.ets +++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/utils/constant.ets @@ -55,4 +55,8 @@ export default class Constants { static PASS_OPER = 0 static DYNAMIC_OPER = 1 static INVALID_OPER = 2 + + // + static PARMETER_BUNDLE_FLAG = 16 + static INITIAL_INDEX = 10 } \ No newline at end of file diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/pages/dialogPlus.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/pages/dialogPlus.ets index 64cd5506085ed1b5d942dea09c0059e72e59ce2e..97b6e10957c0b5d8ca18ff40023f3989cb560044 100644 --- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/pages/dialogPlus.ets +++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/pages/dialogPlus.ets @@ -26,7 +26,7 @@ struct dialogPlusPage { privacyDialogController: CustomDialogController = new CustomDialogController({ builder: privacyDialog({ cancel: this.privacyCancel, confirm: this.privacyAccept, count:$count, result: $result }), cancel: this.privacyExist, - autoCancel: true, + autoCancel: false, alignment: DialogAlignment.Center }) async privacyAccept(group, accessTokenId, permissionList, userFixedFlag) { diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/model/permissionGroup.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/model/permissionGroup.ets index 2aa04d62c75c748769658ebaa11e1b5c4e0bd616..4cbd6467ec03d4c47fa7fd6343c650b8d22aadb7 100644 --- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/model/permissionGroup.ets +++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/model/permissionGroup.ets @@ -448,4 +448,8 @@ export const orderGroup: string[] = [ export const otherPermissionsLabel: object = { "ohos.permission.DISTRIBUTED_DATASYNC": "多设备协同" -}; \ No newline at end of file +}; + +export const noNeedDisplayApp: string[] = [ + "com.ohos.launcher" +]; \ No newline at end of file diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/utils/constant.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/utils/constant.ets index cd7dceeae73242a74934a446960e789ad704c817..f5a283b670d2f6c5fbc4d8f91565f36446e2a441 100644 --- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/utils/constant.ets +++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/utils/constant.ets @@ -222,4 +222,5 @@ export default class Constants { static PERMISSION_NUM = 0; static PERMISSION_FLAG = 2; + static API_VERSION_SUPPORT_STAGE = 9; } \ No newline at end of file diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-management.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-management.ets index 28b8448d248e209085ed483e7da14994eaad445d..98bfd223789e37023026ada9bc2d80d021464bd6 100644 --- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-management.ets +++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-management.ets @@ -19,7 +19,7 @@ import { textInput } from "../common/components/search.ets"; import router from '@system.router'; import bundle from "@ohos.bundle"; import Resmgr from '@ohos.resourceManager'; -import { groups, userGrantPermissions,permissionGroupPermissions } from "../common/model/permissionGroup.ets"; +import { groups, userGrantPermissions, permissionGroupPermissions, noNeedDisplayApp } from "../common/model/permissionGroup.ets"; import { permissionGroups, permissionPermissionGroup, permissionGroupIds } from "../common/model/permissionGroup.ets"; import { makePy } from "../common/utils/utils.ets"; import Constants from '../common/utils/constant.ets'; @@ -180,6 +180,10 @@ struct authorityManagementPage { console.log(TAG + 'queryAbilityByWant catch error: ' + JSON.stringify(e)) continue; } + + if (noNeedDisplayApp.indexOf(info.name) != -1) { + continue; + } this.deduplicationPermissions(info, allPermissions, allApplicationPermissions); this.updateAppLabel(infoIndex, info.name, info.appInfo.label); this.updateAppIcon(infoIndex, info.name); @@ -353,6 +357,12 @@ struct authorityManagementPage { groupIds.push(permissionGroupIds[reqUserPermissions[i]]); } } + + // adapt different api + if (info.compatibleVersion >= Constants.API_VERSION_SUPPORT_STAGE) { + info.appInfo.iconId = info.hapModuleInfos[0].abilityInfo[0].iconId; + } + var ap: applicationPermissions = { 'bundleName': info.name, 'tokenId': info.appInfo.accessTokenId,