From 39d35eaa2353b7bd577c4dc66091dd70f46f0145 Mon Sep 17 00:00:00 2001 From: fanchenxuan Date: Thu, 1 Dec 2022 19:57:30 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fixed=20f8918c4=20from=20https://gitee.com/?= =?UTF-8?q?tz=5Flws/applications=5Fpermission=5Fmanager/pulls/61=20?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E5=AE=BD=E5=BA=A6=E9=80=82=E9=85=8D+reason?= =?UTF-8?q?=E6=96=87=E6=9C=AC=E6=95=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: fanchenxuan --- .../ets/GlobalExtAbility/GlobalExtAbility.ts | 4 + .../ServiceExtAbility/ServiceExtAbility.ts | 4 + .../src/main/ets/common/components/dialog.ets | 97 ++++++----- .../main/ets/common/model/permissionGroup.ets | 1 - .../src/main/ets/common/utils/constant.ets | 9 +- .../main/ets/pages/application-tertiary.ets | 11 +- .../src/main/ets/pages/dialogPlus.ets | 159 ++++++++++-------- .../src/main/ets/pages/globalSwitch.ets | 92 +++++----- .../main/resources/base/element/string.json | 12 ++ .../main/resources/zh_CN/element/string.json | 12 ++ 10 files changed, 242 insertions(+), 159 deletions(-) diff --git a/permissionmanager/src/main/ets/GlobalExtAbility/GlobalExtAbility.ts b/permissionmanager/src/main/ets/GlobalExtAbility/GlobalExtAbility.ts index 07b7b62..11410e5 100644 --- a/permissionmanager/src/main/ets/GlobalExtAbility/GlobalExtAbility.ts +++ b/permissionmanager/src/main/ets/GlobalExtAbility/GlobalExtAbility.ts @@ -16,9 +16,11 @@ import extension from '@ohos.app.ability.ServiceExtensionAbility'; import window from '@ohos.window'; import display from '@ohos.display'; +import deviceInfo from '@ohos.deviceInfo'; var TAG = "PermissionManager_Log:"; const BG_COLOR = '#00000000' +let bottomPopoverTypes = ['default', 'phone'] export default class GlobalExtensionAbility extends extension { /** @@ -38,6 +40,8 @@ export default class GlobalExtensionAbility extends extension { width: dis.width, height: dis.height } + let isVertical = dis.width > dis.height ? false : true + globalThis.isBottomPopover = bottomPopoverTypes.includes(deviceInfo.deviceType) && isVertical this.createWindow("globalDialog", window.WindowType.TYPE_KEYGUARD, navigationBarRect) }) } diff --git a/permissionmanager/src/main/ets/ServiceExtAbility/ServiceExtAbility.ts b/permissionmanager/src/main/ets/ServiceExtAbility/ServiceExtAbility.ts index 2c87354..c763a47 100644 --- a/permissionmanager/src/main/ets/ServiceExtAbility/ServiceExtAbility.ts +++ b/permissionmanager/src/main/ets/ServiceExtAbility/ServiceExtAbility.ts @@ -16,9 +16,11 @@ import extension from '@ohos.app.ability.ServiceExtensionAbility'; import window from '@ohos.window'; import display from '@ohos.display'; +import deviceInfo from '@ohos.deviceInfo'; var TAG = "PermissionManager_Log:"; const BG_COLOR = '#00000000' +let bottomPopoverTypes = ['default', 'phone'] export default class ServiceExtensionAbility extends extension { /** @@ -46,6 +48,8 @@ export default class ServiceExtensionAbility extends extension { width: dis.width, height: dis.height } + let isVertical = dis.width > dis.height ? false : true + globalThis.isBottomPopover = bottomPopoverTypes.includes(deviceInfo.deviceType) && isVertical this.createWindow("permissionDialog" + startId, window.WindowType.TYPE_DIALOG, navigationBarRect) }) } diff --git a/permissionmanager/src/main/ets/common/components/dialog.ets b/permissionmanager/src/main/ets/common/components/dialog.ets index 2963969..a8faa39 100644 --- a/permissionmanager/src/main/ets/common/components/dialog.ets +++ b/permissionmanager/src/main/ets/common/components/dialog.ets @@ -17,6 +17,9 @@ import Constants from '../utils/constant'; import audio from '@ohos.multimedia.audio' import camera from '@ohos.multimedia.camera' import deviceInfo from '@ohos.deviceInfo' +import display from '@ohos.display'; + +let bottomPopoverTypes = ['default', 'phone'] @Extend(Button) function customizeButton() { .backgroundColor($r('app.color.default_background_color')) @@ -53,50 +56,56 @@ export struct authorizeDialog { @CustomDialog export struct globalDialog { @Link globalIsOn: boolean + @State isBottomPopover: boolean = true controller: CustomDialogController; build() { - Flex({ justifyContent: FlexAlign.Center, alignItems: ((deviceInfo.deviceType == Constants.DEFAULT_DEVICE_TYPE) - || (deviceInfo.deviceType == Constants.PHONE_DEVICE_TYPE)) ? ItemAlign.End : ItemAlign.Center }) { - Column() { - Text(globalThis.currentPermissionGroup == 'CAMERA' ? $r('app.string.close_camera') : $r('app.string.close_microphone')) - .fontSize(Constants.TEXT_BIG_FONT_SIZE) - .fontColor($r('app.color.label_color')) - .fontWeight(FontWeight.Medium) - .lineHeight(Constants.TEXT_BIG_LINE_HEIGHT) - .height(Constants.ROW_HEIGHT) - .width(Constants.FULL_WIDTH) - .padding({ left: Constants.DIALOG_DESP_MARGIN_LEFT, right: Constants.DIALOG_DESP_MARGIN_RIGHT }) - Text(globalThis.currentPermissionGroup == 'CAMERA' ? $r('app.string.close_camera_desc') : $r('app.string.close_microphone_desc')) - .fontSize(Constants.TEXT_MIDDLE_FONT_SIZE) - .fontColor($r('app.color.label_color')) - .lineHeight(Constants.TEXT_LINE_HEIGHT) + GridRow({ columns: { xs: Constants.XS_COLUMNS, sm: Constants.SM_COLUMNS, md: Constants.MD_COLUMNS, lg: Constants.LG_COLUMNS }, gutter: Constants.DIALOG_GUTTER }) { + GridCol({ span: { xs: Constants.XS_SPAN, sm: Constants.SM_SPAN, md: Constants.DIALOG_MD_SPAN, lg: Constants.DIALOG_LG_SPAN }, + offset: {xs: Constants.XS_OFFSET, sm: Constants.SM_OFFSET, md: Constants.DIALOG_MD_OFFSET, lg: Constants.DIALOG_LG_OFFSET} }) { + Flex({ justifyContent: FlexAlign.Center, alignItems: this.isBottomPopover ? ItemAlign.End : ItemAlign.Center }) { + Column() { + Text(globalThis.currentPermissionGroup == 'CAMERA' ? $r('app.string.close_camera') : $r('app.string.close_microphone')) + .fontSize(Constants.TEXT_BIG_FONT_SIZE) + .fontColor($r('app.color.label_color')) + .fontWeight(FontWeight.Medium) + .lineHeight(Constants.TEXT_BIG_LINE_HEIGHT) + .height(Constants.ROW_HEIGHT) + .width(Constants.FULL_WIDTH) + .padding({ left: Constants.DIALOG_DESP_MARGIN_LEFT, right: Constants.DIALOG_DESP_MARGIN_RIGHT }) + Text(globalThis.currentPermissionGroup == 'CAMERA' ? $r('app.string.close_camera_desc') : $r('app.string.close_microphone_desc')) + .fontSize(Constants.TEXT_MIDDLE_FONT_SIZE) + .fontColor($r('app.color.label_color')) + .lineHeight(Constants.TEXT_LINE_HEIGHT) + .width(Constants.FULL_WIDTH) + .padding({ left: Constants.DIALOG_DESP_MARGIN_LEFT, right: Constants.DIALOG_DESP_MARGIN_RIGHT }) + .margin({ bottom: Constants.DIALOG_DESP_MARGIN_BOTTOM }) + Row() { + Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Start }) { + Button($r('app.string.cancel')) + .fontSize(Constants.BUTTON_FONT_SIZE) + .onClick(() => { + this.cancel() + }).customizeButton().margin({ left: Constants.BUTTON_MARGIN_LEFT }) + Text('|').fontSize(Constants.BUTTON_DIVIDER_FONT_SIZE).fontColor($r('app.color.divider_color')) + .margin({ top: Constants.BUTTON_MARGIN_TOP }) + Button($r('app.string.close')) + .fontSize(Constants.BUTTON_FONT_SIZE) + .onClick(() => { + this.confirm() + }).customizeButton().margin({ right: Constants.BUTTON_MARGIN_RIGHT }) + }.height(Constants.ROW_HEIGHT) + } + } + .backgroundColor($r('app.color.default_background_color')) + .borderRadius(Constants.DIALOG_PRIVACY_BORDER_RADIUS) .width(Constants.FULL_WIDTH) - .padding({ left: Constants.DIALOG_DESP_MARGIN_LEFT, right: Constants.DIALOG_DESP_MARGIN_RIGHT }) - .margin({ bottom: Constants.DIALOG_DESP_MARGIN_BOTTOM }) - Row() { - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Start }) { - Button($r('app.string.cancel')) - .fontSize(Constants.BUTTON_FONT_SIZE) - .onClick(() => { - this.cancel() - }).customizeButton().margin({ left: Constants.BUTTON_MARGIN_LEFT }) - Text('|').fontSize(Constants.BUTTON_DIVIDER_FONT_SIZE).fontColor($r('app.color.divider_color')) - .margin({ top: Constants.BUTTON_MARGIN_TOP }) - Button($r('app.string.close')) - .fontSize(Constants.BUTTON_FONT_SIZE) - .onClick(() => { - this.confirm() - }).customizeButton().margin({ right: Constants.BUTTON_MARGIN_RIGHT }) - }.height(Constants.ROW_HEIGHT) - } + .margin({ bottom: Constants.DIALOG_MARGIN_BOTTOM }) + }.width(Constants.FULL_WIDTH) + .height(Constants.FULL_HEIGHT) } - .backgroundColor($r('app.color.default_background_color')) - .borderRadius(Constants.DIALOG_PRIVACY_BORDER_RADIUS) - .width(Constants.DIALOG_PRIVACY_WIDTH) - .margin({ bottom: Constants.DIALOG_MARGIN_BOTTOM }) - }.width(Constants.FULL_WIDTH) - .height(Constants.FULL_HEIGHT) + }.margin({ left: this.isBottomPopover ? Constants.DIALOG_MARGIN_VERTICAL : Constants.DIALOG_MARGIN, + right: this.isBottomPopover ? Constants.DIALOG_MARGIN_VERTICAL : Constants.DIALOG_MARGIN }) } confirm() { @@ -118,4 +127,14 @@ export struct globalDialog { cancel() { this.controller.close() } + + aboutToAppear() { + try { + let dis = display.getDefaultDisplaySync(); + let isVertical = dis.width > dis.height ? false : true + this.isBottomPopover = bottomPopoverTypes.includes(deviceInfo.deviceType) && isVertical + } catch (exception) { + console.error('Failed to obtain the default display object. Code: ' + JSON.stringify(exception)); + }; + } } \ No newline at end of file diff --git a/permissionmanager/src/main/ets/common/model/permissionGroup.ets b/permissionmanager/src/main/ets/common/model/permissionGroup.ets index f78c977..983fbc1 100644 --- a/permissionmanager/src/main/ets/common/model/permissionGroup.ets +++ b/permissionmanager/src/main/ets/common/model/permissionGroup.ets @@ -525,7 +525,6 @@ export const noNeedDisplayApp: string[] = [ ] export const showSubpermissionsGrop: string[] = [ - "PHONE", "CALENDAR", "SMS", "CONTACTS", diff --git a/permissionmanager/src/main/ets/common/utils/constant.ets b/permissionmanager/src/main/ets/common/utils/constant.ets index 6b60e44..420d507 100644 --- a/permissionmanager/src/main/ets/common/utils/constant.ets +++ b/permissionmanager/src/main/ets/common/utils/constant.ets @@ -85,6 +85,14 @@ export default class Constants { static RIGHT_LG_SPAN = 2; static RIGHT_LG_OFFSET = 10; + static DIALOG_GUTTER = 16; + static DIALOG_MARGIN = 16; + static DIALOG_MARGIN_VERTICAL = 12; + static DIALOG_MD_SPAN = 4; + static DIALOG_MD_OFFSET = 2; + static DIALOG_LG_SPAN = 4; + static DIALOG_LG_OFFSET = 4; + // 100% width,height static FULL_WIDTH = '100%'; static FULL_HEIGHT = '100%'; @@ -332,7 +340,6 @@ export default class Constants { static BUTTON_WIDTH = 177; static DIALOG_PRIVACY_BORDER_RADIUS = 32; - static DIALOG_PRIVACY_WIDTH = 395; static DIALOG_PADDING_BOTTOM = 16; // initial check status diff --git a/permissionmanager/src/main/ets/pages/application-tertiary.ets b/permissionmanager/src/main/ets/pages/application-tertiary.ets index ebcd1cb..b07eaa2 100644 --- a/permissionmanager/src/main/ets/pages/application-tertiary.ets +++ b/permissionmanager/src/main/ets/pages/application-tertiary.ets @@ -131,6 +131,7 @@ struct mediaDocumentItem { @State isCheckList: boolean[] = []; // Permission status array @State accurateIsOn: boolean = true; @State api: number = 0; + @State resource: any = {} authorizeDialogController: CustomDialogController = new CustomDialogController({ builder: authorizeDialog({ }), @@ -178,9 +179,14 @@ struct mediaDocumentItem { reason.push(globalThis.permissionLabels[permission]) }) Promise.all([globalThis.context.resourceManager.getString($r("app.string.separator").id), - globalThis.context.resourceManager.getString($r("app.string.reason_suffix").id)]) + globalThis.context.resourceManager.getString($r("app.string.reason_suffix").id), + globalThis.context.resourceManager.getString($r("app.string.and").id), + globalThis.context.resourceManager.getString($r("app.string.period").id), + globalThis.context.resourceManager.getString($r("app.string.comma").id)]) .then(values => { - reason = reason.join(values[0]) + values[1] + this.resource.period = values[3] + this.resource.comma = values[4] + reason = globalThis.currentPermissionGroup == 'SMS' ? (reason.join(values[0]) + values[1]) : (reason.join(values[2]) + values[3]) }) }else { reason = '' @@ -193,6 +199,7 @@ struct mediaDocumentItem { let context = globalThis.context.createBundleContext(routerData) context.resourceManager.getString(reqPermissionDetail.reasonId).then(value => { if (value !== undefined && !hasReason) { + reason = reason.replace(this.resource.period, this.resource.comma) reason += value.slice(Constants.START_SUBSCRIPT, Constants.END_SUBSCRIPT) hasReason = true } diff --git a/permissionmanager/src/main/ets/pages/dialogPlus.ets b/permissionmanager/src/main/ets/pages/dialogPlus.ets index bc67788..bf24d72 100644 --- a/permissionmanager/src/main/ets/pages/dialogPlus.ets +++ b/permissionmanager/src/main/ets/pages/dialogPlus.ets @@ -17,7 +17,6 @@ import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; import bundle from '@ohos.bundle'; import bundleManager from '@ohos.bundle.bundleManager'; import rpc from '@ohos.rpc'; -import deviceInfo from '@ohos.deviceInfo'; import { Log, getPermissionGroup } from '../common/utils/utils' import Constants from '../common/utils/constant' import { BundleFlag } from '../common/model/bundle' @@ -72,85 +71,92 @@ struct PermissionDialog { controller: CustomDialogController build() { - Flex({ justifyContent: FlexAlign.Center, alignItems: ((deviceInfo.deviceType == Constants.DEFAULT_DEVICE_TYPE) - || (deviceInfo.deviceType == Constants.PHONE_DEVICE_TYPE)) ? ItemAlign.End : ItemAlign.Center }) { - Column() { - if ((this.initStatus != Constants.INIT_NEED_TO_WAIT) && this.verify()) { - Image(this.grantGroups[this.count].icon) - .width(Constants.DIALOG_ICON_WIDTH) - .height(Constants.DIALOG_ICON_HEIGHT) - .fillColor($r("app.color.first_font_color")) - .margin({ - top: Constants.DIALOG_ICON_MARGIN_TOP - }) - Text(`${this.count + 1} / ${this.grantGroups.length}`) - .fontSize(Constants.DIALOG_LABEL_FONT_SIZE) - .fontColor($r('app.color.text_secondary_color')) - .lineHeight(Constants.DIALOG_LABEL_LINE_HEIGHT) - .margin({ - top: Constants.DIALOG_LABEL_MARGIN_TOP - }) + GridRow({ columns: { xs: Constants.XS_COLUMNS, sm: Constants.SM_COLUMNS, md: Constants.MD_COLUMNS, lg: Constants.LG_COLUMNS }, gutter: Constants.DIALOG_GUTTER }) { + GridCol({ span: { xs: Constants.XS_SPAN, sm: Constants.SM_SPAN, md: Constants.DIALOG_MD_SPAN, lg: Constants.DIALOG_LG_SPAN }, + offset: {xs: Constants.XS_OFFSET, sm: Constants.SM_OFFSET, md: Constants.DIALOG_MD_OFFSET, lg: Constants.DIALOG_LG_OFFSET} }) { + Flex({ justifyContent: FlexAlign.Center, alignItems: globalThis.isBottomPopover ? ItemAlign.End : ItemAlign.Center }) { Column() { - Row() { - Flex({ justifyContent: FlexAlign.Start }) { - Text(this.showTitle()) - .fontSize(Constants.DIALOG_REQ_FONT_SIZE) - .fontColor($r('app.color.first_font_color')) - .fontWeight(FontWeight.Medium) - .fontSize(Constants.DIALOG_REQ_FONT_SIZE) - .lineHeight(Constants.DIALOG_REQ_LINE_HEIGHT) + if ((this.initStatus != Constants.INIT_NEED_TO_WAIT) && this.verify()) { + Image(this.grantGroups[this.count].icon) + .width(Constants.DIALOG_ICON_WIDTH) + .height(Constants.DIALOG_ICON_HEIGHT) + .fillColor($r("app.color.first_font_color")) + .margin({ + top: Constants.DIALOG_ICON_MARGIN_TOP + }) + if(this.grantGroups.length > 1) { + Text(`${this.count + 1} / ${this.grantGroups.length}`) + .fontSize(Constants.DIALOG_LABEL_FONT_SIZE) + .fontColor($r('app.color.text_secondary_color')) + .lineHeight(Constants.DIALOG_LABEL_LINE_HEIGHT) .margin({ - top: Constants.DIALOG_REQ_MARGIN_TOP, - left: Constants.DIALOG_REQ_MARGIN_LEFT, - right: Constants.DIALOG_REQ_MARGIN_RIGHT + top: Constants.DIALOG_LABEL_MARGIN_TOP }) } - } + Column() { + Row() { + Flex({ justifyContent: FlexAlign.Start }) { + Text(this.showTitle()) + .fontSize(Constants.DIALOG_REQ_FONT_SIZE) + .fontColor($r('app.color.first_font_color')) + .fontWeight(FontWeight.Medium) + .fontSize(Constants.DIALOG_REQ_FONT_SIZE) + .lineHeight(Constants.DIALOG_REQ_LINE_HEIGHT) + .margin({ + top: Constants.DIALOG_REQ_MARGIN_TOP, + left: Constants.DIALOG_REQ_MARGIN_LEFT, + right: Constants.DIALOG_REQ_MARGIN_RIGHT + }) + } + } - Row() { - Flex({ justifyContent: FlexAlign.Start }) { - Text(this.showReason()) - .fontSize(Constants.DIALOG_DESP_FONT_SIZE) - .fontColor($r('app.color.text_secondary_color')) - .fontSize(Constants.DIALOG_DESP_FONT_SIZE) - .lineHeight(Constants.DIALOG_DESP_LINE_HEIGHT) - .margin({ - top: Constants.DIALOG_DESP_MARGIN_TOP, - left: Constants.DIALOG_DESP_MARGIN_LEFT, - right: Constants.DIALOG_DESP_MARGIN_RIGHT, - bottom: Constants.DIALOG_DESP_MARGIN_BOTTOM - }) + Row() { + Flex({ justifyContent: FlexAlign.Start }) { + Text(this.showReason()) + .fontSize(Constants.DIALOG_DESP_FONT_SIZE) + .fontColor($r('app.color.text_secondary_color')) + .fontSize(Constants.DIALOG_DESP_FONT_SIZE) + .lineHeight(Constants.DIALOG_DESP_LINE_HEIGHT) + .margin({ + top: Constants.DIALOG_DESP_MARGIN_TOP, + left: Constants.DIALOG_DESP_MARGIN_LEFT, + right: Constants.DIALOG_DESP_MARGIN_RIGHT, + bottom: Constants.DIALOG_DESP_MARGIN_BOTTOM + }) + } + } + + if(this.locationFlag > Constants.LOCATION_NONE) { + LocationCanvas({ locationFlag: $locationFlag }) + } } } - - if(this.locationFlag > Constants.LOCATION_NONE) { - LocationCanvas({ locationFlag: $locationFlag }) + Row() { + Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { + Button($r('app.string.ban')) + .fontSize(Constants.BUTTON_FONT_SIZE) + .onClick(() => { + this.privacyCancel(this.grantGroups[this.count], this.accessTokenId, this.reqPerms, this.userFixedFlag) + }).customizeButton().margin({ left: Constants.BUTTON_MARGIN_LEFT }) + Text('|').fontSize(Constants.BUTTON_DIVIDER_FONT_SIZE).fontColor($r('app.color.divider_color')) + Button($r('app.string.allow')) + .fontSize(Constants.BUTTON_FONT_SIZE) + .onClick(() => { + this.privacyAccept(this.grantGroups[this.count], this.accessTokenId, this.reqPerms, this.userFixedFlag) + }).customizeButton().margin({ right: Constants.BUTTON_MARGIN_RIGHT }) + } } } - } - Row() { - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Button($r('app.string.ban')) - .fontSize(Constants.BUTTON_FONT_SIZE) - .onClick(() => { - this.privacyCancel(this.grantGroups[this.count], this.accessTokenId, this.reqPerms, this.userFixedFlag) - }).customizeButton().margin({ left: Constants.BUTTON_MARGIN_LEFT }) - Text('|').fontSize(Constants.BUTTON_DIVIDER_FONT_SIZE).fontColor($r('app.color.divider_color')) - Button($r('app.string.allow')) - .fontSize(Constants.BUTTON_FONT_SIZE) - .onClick(() => { - this.privacyAccept(this.grantGroups[this.count], this.accessTokenId, this.reqPerms, this.userFixedFlag) - }).customizeButton().margin({ right: Constants.BUTTON_MARGIN_RIGHT }) - } - } + .backgroundColor($r('app.color.default_background_color')) + .borderRadius(Constants.DIALOG_PRIVACY_BORDER_RADIUS) + .width(Constants.FULL_WIDTH) + .padding({ bottom: Constants.DIALOG_PADDING_BOTTOM }) + .margin({ bottom: Constants.PERMISSION_DIALOG_MARGIN_BOTTOM }) + }.width(Constants.FULL_WIDTH) + .height(Constants.FULL_HEIGHT) } - .backgroundColor($r('app.color.default_background_color')) - .borderRadius(Constants.DIALOG_PRIVACY_BORDER_RADIUS) - .width(Constants.DIALOG_PRIVACY_WIDTH) - .padding({ bottom: Constants.DIALOG_PADDING_BOTTOM }) - .margin({ bottom: Constants.PERMISSION_DIALOG_MARGIN_BOTTOM }) - }.width(Constants.FULL_WIDTH) - .height(Constants.FULL_HEIGHT) + }.margin({ left: globalThis.isBottomPopover ? Constants.DIALOG_MARGIN_VERTICAL : Constants.DIALOG_MARGIN, + right: globalThis.isBottomPopover ? Constants.DIALOG_MARGIN_VERTICAL : Constants.DIALOG_MARGIN }) } showTitle() { @@ -357,9 +363,11 @@ struct PermissionDialog { }) if(group.description) { Promise.all([globalThis.extensionContext.resourceManager.getString($r("app.string.separator").id), - globalThis.extensionContext.resourceManager.getString($r("app.string.reason_suffix").id)]) + globalThis.extensionContext.resourceManager.getString($r("app.string.reason_suffix").id), + globalThis.extensionContext.resourceManager.getString($r("app.string.and").id), + globalThis.extensionContext.resourceManager.getString($r("app.string.period").id)]) .then(values => { - group.description = group.description.join(values[0]) + values[1] + group.description = group.name == 'SMS' ? (group.description.join(values[0]) + values[1]) : (group.description.join(values[2]) + values[3]) this.getReason(group, info, bundleName) }) }else { @@ -378,6 +386,7 @@ struct PermissionDialog { context.resourceManager.getString(reqPermissionDetail.reasonId, (err, value) => { this.initStatus = Constants.INIT_NEED_TO_REFRESH if (value !== undefined && !group.hasReason) { + group.description = group.description.replace(this.resource.period, this.resource.comma) group.description += value.slice(Constants.START_SUBSCRIPT, Constants.END_SUBSCRIPT) group.hasReason = true } @@ -401,6 +410,12 @@ struct PermissionDialog { globalThis.extensionContext.resourceManager.getString($r("app.string.fuzzy_to_exact").id, (err, val) => { this.resource.fuzzy_to_exact = val }) + globalThis.extensionContext.resourceManager.getString($r("app.string.comma").id, (err, val) => { + this.resource.comma = val + }) + globalThis.extensionContext.resourceManager.getString($r("app.string.period").id, (err, val) => { + this.resource.period = val + }) this.reqPerms.forEach(reqPerm => { permissionGroups.forEach(permissionInfo => { if(reqPerm == permissionInfo.permissionName) { diff --git a/permissionmanager/src/main/ets/pages/globalSwitch.ets b/permissionmanager/src/main/ets/pages/globalSwitch.ets index dcc6f03..4587ab2 100644 --- a/permissionmanager/src/main/ets/pages/globalSwitch.ets +++ b/permissionmanager/src/main/ets/pages/globalSwitch.ets @@ -19,7 +19,6 @@ import camera from '@ohos.multimedia.camera'; import bundle from '@ohos.bundle'; import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; import { Log } from '../common/utils/utils' -import deviceInfo from '@ohos.deviceInfo' const MICROPHONE = 'microphone' const CAMERA = 'camera' @@ -54,51 +53,56 @@ struct globalDialog { controller: CustomDialogController build() { - Flex({ justifyContent: FlexAlign.Center, alignItems: ((deviceInfo.deviceType == Constants.DEFAULT_DEVICE_TYPE) - || (deviceInfo.deviceType == Constants.PHONE_DEVICE_TYPE)) ? ItemAlign.End : ItemAlign.Center }) { - Column() { - Text(globalThis.globalState == MICROPHONE ? $r('app.string.global_title_microphone') : - globalThis.globalState == CAMERA ? $r('app.string.global_title_camera') : - $r('app.string.global_title_camera_and_microphone')) - .fontSize(Constants.TEXT_BIG_FONT_SIZE) - .fontColor($r('app.color.label_color')) - .fontWeight(FontWeight.Medium) - .lineHeight(Constants.TEXT_BIG_LINE_HEIGHT) + GridRow({ columns: { xs: Constants.XS_COLUMNS, sm: Constants.SM_COLUMNS, md: Constants.MD_COLUMNS, lg: Constants.LG_COLUMNS }, gutter: Constants.DIALOG_GUTTER }) { + GridCol({ span: { xs: Constants.XS_SPAN, sm: Constants.SM_SPAN, md: Constants.DIALOG_MD_SPAN, lg: Constants.DIALOG_LG_SPAN }, + offset: {xs: Constants.XS_OFFSET, sm: Constants.SM_OFFSET, md: Constants.DIALOG_MD_OFFSET, lg: Constants.DIALOG_LG_OFFSET} }) { + Flex({ justifyContent: FlexAlign.Center, alignItems: globalThis.isBottomPopover ? ItemAlign.End : ItemAlign.Center }) { + Column() { + Text(globalThis.globalState == MICROPHONE ? $r('app.string.global_title_microphone') : + globalThis.globalState == CAMERA ? $r('app.string.global_title_camera') : + $r('app.string.global_title_camera_and_microphone')) + .fontSize(Constants.TEXT_BIG_FONT_SIZE) + .fontColor($r('app.color.label_color')) + .fontWeight(FontWeight.Medium) + .lineHeight(Constants.TEXT_BIG_LINE_HEIGHT) + .width(Constants.FULL_WIDTH) + .padding({ left: Constants.DIALOG_DESP_MARGIN_LEFT, right: Constants.DIALOG_DESP_MARGIN_RIGHT, + top: Constants.ROW_PADDING_TOP, bottom: Constants.ROW_PADDING_BOTTOM}) + Text(globalThis.globalState == MICROPHONE ? $r('app.string.global_desc_microphone') : + globalThis.globalState == CAMERA ? $r('app.string.global_desc_camera') : + $r('app.string.global_desc_camera_and_microphone')) + .fontSize(Constants.TEXT_MIDDLE_FONT_SIZE) + .fontColor($r('app.color.label_color')) + .lineHeight(Constants.TEXT_LINE_HEIGHT) + .width(Constants.FULL_WIDTH) + .padding({ left: Constants.DIALOG_DESP_MARGIN_LEFT, right: Constants.DIALOG_DESP_MARGIN_RIGHT }) + .margin({ bottom: Constants.DIALOG_DESP_MARGIN_BOTTOM }) + Row() { + Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Start }) { + Button($r('app.string.cancel')) + .fontSize(Constants.BUTTON_FONT_SIZE) + .onClick(() => { + this.cancel() + }).customizeButton().margin({ left: Constants.BUTTON_MARGIN_LEFT }) + Text('|').fontSize(Constants.BUTTON_DIVIDER_FONT_SIZE).fontColor($r('app.color.divider_color')) + .margin({ top: Constants.BUTTON_MARGIN_TOP }) + Button($r('app.string.open')) + .fontSize(Constants.BUTTON_FONT_SIZE) + .onClick(() => { + this.accept() + }).customizeButton().margin({ right: Constants.BUTTON_MARGIN_RIGHT }) + }.height(Constants.ROW_HEIGHT) + } + } + .backgroundColor($r('app.color.default_background_color')) + .borderRadius(Constants.DIALOG_PRIVACY_BORDER_RADIUS) .width(Constants.FULL_WIDTH) - .padding({ left: Constants.DIALOG_DESP_MARGIN_LEFT, right: Constants.DIALOG_DESP_MARGIN_RIGHT, - top: Constants.ROW_PADDING_TOP, bottom: Constants.ROW_PADDING_BOTTOM}) - Text(globalThis.globalState == MICROPHONE ? $r('app.string.global_desc_microphone') : - globalThis.globalState == CAMERA ? $r('app.string.global_desc_camera') : - $r('app.string.global_desc_camera_and_microphone')) - .fontSize(Constants.TEXT_MIDDLE_FONT_SIZE) - .fontColor($r('app.color.label_color')) - .lineHeight(Constants.TEXT_LINE_HEIGHT) - .width(Constants.FULL_WIDTH) - .padding({ left: Constants.DIALOG_DESP_MARGIN_LEFT, right: Constants.DIALOG_DESP_MARGIN_RIGHT }) - .margin({ bottom: Constants.DIALOG_DESP_MARGIN_BOTTOM }) - Row() { - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Start }) { - Button($r('app.string.cancel')) - .fontSize(Constants.BUTTON_FONT_SIZE) - .onClick(() => { - this.cancel() - }).customizeButton().margin({ left: Constants.BUTTON_MARGIN_LEFT }) - Text('|').fontSize(Constants.BUTTON_DIVIDER_FONT_SIZE).fontColor($r('app.color.divider_color')) - .margin({ top: Constants.BUTTON_MARGIN_TOP }) - Button($r('app.string.open')) - .fontSize(Constants.BUTTON_FONT_SIZE) - .onClick(() => { - this.accept() - }).customizeButton().margin({ right: Constants.BUTTON_MARGIN_RIGHT }) - }.height(Constants.ROW_HEIGHT) - } + .margin({ bottom: Constants.DIALOG_MARGIN_BOTTOM }) + }.width(Constants.FULL_WIDTH) + .height(Constants.FULL_HEIGHT) } - .backgroundColor($r('app.color.default_background_color')) - .borderRadius(Constants.DIALOG_PRIVACY_BORDER_RADIUS) - .width(Constants.DIALOG_PRIVACY_WIDTH) - .margin({ bottom: Constants.DIALOG_MARGIN_BOTTOM }) - }.width(Constants.FULL_WIDTH) - .height(Constants.FULL_HEIGHT) + }.margin({ left: globalThis.isBottomPopover ? Constants.DIALOG_MARGIN_VERTICAL : Constants.DIALOG_MARGIN, + right: globalThis.isBottomPopover ? Constants.DIALOG_MARGIN_VERTICAL : Constants.DIALOG_MARGIN }) } accept() { diff --git a/permissionmanager/src/main/resources/base/element/string.json b/permissionmanager/src/main/resources/base/element/string.json index ca3b689..0ad8f51 100644 --- a/permissionmanager/src/main/resources/base/element/string.json +++ b/permissionmanager/src/main/resources/base/element/string.json @@ -64,6 +64,18 @@ "name": "separator", "value": ", " }, + { + "name": "and", + "value": " and " + }, + { + "name": "period", + "value": "." + }, + { + "name": "comma", + "value": "," + }, { "name": "visits", "value": "Number of visits: " diff --git a/permissionmanager/src/main/resources/zh_CN/element/string.json b/permissionmanager/src/main/resources/zh_CN/element/string.json index 14096af..f76397e 100644 --- a/permissionmanager/src/main/resources/zh_CN/element/string.json +++ b/permissionmanager/src/main/resources/zh_CN/element/string.json @@ -64,6 +64,18 @@ "name": "separator", "value": "、" }, + { + "name": "and", + "value": "和" + }, + { + "name": "period", + "value": "。" + }, + { + "name": "comma", + "value": "," + }, { "name": "visits", "value": "访问次数:" -- Gitee From d1835e3e072cbbba2b095df435d257ef6d99b1cf Mon Sep 17 00:00:00 2001 From: fanchenxuan Date: Thu, 1 Dec 2022 13:19:43 +0000 Subject: [PATCH 2/2] update permissionmanager/src/main/ets/common/utils/constant.ets. Signed-off-by: fanchenxuan --- .../src/main/ets/common/utils/constant.ets | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/permissionmanager/src/main/ets/common/utils/constant.ets b/permissionmanager/src/main/ets/common/utils/constant.ets index 420d507..fb00a91 100644 --- a/permissionmanager/src/main/ets/common/utils/constant.ets +++ b/permissionmanager/src/main/ets/common/utils/constant.ets @@ -84,6 +84,18 @@ export default class Constants { static RIGHT_MD_OFFSET = 8; static RIGHT_LG_SPAN = 2; static RIGHT_LG_OFFSET = 10; + static XS_COLUMNS = 2; + static XS_SPAN = 2; + static XS_OFFSET = 0; + static SM_COLUMNS = 4; + static SM_SPAN = 4; + static SM_OFFSET = 0; + static MD_COLUMNS = 8; + static MD_SPAN = 8; + static MD_OFFSET = 0; + static LG_COLUMNS = 12; + static LG_SPAN = 8; + static LG_OFFSET = 2; static DIALOG_GUTTER = 16; static DIALOG_MARGIN = 16; -- Gitee