From 24240d528e151c38ae29e5192af41de635eb7ef7 Mon Sep 17 00:00:00 2001 From: fanchenxuan Date: Wed, 20 Apr 2022 15:19:07 +0800 Subject: [PATCH] reason Signed-off-by: fanchenxuan --- .../GrantAbility/common/components/dialog.ets | 20 ++++++++++++++++++- .../GrantAbility/common/utils/constant.ets | 4 ++++ .../ets/GrantAbility/pages/dialogPlus.ets | 2 +- .../common/model/permissionGroup.ets | 6 +++++- .../ets/MainAbility/common/utils/constant.ets | 1 + .../pages/authority-management.ets | 12 ++++++++++- 6 files changed, 41 insertions(+), 4 deletions(-) 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 c0fc08c75..cd703a33d 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 54eeee8f0..340b98ec8 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 64cd55060..97b6e1095 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 2aa04d62c..4cbd6467e 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 cd7dceeae..f5a283b67 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 28b8448d2..98bfd2237 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, -- Gitee