From a5f78ad47d5778394e7a1c559865816cbd503dff Mon Sep 17 00:00:00 2001 From: CodingGorit Date: Tue, 6 May 2025 16:19:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BA=9F=E5=BC=83API=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/entryability/EntryAbility.ets | 12 +++++++++--- entry/src/main/ets/view/ShortTermTaskPage.ets | 7 +++---- entry/src/main/ets/viewModel/LongTermTaskModel.ets | 2 +- entry/src/main/ets/viewModel/ShortTermTaskModel.ets | 2 +- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/entry/src/main/ets/entryability/EntryAbility.ets b/entry/src/main/ets/entryability/EntryAbility.ets index 5589fca..d5b9c83 100644 --- a/entry/src/main/ets/entryability/EntryAbility.ets +++ b/entry/src/main/ets/entryability/EntryAbility.ets @@ -22,6 +22,7 @@ const TAG: string = '[EntryAbility]'; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + AppStorage.setOrCreate("context", this.context); hilog.info(0x0000, TAG, 'Ability onCreate'); hilog.info(0x0000, TAG, `want:${JSON.stringify(want)}`); hilog.info(0x0000, TAG, `launchParam:${JSON.stringify(launchParam)}`); @@ -34,12 +35,12 @@ export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage: window.WindowStage): void { // Main window is created, set main page for this ability hilog.info(0x0000, TAG, '%{public}s', 'Ability onWindowStageCreate'); - this.immersionFuc(windowStage); windowStage.loadContent('pages/Index', (err) => { if (err.code) { hilog.error(0x0000, TAG, 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); return; } + this.immersionFuc(windowStage); hilog.info(0x0000, TAG, 'Succeeded in loading the content.'); }); } @@ -64,6 +65,10 @@ export default class EntryAbility extends UIAbility { */ immersionFuc(windowStage: window.WindowStage): void { let windowClass: window.Window = windowStage.getMainWindowSync(); + if (!windowClass) { + return; + } + let SystemBarProperties: window.SystemBarProperties = { statusBarContentColor: '#000000' }; @@ -71,8 +76,9 @@ export default class EntryAbility extends UIAbility { windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR); let area: window.AvoidArea = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM); windowClass.setWindowSystemBarProperties(SystemBarProperties); - AppStorage.setOrCreate('naviIndicatorHeight', px2vp(navigationBarArea.bottomRect.height)); - AppStorage.setOrCreate('statusBarHeight', px2vp(area.topRect.height)); + const context = windowClass.getUIContext(); + AppStorage.setOrCreate('naviIndicatorHeight',context.px2vp(navigationBarArea.bottomRect.height)); + AppStorage.setOrCreate('statusBarHeight', context.px2vp(area.topRect.height)); AppStorage.setOrCreate('windowClass', windowClass); } } \ No newline at end of file diff --git a/entry/src/main/ets/view/ShortTermTaskPage.ets b/entry/src/main/ets/view/ShortTermTaskPage.ets index 7436861..c583d46 100644 --- a/entry/src/main/ets/view/ShortTermTaskPage.ets +++ b/entry/src/main/ets/view/ShortTermTaskPage.ets @@ -14,7 +14,6 @@ */ import { hilog } from '@kit.PerformanceAnalysisKit'; -import { promptAction } from '@kit.ArkUI'; import { ShortTermTaskModel } from '../viewModel/ShortTermTaskModel'; import SuspendTaskUtils from '../utils/SuspendTaskUtils'; @@ -57,11 +56,11 @@ export struct ShortTermTaskPage { .onClick(async () => { try { let delayTime = await SuspendTaskUtils.getRemainingDelayTime(this.shortTermTaskModel.suspendTaskInfo.id); - promptAction.showToast({ + this.getUIContext().getPromptAction().showToast({ message: $r('app.string.remaining_time', delayTime) }); } catch (err) { - promptAction.showToast({ + this.getUIContext().getPromptAction().showToast({ message: $r('app.string.remain_time_fail') }); } @@ -70,7 +69,7 @@ export struct ShortTermTaskPage { .buttonStyles() .onClick(() => { let isCancelSuspendDelay = SuspendTaskUtils.cancelSuspendDelay(this.shortTermTaskModel.suspendTaskInfo.id); - promptAction.showToast({ + this.getUIContext().getPromptAction().showToast({ message: isCancelSuspendDelay ? $r('app.string.cancel_short_success') : $r('app.string.cancel_short_failed') }); diff --git a/entry/src/main/ets/viewModel/LongTermTaskModel.ets b/entry/src/main/ets/viewModel/LongTermTaskModel.ets index 45aaff2..35d9db2 100644 --- a/entry/src/main/ets/viewModel/LongTermTaskModel.ets +++ b/entry/src/main/ets/viewModel/LongTermTaskModel.ets @@ -22,7 +22,7 @@ import { geoLocationManager } from '@kit.LocationKit'; const TAG: string = '[LongTermTaskModel]'; export class LongTermTaskModel { - private context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; + private context: common.UIAbilityContext = AppStorage.get("context") as common.UIAbilityContext; // Apply for location-related permissions requestPermissionsFromUser(): void { diff --git a/entry/src/main/ets/viewModel/ShortTermTaskModel.ets b/entry/src/main/ets/viewModel/ShortTermTaskModel.ets index 42b254a..d434305 100644 --- a/entry/src/main/ets/viewModel/ShortTermTaskModel.ets +++ b/entry/src/main/ets/viewModel/ShortTermTaskModel.ets @@ -22,7 +22,7 @@ const TAG: string = '[ShortTermTaskModel]'; export class ShortTermTaskModel { public suspendTaskInfo: SuspendTaskInfo = { id: 0, delayTime: 0 }; - private context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; + private context: common.UIAbilityContext = AppStorage.get("context") as common.UIAbilityContext; // Apply front - and back-end status monitoring subscribeStateChange() { -- Gitee