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}