From ffd2821e80fe5c05b873b6415ae5553a6669fc72 Mon Sep 17 00:00:00 2001 From: 26thE <962961353@qq.com> Date: Wed, 25 Jun 2025 15:15:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BA=9F=E5=BC=83=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/liveview/LiveViewExtAbility.ets | 11 ++++------- entry/src/main/ets/liveview/LockScreenPage.ets | 8 +++----- entry/src/main/ets/pages/Index.ets | 2 +- entry/src/main/ets/utils/LiveView.ets | 11 ++++++----- entry/src/main/ets/view/TrafficInfoView.ets | 4 ++-- entry/src/main/ets/view/TrafficView.ets | 8 +++++--- 6 files changed, 21 insertions(+), 23 deletions(-) diff --git a/entry/src/main/ets/liveview/LiveViewExtAbility.ets b/entry/src/main/ets/liveview/LiveViewExtAbility.ets index ed753c1..4f754eb 100644 --- a/entry/src/main/ets/liveview/LiveViewExtAbility.ets +++ b/entry/src/main/ets/liveview/LiveViewExtAbility.ets @@ -60,6 +60,7 @@ export default class LiveViewExtAbility extends LiveViewLockScreenExtensionAbili hilog.error(0x0000, TAG, `updateBreakpoint catch err:`, (error as BusinessError).message); } } + // [End updateBreakPoint] onCreate(_launchParam: AbilityConstant.LaunchParam): void { @@ -83,9 +84,6 @@ export default class LiveViewExtAbility extends LiveViewLockScreenExtensionAbili onSessionCreate(_want: Want, session: UIExtensionContentSession): void { // [StartExclude createLiveView] hilog.info(0x0000, TAG, 'LiveViewLockScreenExtAbility onSessionCreate begin.'); - let param: Record = { - 'session': session - }; // [EndExclude windowSizeListener] // Window size listener. const extensionWindow = session.getUIExtensionWindowProxy(); @@ -94,8 +92,7 @@ export default class LiveViewExtAbility extends LiveViewLockScreenExtensionAbili }); // [End windowSizeListener] // [EndExclude subscribeCommonEvent] - // Create state storage (for cross-page data sharing). - let storage: LocalStorage = new LocalStorage(param); + // Initialize event subscription. let subscribeInfo: commonEventManager.CommonEventSubscribeInfo = { events: ['live_view_lock_screen'], @@ -122,14 +119,14 @@ export default class LiveViewExtAbility extends LiveViewLockScreenExtensionAbili hilog.info(0x0000, TAG, '%{public}s', 'Succeeded in subscribe commonEvent success.'); if (data.parameters) { let laneData = data.parameters['roadData'] as LaneData; - storage.setOrCreate('laneData', laneData); + AppStorage.setOrCreate('laneData', laneData); hilog.info(0x0000, TAG, '%{public}s', 'Succeeded in receive commonEvent.'); } }); }) // [End subscribeCommonEvent] // [EndExclude createLiveView] - session.loadContent('liveview/LockScreenPage', storage); + session.loadContent('liveview/LockScreenPage'); } // [End createLiveView] diff --git a/entry/src/main/ets/liveview/LockScreenPage.ets b/entry/src/main/ets/liveview/LockScreenPage.ets index 76679c6..866d801 100644 --- a/entry/src/main/ets/liveview/LockScreenPage.ets +++ b/entry/src/main/ets/liveview/LockScreenPage.ets @@ -18,14 +18,11 @@ import { LaneData } from '../model/RouteDataModel'; import { BreakpointType } from '../utils/BreakpointUtil'; import { RoadView } from '../view/RoadView'; -let storage: LocalStorage = LocalStorage.getShared(); - -@Entry(storage) -@Component +@Entry struct Index { // [Start layoutBasedOnVerticalBreakpoint] @StorageLink('verticalBreakpoint') verticalBreakpoint: string = Constants.BREAK_POINT_SM; - @LocalStorageProp('laneData') roadInfo: LaneData | undefined = undefined; + @StorageProp('laneData') roadInfo: LaneData | undefined = undefined; build() { Stack({ alignContent: Alignment.Top }) { @@ -43,5 +40,6 @@ struct Index { .width('100%') .height('100%') } + // [End layoutBasedOnVerticalBreakpoint] } \ No newline at end of file diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 1e0e6ca..076f342 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -97,7 +97,7 @@ export struct LiveViewLockScreenPage { }); aboutToAppear(): void { - LiveView.getInstance().createLiveView(); + LiveView.getInstance(this.getUIContext().getHostContext()).createLiveView(); this.customDialogController?.open(); } diff --git a/entry/src/main/ets/utils/LiveView.ets b/entry/src/main/ets/utils/LiveView.ets index 71f183b..fda43bd 100644 --- a/entry/src/main/ets/utils/LiveView.ets +++ b/entry/src/main/ets/utils/LiveView.ets @@ -30,21 +30,21 @@ const TAG: string = '[LiveView]'; export class LiveView { // Singleton pattern implementation private static instance: LiveView; - private context: Context; + private context: Context | undefined; private liveViewController: LiveViewUtil; private updateInterval: number | undefined; // Private constructor for singleton pattern - private constructor() { - this.context = getContext(this); + private constructor(context: Context | undefined) { + this.context = context; this.liveViewController = new LiveViewUtil(); } // Singleton accessor method - public static getInstance(): LiveView { + public static getInstance(context: Context | undefined): LiveView { // Lazy initialization of the singleton instance if (!LiveView.instance) { - LiveView.instance = new LiveView(); + LiveView.instance = new LiveView(context); } return LiveView.instance; } @@ -163,5 +163,6 @@ export class LiveView { `Failed to Operation getWantAgent. code is ${(error as BusinessError).code} message is ${(error as BusinessError).message}`); } } + // [End startContinuousRunningTask] } \ No newline at end of file diff --git a/entry/src/main/ets/view/TrafficInfoView.ets b/entry/src/main/ets/view/TrafficInfoView.ets index 6cccda4..c688693 100644 --- a/entry/src/main/ets/view/TrafficInfoView.ets +++ b/entry/src/main/ets/view/TrafficInfoView.ets @@ -78,7 +78,7 @@ export struct TrafficInfoView { .width('40%') .onClick(() => { this.isShowButton = false; - LiveView.getInstance().createLiveView(); + LiveView.getInstance(this.getUIContext().getHostContext()).createLiveView(); this.getUIContext().getPromptAction().showToast({ message: $r('app.string.toast'), duration: 2000, @@ -94,7 +94,7 @@ export struct TrafficInfoView { .width('40%') .onClick(() => { this.isShowButton = false; - LiveView.getInstance().finishLiveView(); + LiveView.getInstance(this.getUIContext().getHostContext()).finishLiveView(); this.getUIContext().getPromptAction().showToast({ message: $r('app.string.toast'), duration: 2000, diff --git a/entry/src/main/ets/view/TrafficView.ets b/entry/src/main/ets/view/TrafficView.ets index 8a82296..4fb2851 100644 --- a/entry/src/main/ets/view/TrafficView.ets +++ b/entry/src/main/ets/view/TrafficView.ets @@ -23,6 +23,7 @@ export struct TrafficView { @StorageLink('horizontalBreakpoint') horizontalBreakpoint: string = Constants.BREAK_POINT_SM; @StorageLink('verticalBreakpoint') verticalBreakpoint: string = Constants.BREAK_POINT_SM; @Prop lane: number = 2; + private uiContext: UIContext = this.getUIContext(); private updateInterval: number | undefined; aboutToAppear(): void { @@ -204,11 +205,12 @@ export struct TrafficView { $r('sys.float.corner_radius_level16'),).getValue(this.horizontalBreakpoint), }) .padding({ - bottom: new BreakpointType(px2vp(this.bottomRectHeight), 0, 0,).getValue(this.horizontalBreakpoint), + bottom: new BreakpointType(this.uiContext.px2vp(this.bottomRectHeight), 0, + 0,).getValue(this.horizontalBreakpoint), }) .margin({ - bottom: new BreakpointType(0, px2vp(this.bottomRectHeight), - px2vp(this.bottomRectHeight),).getValue(this.horizontalBreakpoint), + bottom: new BreakpointType(0, this.uiContext.px2vp(this.bottomRectHeight), + this.uiContext.px2vp(this.bottomRectHeight),).getValue(this.horizontalBreakpoint), }) } .width('100%') -- Gitee