diff --git a/entry/src/main/ets/MainAbility/AutoManagerAbility.ts b/entry/src/main/ets/MainAbility/AutoManagerAbility.ts index a39cc1c584aebb2e7c79c617100e4135177c0ff8..cebe8dbda6856658279a3113b9797e003f7e8910 100644 --- a/entry/src/main/ets/MainAbility/AutoManagerAbility.ts +++ b/entry/src/main/ets/MainAbility/AutoManagerAbility.ts @@ -18,15 +18,15 @@ import logger from '../common/logger'; import type Want from '@ohos.app.ability.Want'; import type AbilityConstant from '@ohos.app.ability.AbilityConstant'; import type window from '@ohos.window'; -import { GlobalContext } from './MainAbility'; const TAG = 'AutoManagerAbility'; export default class AutoManagerAbility extends UIAbility { + private localStorage: LocalStorage = new LocalStorage(); + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { logger.info(TAG, 'onCreate'); - GlobalContext.getContext().setObject('autoManagerAbilityWant', want); - GlobalContext.getContext().setObject('autoManagerAbilityContext', this.context); + this.localStorage.setOrCreate('autoManagerAbilityWant', want); } onDestroy(): void { @@ -36,7 +36,7 @@ export default class AutoManagerAbility extends UIAbility { onWindowStageCreate(windowStage: window.WindowStage): void { // Main window is created, set main page for this ability logger.info(TAG, 'onWindowStageCreate'); - windowStage.loadContent('pages/autoManager/managerStart', null); + windowStage.loadContent('pages/autoManager/managerStart', this.localStorage); } onWindowStageDestroy(): void { diff --git a/entry/src/main/ets/MainAbility/MainAbility.ts b/entry/src/main/ets/MainAbility/MainAbility.ts index 8ca92e7f6908d8f275f3cb9cef4874b08662b72b..d2f510c5474a81dce2685c1df4794464a49b5215 100644 --- a/entry/src/main/ets/MainAbility/MainAbility.ts +++ b/entry/src/main/ets/MainAbility/MainAbility.ts @@ -16,34 +16,14 @@ import UIAbility from '@ohos.app.ability.UIAbility'; import Logger from '../common/logger'; -export class GlobalContext { - private constructor() {} - private static instance: GlobalContext; - private _objects = new Map(); - - public static getContext(): GlobalContext { - if (!GlobalContext.instance) { - GlobalContext.instance = new GlobalContext(); - } - return GlobalContext.instance; - } - - getObject(value: string): Object | undefined { - return this._objects.get(value); - } - - setObject(key: string, objectClass: Object): void { - this._objects.set(key, objectClass); - } -} - const TAG = 'MainAbility'; export default class MainAbility extends UIAbility { + private localStorage: LocalStorage = new LocalStorage(); + onCreate(want, launchParam): void { Logger.info(TAG, 'onCreate'); - GlobalContext.getContext().setObject('adminProvisioningWant', want); - GlobalContext.getContext().setObject('adminProvisioningContext', this.context); + this.localStorage.setOrCreate('adminProvisioningWant', want); } onDestroy(): void { @@ -53,7 +33,7 @@ export default class MainAbility extends UIAbility { onWindowStageCreate(windowStage): void { // Main window is created, set main page for this ability Logger.info(TAG, 'onWindowStageCreate'); - windowStage.setUIContent(this.context, 'pages/applicationInfo', null); + windowStage.setUIContent(this.context, 'pages/applicationInfo', this.localStorage); } onWindowStageDestroy(): void { diff --git a/entry/src/main/ets/common/appManagement/appDetailData.ets b/entry/src/main/ets/common/appManagement/appDetailData.ets index e19c73b31c9251cded8ae7f86cccb3298c31fcfe..6b3e483488edaddb02ce6f5b88ee480c794649df 100644 --- a/entry/src/main/ets/common/appManagement/appDetailData.ets +++ b/entry/src/main/ets/common/appManagement/appDetailData.ets @@ -21,7 +21,6 @@ import utils from '../utils' import { AppPermission, MyApplicationInfo } from '../myApplicationInfo' import Want from '@ohos.app.ability.Want'; import resourceManager from '@ohos.resourceManager'; -import { GlobalContext } from '../../MainAbility/MainAbility'; import common from '@ohos.app.ability.common'; let icon_default = $r('app.media.icon'); @@ -54,7 +53,7 @@ export class AppDetailData { } let data: Array = []; try { - bundle.queryExtensionAbilityInfo(want, bundle.ExtensionAbilityType.ENTERPRISE_ADMIN, + await bundle.queryExtensionAbilityInfo(want, bundle.ExtensionAbilityType.ENTERPRISE_ADMIN, bundle.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_WITH_APPLICATION, userId.localId).then((result)=>{ data = result; }) @@ -141,7 +140,7 @@ export class AppDetailData { async terminateAbilityPage() { logger.info(TAG, 'terminateAbilityPage in:'); - await (GlobalContext.getContext().getObject("adminProvisioningContext") as common.UIAbilityContext).terminateSelf(); + await (getContext(this) as common.UIAbilityContext).terminateSelf(); } getPermissionInfoVal(permissionName: string): number { diff --git a/entry/src/main/ets/pages/applicationInfo.ets b/entry/src/main/ets/pages/applicationInfo.ets index 35bd5ee875cb510f2356b44810c405576fb5a4c8..59d5de793260a9f5cbcb3a8738c741c5ca899c10 100644 --- a/entry/src/main/ets/pages/applicationInfo.ets +++ b/entry/src/main/ets/pages/applicationInfo.ets @@ -26,7 +26,7 @@ import { AppPermission, MyApplicationInfo } from '../common/myApplicationInfo' import Want from '@ohos.app.ability.Want'; import adminManager from '@ohos.enterprise.adminManager'; import { BusinessError } from '@ohos.base'; -import { GlobalContext } from '../MainAbility/MainAbility'; +import common from '@ohos.app.ability.common'; let appInfo: MyApplicationInfo; let elementNameVal: Want; @@ -51,6 +51,7 @@ struct ApplicationInfo { @State deviceAdminDisActive: string = ''; @State enterpriseName: string = ''; @State enterpriseDescription: string = ''; + private storage = LocalStorage.getShared(); build() { Column() { @@ -116,7 +117,7 @@ struct ApplicationInfo { }); List() { - ForEach(appInfo.appPermissionList, (item: AppPermission) => { + ForEach(this.applicationInfo.appPermissionList, (item: AppPermission) => { ListItem() { permissionListComponent({ permissionName: item.permissionLabel, @@ -209,13 +210,6 @@ struct ApplicationInfo { } aboutToAppear(): void { - appInfo = { - appIcon: '', - appTitle: '', - appBundleName: '', - appPermissionList: [], - }; - elementNameVal = { abilityName: '', bundleName: '', @@ -228,7 +222,7 @@ struct ApplicationInfo { isAdminTypeVal = 0; logger.info(TAG, 'aboutToAppear in'); - this.getCheckAbilityList(appInfo, elementNameVal, isAdminTypeVal); + this.getCheckAbilityList(this.applicationInfo, elementNameVal, isAdminTypeVal); logger.info(TAG, 'aboutToAppear out'); } @@ -340,7 +334,8 @@ struct ApplicationInfo { async getAbilityWantVal(appInfo: MyApplicationInfo, elementNameVal: Want, adminType: adminManager.AdminType) { logger.info(TAG, 'getAbilityWantVal in:'); - let data = GlobalContext.getContext().getObject("adminProvisioningWant") as Want; + this.storage = LocalStorage.getShared(); + let data = this.storage.get('adminProvisioningWant'); if (!utils.checkObjPropertyValid(data, 'parameters.elementName.abilityName') || !utils.checkObjPropertyValid(data, 'parameters.enterprise.name') @@ -348,6 +343,7 @@ struct ApplicationInfo { || !utils.isValid(data.parameters?.activeType) || !utils.isValid((data.parameters?.enterprise as Record).description)) { logger.warn(TAG, 'data.parameters = ' + JSON.stringify(data.parameters)); + (getContext(this) as common.UIAbilityContext).terminateSelf(); return; } diff --git a/entry/src/main/ets/pages/autoManager/managerStart.ets b/entry/src/main/ets/pages/autoManager/managerStart.ets index 180f4138e2712fb1fdab12684f9e41dfb9d4be9d..4ebdce1f1a1a8122bf2e5c93399b8d605cee2a3e 100644 --- a/entry/src/main/ets/pages/autoManager/managerStart.ets +++ b/entry/src/main/ets/pages/autoManager/managerStart.ets @@ -17,8 +17,8 @@ import router from '@ohos.router'; import utils from '../../common/utils' import doubleButtonComponent from '../component/autoManager/doubleButtonComponent' import logger from '../../common/logger' -import { GlobalContext } from '../../MainAbility/MainAbility'; import Want from '@ohos.app.ability.Want'; +import common from '@ohos.app.ability.common'; const TAG = 'ManagerStart'; @@ -31,6 +31,7 @@ struct ManagerStart { @State textManagerAfter: Resource = $r('app.string.textManagerAfter'); @State textTerms: Resource = $r('app.string.textTerms'); @State textTermsBefore: Resource = $r('app.string.textTermsBefore'); + private storage = LocalStorage.getShared(); build() { Column() { @@ -176,7 +177,8 @@ struct ManagerStart { } parseManageParameter() { - let data = GlobalContext.getContext().getObject('autoManagerAbilityWant') as Want; + this.storage = LocalStorage.getShared(); + let data = this.storage.get('autoManagerAbilityWant'); if (!utils.checkObjPropertyValid(data, 'parameters.elementName.abilityName') || !utils.checkObjPropertyValid(data, 'parameters.enterprise.name') @@ -185,7 +187,8 @@ struct ManagerStart { || !utils.isValid(data.parameters?.termsName) || (!utils.isValid(data.parameters?.termsContent) || !(data.parameters?.termsContent instanceof Array)) || !utils.isValid((data.parameters?.enterprise as Record).description)) { - logger.error(TAG, 'parseManageParameter fail! parameters is not valid') + logger.error(TAG, 'parseManageParameter fail! parameters is not valid'); + (getContext(this) as common.UIAbilityContext).terminateSelf(); return; } diff --git a/entry/src/main/ets/pages/component/autoManager/doubleButtonComponent.ets b/entry/src/main/ets/pages/component/autoManager/doubleButtonComponent.ets index e061ed01872ad281a5d0b3b3ef8c108dd9ca4e4f..a134255484c6d59dd1280e4971e6556db987b729 100644 --- a/entry/src/main/ets/pages/component/autoManager/doubleButtonComponent.ets +++ b/entry/src/main/ets/pages/component/autoManager/doubleButtonComponent.ets @@ -14,13 +14,11 @@ */ import bundle from '@ohos.bundle.bundleManager'; -import router from '@ohos.router'; import baseData from '../../../common/baseData' import logger from '../../../common/logger' import resetFactory from '../../../common/resetFactory' import utils from '../../../common/utils' import Want from '@ohos.app.ability.Want'; -import { GlobalContext } from '../../../MainAbility/MainAbility'; import common from '@ohos.app.ability.common'; const TAG = 'DoubleButtonComponent'; @@ -58,7 +56,7 @@ export default struct DoubleButtonComponent { if (this.returnDialogFlag) { this.buttonDialog.open(); } else { - router.back(); + (getContext(this) as common.UIAbilityContext).terminateSelf(); } }) } @@ -111,8 +109,7 @@ export default struct DoubleButtonComponent { logger.info(TAG, 'startSpecificActionAbility data len=' + data.length + ' | data content=' + data[0].name) try { - await (GlobalContext.getContext() - .getObject("autoManagerAbilityContext") as common.UIAbilityContext).startAbility({ + await (getContext(this) as common.UIAbilityContext).startAbility({ bundleName: this.nextBundleName, abilityName: data[0].name }); @@ -120,8 +117,7 @@ export default struct DoubleButtonComponent { logger.error(TAG, "startSpecificActionAbility startAbility fail! " + e) } } - await (GlobalContext.getContext() - .getObject("autoManagerAbilityContext") as common.UIAbilityContext).terminateSelf(); + await (getContext(this) as common.UIAbilityContext).terminateSelf(); } } diff --git a/entry/src/main/ets/pages/component/headComponent.ets b/entry/src/main/ets/pages/component/headComponent.ets index 57af2160ade596dd98d957bb13b9abdcf6bc3690..2d4f7246de34842d3e1c606614c3179168f9a8d2 100644 --- a/entry/src/main/ets/pages/component/headComponent.ets +++ b/entry/src/main/ets/pages/component/headComponent.ets @@ -13,7 +13,7 @@ * limitations under the License. */ -import router from '@ohos.router'; +import common from '@ohos.app.ability.common'; @Component export default struct HeadComponent { @@ -32,7 +32,7 @@ export default struct HeadComponent { .backgroundColor($r('app.color.color_00000000_transparent')) .visibility(Visibility.Visible) .onClick(() => { - router.back(); + (getContext(this) as common.UIAbilityContext).terminateSelf(); }) Text(this.headName) .height($r('app.float.wh_value_56')) diff --git a/entry/src/main/module.json b/entry/src/main/module.json index 27d29958fdd732296caf9a741b6ee847416824ef..8ff0f32f64c6fd58722ff3963b7a11a7b0aecaca 100644 --- a/entry/src/main/module.json +++ b/entry/src/main/module.json @@ -65,7 +65,7 @@ "name": "ohos.permission.MANAGE_LOCAL_ACCOUNTS" }, { - "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" + "name": "ohos.permission.GET_BUNDLE_INFO" }, { "name": "ohos.permission.MANAGE_ENTERPRISE_DEVICE_ADMIN" diff --git a/entry/src/main/module.json5 b/entry/src/main/module.json5 index 58397e8009efb4ce2d6673d40cf6f64233f2d95c..a4d785a60d76cd422bb3090e1e1f8f14e94d1ce4 100644 --- a/entry/src/main/module.json5 +++ b/entry/src/main/module.json5 @@ -65,7 +65,7 @@ "name": "ohos.permission.MANAGE_LOCAL_ACCOUNTS" }, { - "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" + "name": "ohos.permission.GET_BUNDLE_INFO" }, { "name": "ohos.permission.MANAGE_ENTERPRISE_DEVICE_ADMIN"