142365ec6Sopenharmony_ci/* 242365ec6Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 342365ec6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 442365ec6Sopenharmony_ci * you may not use this file except in compliance with the License. 542365ec6Sopenharmony_ci * You may obtain a copy of the License at 642365ec6Sopenharmony_ci * 742365ec6Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 842365ec6Sopenharmony_ci * 942365ec6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1042365ec6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1142365ec6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1242365ec6Sopenharmony_ci * See the License for the specific language governing permissions and 1342365ec6Sopenharmony_ci * limitations under the License. 1442365ec6Sopenharmony_ci */ 1542365ec6Sopenharmony_ci 1642365ec6Sopenharmony_ciimport display from '@ohos.display'; 1742365ec6Sopenharmony_ciimport type common from '@ohos.app.ability.common'; 1842365ec6Sopenharmony_ciimport type Want from '@ohos.app.ability.Want'; 1942365ec6Sopenharmony_ciimport type window from '@ohos.window'; 2042365ec6Sopenharmony_ciimport UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession'; 2142365ec6Sopenharmony_ciimport { Log } from './Log'; 2242365ec6Sopenharmony_ci 2342365ec6Sopenharmony_ciexport class GlobalContext { 2442365ec6Sopenharmony_ci private static TAG: string = '[GlobalContext]:'; 2542365ec6Sopenharmony_ci 2642365ec6Sopenharmony_ci private constructor() { 2742365ec6Sopenharmony_ci } 2842365ec6Sopenharmony_ci 2942365ec6Sopenharmony_ci private static instance: GlobalContext; 3042365ec6Sopenharmony_ci private _objects = new Map<string, Object>(); 3142365ec6Sopenharmony_ci private mDisplay: display.Display | undefined = undefined; 3242365ec6Sopenharmony_ci private mCutoutInfo: display.CutoutInfo | undefined = undefined; 3342365ec6Sopenharmony_ci private cameraAbilityContext; 3442365ec6Sopenharmony_ci private cameraAbilityStageContext: common.AbilityStageContext; 3542365ec6Sopenharmony_ci private cameraAbilityWant: Want; 3642365ec6Sopenharmony_ci private cameraNewWant: Want; 3742365ec6Sopenharmony_ci private windowStage: window.WindowStage; 3842365ec6Sopenharmony_ci private cameraWinClass: window.Window; 3942365ec6Sopenharmony_ci private cameraSettingContext: common.UIAbilityContext; 4042365ec6Sopenharmony_ci private cameraWindowStageEvent: window.WindowStageEventType; 4142365ec6Sopenharmony_ci private xComponentController; 4242365ec6Sopenharmony_ci private cameraFormParam; 4342365ec6Sopenharmony_ci private isPicker: boolean = false; 4442365ec6Sopenharmony_ci private cameraUIExtensionContentSession: UIExtensionContentSession; 4542365ec6Sopenharmony_ci private pickerUri: string; 4642365ec6Sopenharmony_ci 4742365ec6Sopenharmony_ci public static get(): GlobalContext { 4842365ec6Sopenharmony_ci if (!Boolean(GlobalContext.instance).valueOf()) { 4942365ec6Sopenharmony_ci GlobalContext.instance = new GlobalContext(); 5042365ec6Sopenharmony_ci } 5142365ec6Sopenharmony_ci return GlobalContext.instance; 5242365ec6Sopenharmony_ci } 5342365ec6Sopenharmony_ci 5442365ec6Sopenharmony_ci getObject(value: string): Object { 5542365ec6Sopenharmony_ci return this._objects.get(value); 5642365ec6Sopenharmony_ci } 5742365ec6Sopenharmony_ci 5842365ec6Sopenharmony_ci getT<T>(value: string): T { 5942365ec6Sopenharmony_ci return this._objects.get(value) as T; 6042365ec6Sopenharmony_ci } 6142365ec6Sopenharmony_ci 6242365ec6Sopenharmony_ci setObject(key: string, objectClass: Object): void { 6342365ec6Sopenharmony_ci this._objects.set(key, objectClass); 6442365ec6Sopenharmony_ci } 6542365ec6Sopenharmony_ci 6642365ec6Sopenharmony_ci apply(value: string): void { 6742365ec6Sopenharmony_ci const func = this._objects.get(value); 6842365ec6Sopenharmony_ci if (func) { 6942365ec6Sopenharmony_ci (func as Function)(); 7042365ec6Sopenharmony_ci } 7142365ec6Sopenharmony_ci } 7242365ec6Sopenharmony_ci 7342365ec6Sopenharmony_ci // 显示实例,在 phone设备上用 display获得的长宽与 State变量中 windowSize一致。 7442365ec6Sopenharmony_ci public getDisplayInfo(): display.Display { 7542365ec6Sopenharmony_ci if (!this.mDisplay) { 7642365ec6Sopenharmony_ci this.mDisplay = display.getDefaultDisplaySync(); 7742365ec6Sopenharmony_ci } 7842365ec6Sopenharmony_ci return this.mDisplay; 7942365ec6Sopenharmony_ci } 8042365ec6Sopenharmony_ci 8142365ec6Sopenharmony_ci public async getCutoutInfo(): Promise<display.CutoutInfo> { 8242365ec6Sopenharmony_ci if (!this.mCutoutInfo) { 8342365ec6Sopenharmony_ci this.mCutoutInfo = await this.getDisplayInfo().getCutoutInfo(); 8442365ec6Sopenharmony_ci } 8542365ec6Sopenharmony_ci return this.mCutoutInfo; 8642365ec6Sopenharmony_ci } 8742365ec6Sopenharmony_ci 8842365ec6Sopenharmony_ci public getCameraAbilityContext() { 8942365ec6Sopenharmony_ci return this.cameraAbilityContext; 9042365ec6Sopenharmony_ci } 9142365ec6Sopenharmony_ci 9242365ec6Sopenharmony_ci public setCameraAbilityContext(context): void { 9342365ec6Sopenharmony_ci this.cameraAbilityContext = context; 9442365ec6Sopenharmony_ci } 9542365ec6Sopenharmony_ci 9642365ec6Sopenharmony_ci public getCameraAbilityWant(): Want { 9742365ec6Sopenharmony_ci return this.cameraAbilityWant; 9842365ec6Sopenharmony_ci } 9942365ec6Sopenharmony_ci 10042365ec6Sopenharmony_ci public setCameraAbilityWant(want: Want): void { 10142365ec6Sopenharmony_ci this.cameraAbilityWant = want; 10242365ec6Sopenharmony_ci } 10342365ec6Sopenharmony_ci 10442365ec6Sopenharmony_ci public getCameraNewWant(): Want { 10542365ec6Sopenharmony_ci return this.cameraNewWant; 10642365ec6Sopenharmony_ci } 10742365ec6Sopenharmony_ci 10842365ec6Sopenharmony_ci public setCameraNewWant(want: Want): void { 10942365ec6Sopenharmony_ci this.cameraNewWant = want; 11042365ec6Sopenharmony_ci } 11142365ec6Sopenharmony_ci 11242365ec6Sopenharmony_ci public getWindowStage(): window.WindowStage { 11342365ec6Sopenharmony_ci return this.windowStage; 11442365ec6Sopenharmony_ci } 11542365ec6Sopenharmony_ci 11642365ec6Sopenharmony_ci public setWindowStage(stage: window.WindowStage): void { 11742365ec6Sopenharmony_ci this.windowStage = stage; 11842365ec6Sopenharmony_ci } 11942365ec6Sopenharmony_ci 12042365ec6Sopenharmony_ci public getCameraAbilityStageContext(): common.AbilityStageContext { 12142365ec6Sopenharmony_ci return this.cameraAbilityStageContext; 12242365ec6Sopenharmony_ci } 12342365ec6Sopenharmony_ci 12442365ec6Sopenharmony_ci public setCameraAbilityStageContext(context: common.AbilityStageContext): void { 12542365ec6Sopenharmony_ci this.cameraAbilityStageContext = context; 12642365ec6Sopenharmony_ci } 12742365ec6Sopenharmony_ci 12842365ec6Sopenharmony_ci public getCameraWinClass(): window.Window { 12942365ec6Sopenharmony_ci return this.cameraWinClass; 13042365ec6Sopenharmony_ci } 13142365ec6Sopenharmony_ci 13242365ec6Sopenharmony_ci public setCameraWinClass(win: window.Window): void { 13342365ec6Sopenharmony_ci this.cameraWinClass = win; 13442365ec6Sopenharmony_ci } 13542365ec6Sopenharmony_ci 13642365ec6Sopenharmony_ci public getCameraSettingContext(): common.UIAbilityContext { 13742365ec6Sopenharmony_ci return this.cameraSettingContext; 13842365ec6Sopenharmony_ci } 13942365ec6Sopenharmony_ci 14042365ec6Sopenharmony_ci public setCameraSettingContext(context: common.UIAbilityContext): void { 14142365ec6Sopenharmony_ci this.cameraSettingContext = context; 14242365ec6Sopenharmony_ci } 14342365ec6Sopenharmony_ci 14442365ec6Sopenharmony_ci public getCameraWindowStageEvent(): window.WindowStageEventType { 14542365ec6Sopenharmony_ci return this.cameraWindowStageEvent; 14642365ec6Sopenharmony_ci } 14742365ec6Sopenharmony_ci 14842365ec6Sopenharmony_ci public setCameraWindowStageEvent(event: window.WindowStageEventType): void { 14942365ec6Sopenharmony_ci this.cameraWindowStageEvent = event; 15042365ec6Sopenharmony_ci } 15142365ec6Sopenharmony_ci 15242365ec6Sopenharmony_ci public getXComponentController() { 15342365ec6Sopenharmony_ci return this.xComponentController; 15442365ec6Sopenharmony_ci } 15542365ec6Sopenharmony_ci 15642365ec6Sopenharmony_ci public setXComponentController(controller): void { 15742365ec6Sopenharmony_ci this.xComponentController = controller; 15842365ec6Sopenharmony_ci } 15942365ec6Sopenharmony_ci 16042365ec6Sopenharmony_ci public getCameraFormParam() { 16142365ec6Sopenharmony_ci return this.cameraFormParam; 16242365ec6Sopenharmony_ci } 16342365ec6Sopenharmony_ci 16442365ec6Sopenharmony_ci public setCameraFormParam(cameraParam): void { 16542365ec6Sopenharmony_ci this.cameraFormParam = cameraParam; 16642365ec6Sopenharmony_ci } 16742365ec6Sopenharmony_ci 16842365ec6Sopenharmony_ci public setIsPicker(isPicker: boolean): void { 16942365ec6Sopenharmony_ci this.isPicker = isPicker; 17042365ec6Sopenharmony_ci } 17142365ec6Sopenharmony_ci 17242365ec6Sopenharmony_ci public getIsPicker(isPicker: boolean): void { 17342365ec6Sopenharmony_ci this.isPicker = isPicker; 17442365ec6Sopenharmony_ci } 17542365ec6Sopenharmony_ci 17642365ec6Sopenharmony_ci public setSession(session: UIExtensionContentSession): void { 17742365ec6Sopenharmony_ci Log.info('setSession' + session) 17842365ec6Sopenharmony_ci this.cameraUIExtensionContentSession = session; 17942365ec6Sopenharmony_ci } 18042365ec6Sopenharmony_ci 18142365ec6Sopenharmony_ci public getSession(): UIExtensionContentSession { 18242365ec6Sopenharmony_ci return this.cameraUIExtensionContentSession; 18342365ec6Sopenharmony_ci } 18442365ec6Sopenharmony_ci 18542365ec6Sopenharmony_ci public setPickerUri(pickerUri: string): void { 18642365ec6Sopenharmony_ci if (pickerUri) { 18742365ec6Sopenharmony_ci this.pickerUri = pickerUri; 18842365ec6Sopenharmony_ci } else { 18942365ec6Sopenharmony_ci this.pickerUri = ''; 19042365ec6Sopenharmony_ci } 19142365ec6Sopenharmony_ci } 19242365ec6Sopenharmony_ci 19342365ec6Sopenharmony_ci public getPickerUri(): string { 19442365ec6Sopenharmony_ci return this.pickerUri; 19542365ec6Sopenharmony_ci } 19642365ec6Sopenharmony_ci}