diff --git a/frameworks/com.ohos.permissionmanager/.gitignore b/frameworks/com.ohos.permissionmanager/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..ec5fe0172a0640582c516d2ab45af570467f99fe
--- /dev/null
+++ b/frameworks/com.ohos.permissionmanager/.gitignore
@@ -0,0 +1,6 @@
+/build
+/node_modules
+/.gradle
+/.idea
+local.properties
+package-lock.json
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/config.json b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/config.json
index 6855edeccf372a79e8d1d24974eafcf3cd0d6c40..b0e05013b74a7904406a12f2ff00922bbbf561c8 100644
--- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/config.json
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/config.json
@@ -56,7 +56,8 @@
"pages/authority-secondary",
"pages/authority-tertiary",
"pages/authority-tertiary-groups",
- "pages/other-permissions"
+ "pages/other-permissions",
+ "pages/permission-access-record"
],
"name": ".MainAbility",
"window": {
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/model/permissionGroup.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/model/permissionGroup.ets
index 0f0b2d5e5d04cfebf26cc3512c73eec6c3697e2f..54699affc76ddd91271c9f6c4b1f6ff3bf0fe454 100644
--- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/model/permissionGroup.ets
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/model/permissionGroup.ets
@@ -157,8 +157,8 @@ export const permissionGroups: any[] = [
{
"permissionName": "ohos.permission.WRITE_CALENDAR",
"groupName": "CALENDAR",
- "label": "修建/修改/删除日历",
- "description": "允许应用修建/修改/删除日历。",
+ "label": "新建/修改/删除日历",
+ "description": "允许应用新建/修改/删除日历。",
"groupId": 8
},
{
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/components/backBar.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/components/backBar.ets
index db9331306b2bf1795b4516bab4a8a227d7e68dad..4e1f3f4169e7a8cd4771c4c620e3235659b5b81d 100644
--- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/components/backBar.ets
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/components/backBar.ets
@@ -14,11 +14,14 @@
*/
import router from '@system.router';
+import Resmgr from '@ohos.resourceManager'
import Constants from '../utils/constant.ets';
@Component
export struct backBar {
@Prop title: string; // return title name
+ @Prop recordable: boolean
+ @State record: string = ''
build() {
Column() {
@@ -41,6 +44,21 @@ export struct backBar {
.flexGrow(Constants.BACKBAR_TEXT_FLEX_GROW)
.fontWeight(FontWeight.Bold)
.margin({ top: Constants.BACKBAR_TEXT_MARGIN_TOP })
+ if(this.recordable) {
+ Image($r("app.media.gongneng_dian"))
+ .objectFit(ImageFit.Contain)
+ .height(Constants.BACKBAR_IMAGE_HEIGHT)
+ .width(Constants.BACKBAR_IMAGE_WIDTH)
+ .margin({ top: Constants.BACKBAR_TEXT_MARGIN_TOP, right: Constants.BACKBAR_IMAGE_MARGIN_RIGHT })
+ .bindMenu([
+ {
+ value: this.record,
+ action: () => {
+ router.push({ uri: 'pages/permission-access-record' })
+ }
+ }
+ ])
+ }
}
}
.height(Constants.BACKBAR_HEIGHT)
@@ -48,4 +66,12 @@ export struct backBar {
.alignItems(HorizontalAlign.Start)
.backgroundColor($r('app.color.background_color'))
}
+
+ aboutToAppear() {
+ Resmgr.getResourceManager(Constants.BUNDLE_NAME).then(item => {
+ item.getString($r("app.string.permission_access_record").id, (err, val) => {
+ this.record = val
+ })
+ })
+ }
}
\ No newline at end of file
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/components/search.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/components/search.ets
index d0de619113f3c0c0677ef1623c0c70b9977fc8e1..78cbabfed3631a5a1c92ca953c6c3364be8bf675 100644
--- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/components/search.ets
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/components/search.ets
@@ -51,13 +51,11 @@ export struct textInput {
})
.onEditChanged((isEditing) => {
})
- Column() {
- Image($r('app.media.search'))
- .objectFit(ImageFit.Contain)
- .width(Constants.TEXTINPUT_IMAGE_WIDTH)
- .height(Constants.TEXTINPUT_IMAGE_HEIGHT)
- .margin({ left: Constants.TEXTINPUT_IMAGE_MARGIN_LEFT, top: Constants.TEXTINPUT_IMAGE_MARGIN_TOP })
- }
+ Image($r('app.media.search'))
+ .objectFit(ImageFit.Contain)
+ .width(Constants.TEXTINPUT_IMAGE_WIDTH)
+ .height(Constants.TEXTINPUT_IMAGE_HEIGHT)
+ .position({ x: Constants.TEXTINPUT_IMAGE_MARGIN_LEFT, y: Constants.TEXTINPUT_IMAGE_MARGIN_TOP })
}
}
}
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 6b0450a7815d6753b4f6f6dc34682ddaadfc07f1..027377d2503b8b0669c08e2d7a62ea86aed19554 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
@@ -157,8 +157,8 @@ export const permissionGroups: any[] = [
{
"permissionName": "ohos.permission.WRITE_CALENDAR",
"groupName": "CALENDAR",
- "label": "修建/修改/删除日历",
- "description": "允许应用修建/修改/删除日历。",
+ "label": "新建/修改/删除日历",
+ "description": "允许应用新建/修改/删除日历。",
"groupId": 8
},
{
@@ -178,6 +178,7 @@ export const permissionGroups: any[] = [
{
"permissionName": "ohos.permission.DISTRIBUTED_DATASYNC",
"groupName": "OTHER",
+ "icon": $r("app.media.ic_multi_device_vector"),
"label": "多设备协同",
"description": "发现并访问其他设备。",
"groupId": 11
@@ -371,7 +372,7 @@ export const permissionDescriptions: object = {
"通讯录": "允许应用新建/修改/删除设备上存储的联系人信息。" ,
"通话记录": "允许新建/修改/删除设备上的通话记录信息。" ,
"媒体和文件": "允许应用访问户媒体文件,如视频、音频、图片等。" ,
- "日历": "允许应用修建/修改/删除日历。" ,
+ "日历": "允许应用新建/修改/删除日历。" ,
"健身运动": "允许应用程序读取用户的运动状态。" ,
"身体传感器": "允许应用程序读取用户的健康数据。" ,
"其他权限": "允许应用与远程设备交换用户数据(如图片、音乐、视频、及应用数据等)。"
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 5682ea437b0654f40f3693a98e25b6304e338092..04c4c34b612a438f0387d940cebf51d5b9416034 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
@@ -53,7 +53,7 @@ export default class Constants {
static TEXTINPUT_HEIGHT = 40;
static TEXTINPUT_IMAGE_WIDTH = 16;
static TEXTINPUT_IMAGE_HEIGHT = 16;
- static TEXTINPUT_IMAGE_MARGIN_LEFT = -300;
+ static TEXTINPUT_IMAGE_MARGIN_LEFT = 12;
static TEXTINPUT_IMAGE_MARGIN_TOP = 12;
// grid useSizeType
@@ -89,19 +89,33 @@ export default class Constants {
static FULL_HEIGHT = '100%';
// public property style
+ static PERMISSION = 1;
+ static APPLICATION = 0;
static LAYOUT_WEIGHT = 1;
static FLEX_GROW = 1;
static TEXT_DECORATION_HEIGHT = 1;
static TEXT_MIDDLE_FONT_SIZE = 16;
static TEXT_SMAL_FONT_SIZE = 14;
static TEXT_SMALLER_FONT_SIZE = 12;
+ static TEXT_LINE_HEIGHT = 22;
+ static TEXT_SMALL_LINE_HEIGHT = 19;
static CONSTRAINTSIZE_MINHEIGHT = 48;
static LISTITEM_ROW_HEIGHT = 48;
static LISTITEM_PADDING_LEFT = 24;
+ static LISTITEM_PADDING_LEFT_RECORD = 32;
+ static LISTITEM_MARGIN_BOTTOM = 12;
+ static LISTITEM_MARGIN_BOTTOM_PERMISSION = 14;
+ static LISTITEM_MARGIN_BOTTOM_APPLICATION = 18;
+ static LISTITEM_HEIGHT_PERMISSION = 72;
+ static LISTITEM_HEIGHT_APPLICATION = 80;
static LIST_PADDING_LEFT = 12
static LISTITEM_PADDING_RIGHT = 24;
static IMAGE_HEIGHT = 24;
static IMAGE_WIDTH = 12;
+ static IMAGE_HEIGHT_RECORD = 12;
+ static IMAGE_WIDTH_RECORD = 24;
+ static IMAGE_HEIGHT_RECORD_APPLICATION = 16;
+ static IMAGE_WIDTH_RECORD_APPLICATION = 16;
static BORDER_RADIUS = 24;
static TITLE_MARGIN_BOTTOM = 16;
@@ -165,6 +179,8 @@ export default class Constants {
static MANAGEMENT_IMAGE_WIDTH = 24;
static MANAGEMENT_IMAGE_HEIGHT = 24;
static MANAGEMENT_IMAGE_MARGIN_RIGHT = 16;
+ static MANAGEMENT_IMAGE_MARGIN_RIGHT_RECORD = 24;
+ static MANAGEMENT_IMAGE_MARGIN_LEFT = 8;
static MANAGEMENT_ROW_HEIGHT = 56;
static MANAGEMENT_TEXT_DECORATION_WIDTH = '95%';
static MANAGEMENT_TEXT_DECORATION_MARGIN_LEFT = 40;
@@ -182,6 +198,7 @@ export default class Constants {
static APPLICATION_TEXT_MARGIN_RIGHT = 4;
static APPLICATION_LIST_PADDING_LEFT = 12;
static APPLICATION_LIST_PADDING_RIGHT = 12;
+ static APPLICATION_LIST_MARGIN_BOTTOM = 50;
static APPLICATION_LISTITEM_PADDING_LEFT = 12;
static APPLICATION_LISTITEM_PADDING_RIGHT = 12;
static APPLICATION_TEXTINPUT_PADDING_LEFT = 12;
@@ -191,7 +208,7 @@ export default class Constants {
static APPLICATION_ALPHABETINDEX_MARGIN_TOP = 12;
static APPLICATION_ALPHABETINDEX_WIDTH = 24;
static APPLICATION_TEXT_DECORATION_WIDTH = '90%';
- static APPLICATION_TEXT_DECORATION_MARGIN_LEFT = 60;
+ static APPLICATION_TEXT_DECORATION_MARGIN_LEFT = 68;
// slice
static SLICE_START = 0;
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/utils/utils.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/utils/utils.ets
index 08b2a34bebcb78e05be9f683a03c01fe8190767d..94f38ef4f8d03fa79dbcf475a053469d96374800 100644
--- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/utils/utils.ets
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/common/utils/utils.ets
@@ -395,7 +395,20 @@ function mkRslt(arr) {
export function getPermissionGroup(permission: string) {
for (var i = 0; i < permissionGroups.length; i++) {
if (permissionGroups[i].permissionName == permission) {
- return groups[permissionGroups[i].groupId];
+ if(permissionGroups[i].groupName == 'OTHER') {
+ return {
+ "name": permissionGroups[i].groupName,
+ "groupName": permissionGroups[i].groupName,
+ "label": permissionGroups[i].label,
+ "icon": permissionGroups[i].icon,
+ "description": "",
+ "permissions": [
+ permissionGroups[i].permissionName
+ ]
+ }
+ }else {
+ return groups[permissionGroups[i].groupId]
+ }
}
}
}
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/application-secondary.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/application-secondary.ets
index 87805e41d414433894640e4ad66b9f1c636980e3..e58940276c3af568f37fac54887fb7e26cb04f5c 100644
--- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/application-secondary.ets
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/application-secondary.ets
@@ -204,7 +204,7 @@ struct appNamePlusPage {
Row() {
Column() {
Row() {
- backBar({ title: JSON.stringify(this.routerData.labelId) })
+ backBar({ title: JSON.stringify(this.routerData.labelId), recordable: false })
}
Row() {
Column() {
@@ -317,7 +317,7 @@ struct appNamePlusPage {
}
}
}
- }
+ }.scrollBar(BarState.Off)
}
}
.width(Constants.FULL_WIDTH)
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/application-tertiary.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/application-tertiary.ets
index ec4380c757a239177f8cc85dd7c0981b47a33bd1..bdddffb82a3096c53c70d3f5c41886213bc20ab8 100644
--- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/application-tertiary.ets
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/application-tertiary.ets
@@ -90,7 +90,7 @@ struct mediaDocumentPage {
Row() {
Column() {
Row() {
- backBar({ title: JSON.stringify(backTitle) })
+ backBar({ title: JSON.stringify(backTitle), recordable: false })
}
Row() {
Column() {
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 64ce659924f89c5f9995b5e0130337004a964df2..1a7057028cd6c0ff49cdff50a101a6e2bd92b624 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
@@ -84,11 +84,13 @@ struct authorityManagementPage {
}
if (!index) {
Row() {
- Column()
- .backgroundColor($r('app.color.text_decoration_color'))
- .width(Constants.MANAGEMENT_TEXT_DECORATION_WIDTH)
- .height(Constants.TEXT_DECORATION_HEIGHT)
- .margin({ left: Constants.MANAGEMENT_TEXT_DECORATION_MARGIN_LEFT })
+ Flex() {
+ Column().width(Constants.MANAGEMENT_TEXT_DECORATION_MARGIN_LEFT)
+ Column()
+ .backgroundColor($r('app.color.text_decoration_color'))
+ .height(Constants.TEXT_DECORATION_HEIGHT)
+ .flexGrow(Constants.FLEX_GROW)
+ }
}
}
}.onClick(() => {
@@ -446,7 +448,7 @@ struct authorityManagementPage {
Row() {
Column() {
Row() {
- backBar( { title: JSON.stringify($r('app.string.authority_management')) })
+ backBar( { title: JSON.stringify($r('app.string.authority_management')), recordable: false })
}
Row() {
Column() {
@@ -476,8 +478,7 @@ struct authorityManagementPage {
right: Constants.MANAGEMENT_ROW_PADDING_RIGHT,
top: Constants.MANAGEMENT_ROW_PADDING_TOP
})
- .height(Constants.FULL_HEIGHT)
- }
+ }.scrollBar(BarState.Off)
}.width(Constants.FULL_WIDTH)
}
}.tabBar($r('app.string.authority'))
@@ -555,12 +556,14 @@ struct applicationItem {
}
if (!index) {
Row() {
- Column()
- .backgroundColor($r('app.color.text_decoration_color'))
- .width(Constants.APPLICATION_TEXT_DECORATION_WIDTH)
- .height(Constants.TEXT_DECORATION_HEIGHT)
- .margin({ left: Constants.APPLICATION_TEXT_DECORATION_MARGIN_LEFT })
- }
+ Flex() {
+ Column().width(Constants.APPLICATION_TEXT_DECORATION_MARGIN_LEFT)
+ Column()
+ .backgroundColor($r('app.color.text_decoration_color'))
+ .height(Constants.TEXT_DECORATION_HEIGHT)
+ .flexGrow(Constants.FLEX_GROW)
+ }
+ }.padding({ right: Constants.APPLICATION_LIST_PADDING_RIGHT })
}
}.onClick(() => {
router.push({
@@ -589,24 +592,24 @@ struct applicationItem {
top: Constants.APPLICATION_TEXTINPUT_PADDING_TOP,
right: Constants.APPLICATION_TEXTINPUT_PADDING_RIGHT
})
- Scroll() {
- Row() {
- Flex({ alignItems: ItemAlign.Start }) {
- Column() {
+ Row() {
+ Flex({ alignItems: ItemAlign.Start }) {
+ Column() {
+ Scroll() {
if (!this.applicationItem.length) {
if (this.searchResult) {
Row() {
List() {
ForEach(this.applicationItem.slice(Constants.SLICE_START, this.applicationItem.length - 1),
- (item) => {
- this.ListItemLayout(item, Constants.SLICE_START_INDEX)
- }, item => item.toString())
+ (item) => {
+ this.ListItemLayout(item, Constants.SLICE_START_INDEX)
+ }, item => item.toString())
ForEach(this.applicationItem.slice(Constants.SLICE_END), (item, index) => {
this.ListItemLayout(item, Constants.SLICE_END_INDEX)
}, item => item.toString())
}.backgroundColor($r('app.color.default_background_color')).borderRadius(Constants.BORDER_RADIUS)
}.margin({ top: Constants.MANAGEMENT_ROW_MARGIN_TOP })
- .padding({ left: Constants.MANAGEMENT_ROW_PADDING_LEFT })
+ .padding({ left: Constants.MANAGEMENT_ROW_PADDING_LEFT })
} else {
Row() {
Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
@@ -620,27 +623,27 @@ struct applicationItem {
Row() {
List() {
ForEach(this.applicationItem.slice(Constants.SLICE_START, this.applicationItem.length - 1),
- (item) => {
- this.ListItemLayout(item, Constants.SLICE_START_INDEX)
- }, item => item.toString())
+ (item) => {
+ this.ListItemLayout(item, Constants.SLICE_START_INDEX)
+ }, item => item.toString())
ForEach(this.applicationItem.slice(Constants.SLICE_END), (item, index) => {
this.ListItemLayout(item, Constants.SLICE_END_INDEX)
}, item => item.toString())
}.backgroundColor($r('app.color.default_background_color'))
- .borderRadius(Constants.BORDER_RADIUS)
- .padding({ top: Constants.LIST_PADDING_TOP, bottom: Constants.LIST_PADDING_BOTTOM })
- }.margin({ top: Constants.MANAGEMENT_ROW_MARGIN_TOP })
- .padding({ left: Constants.MANAGEMENT_ROW_PADDING_LEFT })
+ .borderRadius(Constants.BORDER_RADIUS)
+ .padding({ top: Constants.LIST_PADDING_TOP, bottom: Constants.LIST_PADDING_BOTTOM })
+ }.padding({ left: Constants.MANAGEMENT_ROW_PADDING_LEFT })
}
- }
- .backgroundColor($r('app.color.background_color'))
- .height(Constants.APPLICATION_COLUMN_HEIGHT)
- Column() {
- alphabetIndexerComponent({ applicationItem: $applicationItem, oldApplicationItem: $oldApplicationItem })
- }
- .margin({ top: Constants.APPLICATION_ALPHABETINDEX_MARGIN_TOP })
- .width(Constants.APPLICATION_ALPHABETINDEX_WIDTH)
+ }.margin({ top: Constants.MANAGEMENT_ROW_MARGIN_TOP })
+ .scrollBar(BarState.Off)
+ }
+ .backgroundColor($r('app.color.background_color'))
+ .margin({ bottom: Constants.APPLICATION_LIST_MARGIN_BOTTOM })
+ Column() {
+ alphabetIndexerComponent({ applicationItem: $applicationItem, oldApplicationItem: $oldApplicationItem })
}
+ .margin({ top: Constants.APPLICATION_ALPHABETINDEX_MARGIN_TOP })
+ .width(Constants.APPLICATION_ALPHABETINDEX_WIDTH)
}
}
}
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-secondary.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-secondary.ets
index 11d7b62b40768a34a4df7979238c02ef8d893c28..d0f2306e026288b1c8eda5aa7cf7d7e81ad88827 100644
--- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-secondary.ets
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-secondary.ets
@@ -54,7 +54,7 @@ struct appNamePage {
Row() {
Column() {
Row() {
- backBar({ title: JSON.stringify(this.backTitle) })
+ backBar({ title: JSON.stringify(this.backTitle), recordable: false })
}
Row() {
Column() {
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-tertiary-groups.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-tertiary-groups.ets
index 960f33bcb1e42b988eb4749e9386d18a0f29940a..0339a0f6c52ecfe1d18d88ae4762e4c8e43ec4af 100644
--- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-tertiary-groups.ets
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-tertiary-groups.ets
@@ -79,7 +79,7 @@ struct locationInfoPage {
Row() {
Column() {
Row() {
- backBar({ title: JSON.stringify(backTitle) })
+ backBar({ title: JSON.stringify(backTitle), recordable: false })
}
Row() {
Column() {
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-tertiary.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-tertiary.ets
index 6912f74fa71ade15e58abfd46c7dd01180741acc..7fe2c1f73c851fa64b4dccf767c173403bbddfd6 100644
--- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-tertiary.ets
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/authority-tertiary.ets
@@ -74,7 +74,7 @@ struct locationInfoPage {
Row() {
Column() {
Row() {
- backBar({ title: JSON.stringify(backTitle) })
+ backBar({ title: JSON.stringify(backTitle), recordable: false })
}
Row() {
Column() {
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/other-permissions.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/other-permissions.ets
index 7a0882c7524609c3c5fdb8c92b453c6cf7bf4cc9..831063aac117511839636b22072e248b5d2a6a80 100644
--- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/other-permissions.ets
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/other-permissions.ets
@@ -51,7 +51,7 @@ struct appNamePage {
Row() {
Column() {
Row() {
- backBar({ title: JSON.stringify(backTitle) })
+ backBar({ title: JSON.stringify(backTitle), recordable: false })
}
Row() {
Column() {
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/permission-access-record.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/permission-access-record.ets
new file mode 100644
index 0000000000000000000000000000000000000000..faefb7b77f988d8ab3ca6dbbc1b9a103cdb5844d
--- /dev/null
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/MainAbility/pages/permission-access-record.ets
@@ -0,0 +1,490 @@
+/*
+ * Copyright (c) 2022 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import bundle from '@ohos.bundle';
+import router from '@system.router';
+import Resmgr from '@ohos.resourceManager'
+import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
+import privacyManager from '@ohos.privacyManager'
+import { backBar } from "../common/components/backBar.ets";
+import Constants from '../common/utils/constant.ets';
+import { groups, noNeedDisplayApp, userGrantPermissions, permissionGroupIds } from "../common/model/permissionGroup.ets";
+import { getPermissionGroup } from '../common/utils/utils.ets'
+
+var TAG = 'PermissionManager_MainAbility:'
+
+@Extend(Image) function customizeImage(width: number, height: number) {
+ .objectFit(ImageFit.Contain)
+ .width(width)
+ .height(height)
+};
+
+@Entry
+@Component
+struct permissionRecordPage {
+ @State applicationInfos: any[] = []
+ @State appInfos: any[] = []
+ @State permissionApplications: any[] = []
+ @State permissionIndex: number = -1
+ @State applicationIndex: number = -1
+ @State strings: any = {}
+
+ @Builder ListItemLayout(item, index, dimension) {
+ ListItem() {
+ Column() {
+ Column() {
+ Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
+ Row() {
+ if(dimension) {
+ Image(item.icon)
+ .customizeImage(Constants.MANAGEMENT_IMAGE_WIDTH, Constants.MANAGEMENT_IMAGE_HEIGHT)
+ .margin({ right: Constants.MANAGEMENT_IMAGE_MARGIN_RIGHT_RECORD, left: Constants.MANAGEMENT_IMAGE_MARGIN_LEFT })
+ }else {
+ Image(item.icon)
+ .customizeImage(Constants.APPLICATION_IMAGE_WIDTH, Constants.APPLICATION_IMAGE_HEIGHT)
+ .margin({ right: Constants.MANAGEMENT_IMAGE_MARGIN_RIGHT })
+ }
+ Column() {
+ Text(item.groupName)
+ .fontSize(Constants.TEXT_MIDDLE_FONT_SIZE)
+ .fontWeight(FontWeight.Medium)
+ .fontColor($r('app.color.label_color'))
+ .lineHeight(Constants.TEXT_LINE_HEIGHT)
+ .margin({ bottom: Constants.TERTIARY_LABEL_MARGIN_BOTTOM })
+ if(dimension) {
+ Text($r("app.string.visits"))
+ .fontSize(Constants.TEXT_SMAL_FONT_SIZE)
+ .fontColor($r('app.color.label_color_light'))
+ .lineHeight(Constants.TEXT_SMALL_LINE_HEIGHT)
+ }else {
+ Row() {
+ if (item.permissions) {
+ ForEach(item.permissions, permission => {
+ Image(permission.icon)
+ .customizeImage(Constants.IMAGE_WIDTH_RECORD_APPLICATION, Constants.IMAGE_HEIGHT_RECORD_APPLICATION)
+ .margin({ right: Constants.APPLICATION_TEXT_MARGIN_RIGHT })
+ })
+ }
+ }
+ }
+ }.flexGrow(Constants.FLEX_GROW)
+ .alignItems(HorizontalAlign.Start)
+ if(dimension) {
+ if(index == this.permissionIndex) {
+ Image($r('app.media.xiangshangjiantou'))
+ .customizeImage(Constants.IMAGE_WIDTH_RECORD, Constants.IMAGE_HEIGHT_RECORD)
+ }else {
+ Image($r('app.media.xiangxiajiantou'))
+ .customizeImage(Constants.IMAGE_WIDTH_RECORD, Constants.IMAGE_HEIGHT_RECORD)
+ }
+ }else {
+ if(index == this.applicationIndex) {
+ Image($r('app.media.xiangshangjiantou'))
+ .customizeImage(Constants.IMAGE_WIDTH_RECORD, Constants.IMAGE_HEIGHT_RECORD)
+ }else {
+ Image($r('app.media.xiangxiajiantou'))
+ .customizeImage(Constants.IMAGE_WIDTH_RECORD, Constants.IMAGE_HEIGHT_RECORD)
+ }
+ }
+ }
+ .width(Constants.FULL_WIDTH)
+ .height(dimension ? Constants.LISTITEM_HEIGHT_PERMISSION : Constants.LISTITEM_HEIGHT_APPLICATION)
+ }
+ }.onClick(() => {
+ dimension ?
+ (this.permissionIndex = this.permissionIndex == index ? -1 : index) :
+ (this.applicationIndex = this.applicationIndex == index ? -1 : index)
+ if(dimension) {
+ this.permissionApplications = this.appInfos.filter(appInfo => {
+ return appInfo.groupIds.includes(index.toString())
+ })
+ }else {
+ this.getRecords(item.accessTokenId, index)
+ }
+ })
+ if(dimension && (index == this.permissionIndex)) {
+ List() {
+ ForEach(this.permissionApplications, (permissionApplication) => {
+ ListItem() {
+ Row() {
+ Image(permissionApplication.icon)
+ .customizeImage(Constants.APPLICATION_IMAGE_WIDTH, Constants.APPLICATION_IMAGE_HEIGHT)
+ .margin({ right: Constants.MANAGEMENT_IMAGE_MARGIN_RIGHT })
+ Column() {
+ Row().width(Constants.FULL_WIDTH).height(Constants.TEXT_DECORATION_HEIGHT)
+ .backgroundColor($r("app.color.label_color_lightest"))
+ .margin({ bottom: Constants.LISTITEM_MARGIN_BOTTOM_PERMISSION })
+ Text(permissionApplication.groupName)
+ .fontSize(Constants.TEXT_MIDDLE_FONT_SIZE)
+ .fontWeight(FontWeight.Medium)
+ .fontColor($r('app.color.label_color'))
+ .lineHeight(Constants.TEXT_LINE_HEIGHT)
+ .margin({ bottom: Constants.TERTIARY_LABEL_MARGIN_BOTTOM })
+ Text($r("app.string.visits"))
+ .fontSize(Constants.TEXT_SMAL_FONT_SIZE)
+ .fontColor($r('app.color.label_color_light'))
+ .lineHeight(Constants.TEXT_SMALL_LINE_HEIGHT)
+ }.alignItems(HorizontalAlign.Start)
+ .height(Constants.FULL_HEIGHT)
+ }
+ }.height(Constants.LISTITEM_HEIGHT_PERMISSION)
+ .onClick(() => {
+ router.push({
+ uri: 'pages/application-secondary',
+ params: { routerData: {
+ 'bundleName': permissionApplication.name,
+ 'tokenId': permissionApplication.accessTokenId,
+ 'iconId': permissionApplication.icon,
+ 'labelId': permissionApplication.groupName,
+ 'permissions': permissionApplication.reqUserPermissions,
+ 'groupId': permissionApplication.groupIds
+ } }
+ });
+ })
+ })
+ }
+ }
+ if(!dimension && (index == this.applicationIndex)) {
+ List() {
+ ForEach(item.permissions, (permission) => {
+ ListItem() {
+ Row() {
+ Image(permission.icon)
+ .customizeImage(Constants.MANAGEMENT_IMAGE_WIDTH, Constants.MANAGEMENT_IMAGE_HEIGHT)
+ .margin({ right: Constants.MANAGEMENT_IMAGE_MARGIN_RIGHT_RECORD, left: Constants.MANAGEMENT_IMAGE_MARGIN_LEFT })
+ Column() {
+ Row().width(Constants.FULL_WIDTH).height(Constants.TEXT_DECORATION_HEIGHT)
+ .backgroundColor($r("app.color.label_color_lightest"))
+ .margin({ bottom: Constants.LISTITEM_MARGIN_BOTTOM_APPLICATION })
+ Text(permission.label || permission.groupName)
+ .fontSize(Constants.TEXT_MIDDLE_FONT_SIZE)
+ .fontWeight(FontWeight.Medium)
+ .fontColor($r('app.color.label_color'))
+ .lineHeight(Constants.TEXT_LINE_HEIGHT)
+ .margin({ bottom: Constants.TERTIARY_LABEL_MARGIN_BOTTOM })
+ Text(this.strings.visits + permission.count + this.strings.recent_visit + this.getTime(permission.lastTime))
+ .fontSize(Constants.TEXT_SMAL_FONT_SIZE)
+ .fontColor($r('app.color.label_color_light'))
+ .lineHeight(Constants.TEXT_SMALL_LINE_HEIGHT)
+ }.alignItems(HorizontalAlign.Start)
+ .height(Constants.FULL_HEIGHT)
+ }
+ }.height(Constants.LISTITEM_HEIGHT_APPLICATION)
+ .onClick(() => {
+ router.push({
+ uri: 'pages/application-secondary',
+ params: { routerData: {
+ 'bundleName': item.name,
+ 'tokenId': item.accessTokenId,
+ 'iconId': item.icon,
+ 'labelId': item.groupName,
+ 'permissions': item.reqUserPermissions,
+ 'groupId': item.groupIds
+ } }
+ });
+ })
+ })
+ }
+ }
+ }
+ }.padding({ left: dimension ? Constants.LISTITEM_PADDING_LEFT_RECORD : Constants.LISTITEM_PADDING_LEFT,
+ right: Constants.LISTITEM_PADDING_RIGHT })
+ .margin({ bottom: Constants.LISTITEM_MARGIN_BOTTOM })
+ .backgroundColor($r('app.color.default_background_color'))
+ .borderRadius(Constants.BORDER_RADIUS)
+ }
+
+ build() {
+ GridContainer({ gutter: Constants.GUTTER, margin: Constants.GRID_MARGIN }) {
+ Row() {
+ Row()
+ .useSizeType({
+ xs: { span: Constants.LEFT_XS_SPAN, offset: Constants.LEFT_XS_OFFSET },
+ sm: { span: Constants.LEFT_SM_SPAN, offset: Constants.LEFT_SM_OFFSET },
+ md: { span: Constants.LEFT_MD_SPAN, offset: Constants.LEFT_MD_OFFSET },
+ lg: { span: Constants.LEFT_LG_SPAN, offset: Constants.LEFT_LG_OFFSET }
+ })
+ .height(Constants.FULL_HEIGHT)
+ Row() {
+ Column() {
+ Row() {
+ backBar( { title: JSON.stringify($r('app.string.permission_access_record')), recordable: false })
+ }
+ Row() {
+ Column() {
+ Column() {
+ Stack() {
+ Tabs() {
+ TabContent() {
+ Row() {
+ Column() {
+ Scroll() {
+ Row() {
+ List() {
+ ForEach(groups, (item, index) => {
+ this.ListItemLayout(item, index, Constants.PERMISSION)
+ }, item => item.toString())
+ }.padding({ top: Constants.LIST_PADDING_TOP, bottom: Constants.LIST_PADDING_BOTTOM })
+ }.padding({
+ left: Constants.MANAGEMENT_ROW_PADDING_LEFT,
+ right: Constants.MANAGEMENT_ROW_PADDING_RIGHT,
+ top: Constants.MANAGEMENT_ROW_PADDING_TOP
+ })
+ }.scrollBar(BarState.Off)
+ }.width(Constants.FULL_WIDTH)
+ }
+ }.tabBar($r('app.string.authority'))
+ TabContent() {
+ Row() {
+ Column() {
+ Scroll() {
+ Row() {
+ List() {
+ ForEach(this.appInfos, (item, index) => {
+ this.ListItemLayout(item, index, Constants.APPLICATION)
+ }, item => item.toString())
+ }.padding({ top: Constants.LIST_PADDING_TOP, bottom: Constants.LIST_PADDING_BOTTOM })
+ }.padding({
+ left: Constants.MANAGEMENT_ROW_PADDING_LEFT,
+ right: Constants.MANAGEMENT_ROW_PADDING_RIGHT,
+ top: Constants.MANAGEMENT_ROW_PADDING_TOP
+ })
+ }.scrollBar(BarState.Off)
+ }.width(Constants.FULL_WIDTH)
+ }
+ }.tabBar($r('app.string.application'))
+ }
+ .barWidth(Constants.BAR_WIDTH)
+ .barMode(BarMode.Fixed)
+ }.height(Constants.FULL_HEIGHT)
+ }
+ }
+ }
+ .layoutWeight(Constants.LAYOUT_WEIGHT)
+ }
+ }
+ .useSizeType({
+ xs: { span: Constants.MIDDLE_XS_SPAN, offset: Constants.MIDDLE_XS_OFFSET },
+ sm: { span: Constants.MIDDLE_SM_SPAN, offset: Constants.MIDDLE_SM_OFFSET },
+ md: { span: Constants.MIDDLE_MD_SPAN, offset: Constants.MIDDLE_MD_OFFSET },
+ lg: { span: Constants.MIDDLE_LG_SPAN, offset: Constants.MIDDLE_LG_OFFSET }
+ })
+ .height(Constants.FULL_HEIGHT)
+ Row()
+ .useSizeType({
+ xs: { span: Constants.RIGHT_XS_SPAN, offset: Constants.RIGHT_XS_OFFSET },
+ sm: { span: Constants.RIGHT_SM_SPAN, offset: Constants.RIGHT_SM_OFFSET },
+ md: { span: Constants.RIGHT_MD_SPAN, offset: Constants.RIGHT_MD_OFFSET },
+ lg: { span: Constants.RIGHT_LG_SPAN, offset: Constants.RIGHT_LG_OFFSET }
+ })
+ .height(Constants.FULL_HEIGHT)
+ }
+ .height(Constants.FULL_HEIGHT)
+ .width(Constants.FULL_WIDTH)
+ .backgroundColor($r("sys.color.ohos_id_color_sub_background"))
+ .opacity(Constants.MANAGEMENT_TRANSPARENCY)
+ }
+ }
+
+/**
+ * Get time
+ * @param {Number} The time stamp
+ */
+ getTime(time, format='MM月DD日 NNHH:mm') {
+ if(this.strings.morning == 'am') { format = 'MM/DD HH:mm NN' }
+ let date = new Date(time)
+ let config = {
+ MM: date.getMonth() + 1,
+ DD: date.getDate(),
+ NN: date.getHours() >= 12 ? this.strings.afternoon : this.strings.morning,
+ HH: date.getHours() >= 12 ? date.getHours() - 12 : date.getHours(),
+ mm: date.getMinutes() > 10 ? date.getMinutes() : '0' + date.getMinutes(),
+ }
+
+ for(const key in config){
+ format = format.replace(key,config[key])
+ }
+ return format
+ }
+
+/**
+ * Get app name resource
+ * @param {Number} index index of all app permissions array
+ * @param {String} bundleName Package names
+ */
+ updateAppLabel(index, bundleName) {
+ Resmgr.getResourceManager(bundleName).then(item => {
+ if (index >= this.applicationInfos.length) {
+ return;
+ }
+ var info = this.applicationInfos[index];
+ item.getString(info['labelId'], (error, value) => {
+ if (value == undefined) {
+ info['groupName'] = info.label;
+ } else {
+ info['groupName'] = value;
+ }
+ })
+ }).catch(error => {
+ console.error(TAG + 'Resmgr.getResourceManager failed. Cause: ' + JSON.stringify(error));
+ })
+ }
+
+/**
+ * Get app icon resources
+ * @param {Number} index index of all app permissions array
+ * @param {String} bundleName Package names
+ */
+ updateAppIcon(index, bundleName) {
+ Resmgr.getResourceManager(bundleName).then(item => {
+ if (index >= this.applicationInfos.length) {
+ return;
+ }
+ var info = this.applicationInfos[index];
+ item.getMediaBase64(info['iconId'], (error, value) => {
+ info['icon'] = value;
+ })
+ }).catch(error => {
+ console.error(TAG + 'Resmgr.getResourceManager failed. Cause: ' + JSON.stringify(error));
+ })
+ }
+
+ async getApplicationInfo(info) {
+ var reqUserPermissions: string[] = [];
+ var permissionGroups: any[] = [];
+ var acManager = abilityAccessCtrl.createAtManager()
+ for (let j = 0; j < info.reqPermissions.length; j++) {
+ var permission = info.reqPermissions[j];
+ var flag = await acManager.getPermissionFlags(info.appInfo.accessTokenId, permission)
+ if(flag == Constants.PRE_AUTHORIZATION_NOT_MODIFIED) {
+ continue
+ }
+ if (userGrantPermissions.indexOf(permission) != -1) {
+ reqUserPermissions.push(permission);
+ }
+ }
+ reqUserPermissions.forEach(permission => {
+ var group = getPermissionGroup(permission)
+ if(!group) {
+ console.info(TAG + "permission not find:" + permission)
+ }else {
+ var exist = permissionGroups.find(permissionGroup => permissionGroup.name == group.name)
+ if(!exist) {
+ group.count = 0
+ group.lastTime = 0
+ permissionGroups.push(group)
+ }
+ }
+ })
+
+ let groupIds = [];
+ for (let i = 0; i < reqUserPermissions.length; i++) {
+ if(groupIds.indexOf(permissionGroupIds[reqUserPermissions[i]]) == -1){
+ groupIds.push(permissionGroupIds[reqUserPermissions[i]]);
+ }
+ }
+
+ info.appInfo.reqUserPermissions = reqUserPermissions
+ info.appInfo.permissions = permissionGroups
+ info.appInfo.groupIds = groupIds
+ this.applicationInfos.push(info.appInfo)
+ }
+
+ getApplicationPermissions() {
+ bundle.getAllBundleInfo(Constants.PARMETER_BUNDLE_FLAG).then(async allBundleInfo => {
+ if (allBundleInfo.length <= 0) {
+ console.info(TAG + 'bundle.getAllBundleInfo result.length less than or equal to zero');
+ return;
+ }
+ var infoIndex = 0;
+ const this_ = this;
+ for (let i = 0; i < allBundleInfo.length; i++) {
+ var info = allBundleInfo[i];
+ // Filter blank icon icon and text label resources
+ try {
+ const ret = await bundle.queryAbilityByWant({
+ bundleName: info.name,
+ action: "action.system.home",
+ entities: ["entity.system.home"]
+ }, bundle.BundleFlag.GET_ABILITY_INFO_WITH_APPLICATION, Constants.USERID);
+ } catch(e) {
+ continue;
+ }
+
+ if (noNeedDisplayApp.indexOf(info.name) != -1) {
+ continue;
+ }
+ await this.getApplicationInfo(info);
+ this.updateAppLabel(infoIndex, info.name);
+ this.updateAppIcon(infoIndex, info.name);
+ infoIndex ++;
+ }
+ setTimeout(function(){ this_.appInfos = this_.applicationInfos }, 10)
+ })
+ }
+
+ getRecords(tokenId, index) {
+ let request = {
+ "tokenId": tokenId,
+ "isRemote": false,
+ "permissionNames": [],
+ "beginTime": 0,
+ "endTime": 0,
+ "flag": 1
+ }
+ privacyManager.getPermissionUsedRecords(request).then(records => {
+ console.info(TAG + "records: " + JSON.stringify(records.bundleRecords))
+ if(records.bundleRecords.length) {
+ records.bundleRecords.permissionRecords.forEach(permissionRecord => {
+ this.appInfos[index].permissions.forEach(group => {
+ if(group.permissions.includes(permissionRecord.permissionName)) {
+ group.count += permissionRecord.accessCount
+ group.count += permissionRecord.rejectCount
+ var lastTime = permissionRecord.lastAccessTime > permissionRecord.lastRejectTime
+ ? permissionRecord.lastAccessTime : permissionRecord.lastRejectTime
+ lastTime > group.lastTime ? group.lastTime = lastTime : ''
+ }
+ })
+ })
+ }
+ }).catch(error => {
+ console.error(TAG + 'getPermissionUsedRecords failed. Cause: ' + JSON.stringify(error));
+ })
+ }
+
+ getStrings() {
+ Resmgr.getResourceManager(Constants.BUNDLE_NAME).then(item => {
+ item.getString($r("app.string.visits").id, (err, val) => {
+ this.strings.visits = val
+ })
+ item.getString($r("app.string.recent_visit").id, (err, val) => {
+ this.strings.recent_visit = val
+ })
+ item.getString($r("app.string.morning").id, (err, val) => {
+ this.strings.morning = val
+ })
+ item.getString($r("app.string.afternoon").id, (err, val) => {
+ this.strings.afternoon = val
+ })
+ }).catch(error => {
+ console.error(TAG + 'Resmgr.getResourceManager failed. Cause: ' + JSON.stringify(error));
+ })
+ }
+
+ aboutToAppear() {
+ this.getApplicationPermissions()
+ this.getStrings()
+ }
+}
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/element/color.json b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/element/color.json
index 338e7bda25dd09f972369c35c5d70d0f66a69510..683aa6658d2ef8dac5965f624082551f1cacf8e4 100644
--- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/element/color.json
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/element/color.json
@@ -16,6 +16,10 @@
"name": "label_color_lighter",
"value": "#66182431"
},
+ {
+ "name": "label_color_lightest",
+ "value": "#0D182431"
+ },
{
"name": "background_color",
"value": "#F4F5F7"
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/element/string.json b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/element/string.json
index 21b12d11c2b468c7204cf5c1d7929ce2c07860bb..9fc01079c16395b7816770e6d812c259e75d4469 100644
--- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/element/string.json
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/element/string.json
@@ -2,103 +2,87 @@
"string": [
{
"name": "permissionmanager_MainAbility",
- "value": "permissionmanager_MainAbility"
+ "value": "authority management"
},
{
"name": "description_mainability",
- "value": "eTS_Empty Ability"
- },
- {
- "name": "entry_MainAbility",
- "value": "entry_MainAbility"
+ "value": "authority management"
},
{
"name": "permissionmanager_GrantAbility",
- "value": "permissionmanager_GrantAbility"
- },
- {
- "name": "permissionmanager_description",
- "value": "eTS_Empty Ability"
+ "value": "apply for permission"
},
{
"name": "no_permission",
- "value": "暂无权限"
- },
- {
- "name": "no_data",
- "value": "暂无数据"
+ "value": "no permission"
},
{
"name": "access_permission",
- "value": "访问权限"
+ "value": "access permission"
},
{
"name": "permission_access_record",
- "value": "权限访问记录"
+ "value": "permission access record"
},
{
"name": "authority_management",
- "value": "权限管理"
- },
- {
- "name": "authority_tertiary_description",
- "value": "个应用获取此权限"
+ "value": "authority management"
},
{
"name": "other_permissions",
- "value": "其它权限"
+ "value": "other permissions"
},
{
"name": "application",
- "value": " 应用 "
+ "value": " application "
},
{
"name": "authority",
- "value": " 权限 "
- },
- {
- "name": "media_document",
- "value": "媒体和文件"
+ "value": " authority "
},
{
"name": "textInput_placeholder",
- "value": "搜索应用"
+ "value": "search application"
},
{
"name": "allowed",
- "value": "已允许"
+ "value": "allowed"
},
{
"name": "banned",
- "value": "已禁止"
+ "value": "banned"
},
{
"name": "description_grantability",
- "value": "eTS_Empty Ability"
+ "value": "apply for permission"
},
{
- "name": "entry_GrantAbility",
- "value": "entry_GrantAbility"
+ "name": "Authorization_failed",
+ "value": "Authorization failure!"
},
{
- "name": "Authorization_failed",
- "value": "授权失败!"
+ "name": "reason_suffix",
+ "value": " and other permissions."
},
{
- "name": "other_permission_label",
- "value": "多设备协同"
+ "name": "separator",
+ "value": ","
},
{
- "name": "other_permission_label_description",
- "value": "多设备协同访问权限"
+ "name": "visits",
+ "value": "Number of visits:"
},
{
- "name": "reason_suffix",
- "value": "等权限。"
+ "name": "recent_visit",
+ "value": ";Recent visits:"
},
{
- "name": "separator",
- "value": "、"
+ "name": "morning",
+ "value": "am"
+ },
+ {
+ "name": "afternoon",
+ "value": "pm"
}
]
}
\ No newline at end of file
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/media/gongneng_dian.svg b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/media/gongneng_dian.svg
new file mode 100644
index 0000000000000000000000000000000000000000..50265c1b1b2f4192b7f0b6f784377e70a3f47437
--- /dev/null
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/media/gongneng_dian.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/media/ic_multi_device_vector.svg b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/media/ic_multi_device_vector.svg
index 00f9c08ea1f831da03143ffed5415f49d29a6128..b85bdf10aa90c6406df61166bd13ca9392785729 100644
--- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/media/ic_multi_device_vector.svg
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/media/ic_multi_device_vector.svg
@@ -2,6 +2,6 @@
\ No newline at end of file
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/media/xiangshangjiantou.svg b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/media/xiangshangjiantou.svg
new file mode 100644
index 0000000000000000000000000000000000000000..24d372dc5fc67af6d7205021bacfe33e2088f6bb
--- /dev/null
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/media/xiangshangjiantou.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/media/xiangxiajiantou.svg b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/media/xiangxiajiantou.svg
new file mode 100644
index 0000000000000000000000000000000000000000..42116e2132a3154ade6f97c68feb9082161f7c99
--- /dev/null
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/base/media/xiangxiajiantou.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/zh_CN/element/string.json b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/zh_CN/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..eff2b33b08b03ba82c0218c4f3aea0c7d05306c9
--- /dev/null
+++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/resources/zh_CN/element/string.json
@@ -0,0 +1,88 @@
+{
+ "string": [
+ {
+ "name": "permissionmanager_MainAbility",
+ "value": "权限管理"
+ },
+ {
+ "name": "description_mainability",
+ "value": "权限管理"
+ },
+ {
+ "name": "permissionmanager_GrantAbility",
+ "value": "权限申请"
+ },
+ {
+ "name": "no_permission",
+ "value": "暂无权限"
+ },
+ {
+ "name": "access_permission",
+ "value": "访问权限"
+ },
+ {
+ "name": "permission_access_record",
+ "value": "权限访问记录"
+ },
+ {
+ "name": "authority_management",
+ "value": "权限管理"
+ },
+ {
+ "name": "other_permissions",
+ "value": "其它权限"
+ },
+ {
+ "name": "application",
+ "value": " 应用 "
+ },
+ {
+ "name": "authority",
+ "value": " 权限 "
+ },
+ {
+ "name": "textInput_placeholder",
+ "value": "搜索应用"
+ },
+ {
+ "name": "allowed",
+ "value": "已允许"
+ },
+ {
+ "name": "banned",
+ "value": "已禁止"
+ },
+ {
+ "name": "description_grantability",
+ "value": "权限申请"
+ },
+ {
+ "name": "Authorization_failed",
+ "value": "授权失败!"
+ },
+ {
+ "name": "reason_suffix",
+ "value": "等权限。"
+ },
+ {
+ "name": "separator",
+ "value": "、"
+ },
+ {
+ "name": "visits",
+ "value": "访问次数:"
+ },
+ {
+ "name": "recent_visit",
+ "value": ";最近访问:"
+ },
+ {
+ "name": "morning",
+ "value": "上午"
+ },
+ {
+ "name": "afternoon",
+ "value": "下午"
+ }
+ ]
+}
\ No newline at end of file