10fbfc30aSopenharmony_ci/** 20fbfc30aSopenharmony_ci * @file Describe the file 30fbfc30aSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 40fbfc30aSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 50fbfc30aSopenharmony_ci * you may not use this file except in compliance with the License. 60fbfc30aSopenharmony_ci * You may obtain a copy of the License at 70fbfc30aSopenharmony_ci * 80fbfc30aSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 90fbfc30aSopenharmony_ci * 100fbfc30aSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 110fbfc30aSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 120fbfc30aSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130fbfc30aSopenharmony_ci * See the License for the specific language governing permissions and 140fbfc30aSopenharmony_ci * limitations under the License. 150fbfc30aSopenharmony_ci */ 160fbfc30aSopenharmony_ci 170fbfc30aSopenharmony_ciimport common from '@ohos.app.ability.common'; 180fbfc30aSopenharmony_ci 190fbfc30aSopenharmony_ciexport class GlobalThis { 200fbfc30aSopenharmony_ci private static ins: GlobalThis; 210fbfc30aSopenharmony_ci UiAbilityContext: common.UIAbilityContext | null = null; 220fbfc30aSopenharmony_ci ExtensionContext: common.ExtensionContext | null = null; 230fbfc30aSopenharmony_ci 240fbfc30aSopenharmony_ci private constructor() { 250fbfc30aSopenharmony_ci } 260fbfc30aSopenharmony_ci 270fbfc30aSopenharmony_ci public static getInstance(): GlobalThis { 280fbfc30aSopenharmony_ci if (!GlobalThis.ins) { 290fbfc30aSopenharmony_ci GlobalThis.ins = new GlobalThis(); 300fbfc30aSopenharmony_ci } 310fbfc30aSopenharmony_ci return GlobalThis.ins; 320fbfc30aSopenharmony_ci } 330fbfc30aSopenharmony_ci 340fbfc30aSopenharmony_ci public static getUiAbilityContext(): common.UIAbilityContext | null { 350fbfc30aSopenharmony_ci return GlobalThis.getInstance().UiAbilityContext; 360fbfc30aSopenharmony_ci } 370fbfc30aSopenharmony_ci 380fbfc30aSopenharmony_ci public static setUiAbilityContext(UiAbilityContext: common.UIAbilityContext): void { 390fbfc30aSopenharmony_ci GlobalThis.getInstance().UiAbilityContext = UiAbilityContext; 400fbfc30aSopenharmony_ci } 410fbfc30aSopenharmony_ci 420fbfc30aSopenharmony_ci public static getExtensionContext(): common.ExtensionContext | null { 430fbfc30aSopenharmony_ci return GlobalThis.getInstance().ExtensionContext; 440fbfc30aSopenharmony_ci } 450fbfc30aSopenharmony_ci 460fbfc30aSopenharmony_ci public static setExtensionContext(ExtensionContext: common.ExtensionContext): void { 470fbfc30aSopenharmony_ci GlobalThis.getInstance().ExtensionContext = ExtensionContext; 480fbfc30aSopenharmony_ci } 490fbfc30aSopenharmony_ci}