1c36cf2e9Sopenharmony_ci/* 2c36cf2e9Sopenharmony_ci * Copyright (c) 2023-2023 Huawei Device Co., Ltd. 3c36cf2e9Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c36cf2e9Sopenharmony_ci * you may not use this file except in compliance with the License. 5c36cf2e9Sopenharmony_ci * You may obtain a copy of the License at 6c36cf2e9Sopenharmony_ci * 7c36cf2e9Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c36cf2e9Sopenharmony_ci * 9c36cf2e9Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c36cf2e9Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c36cf2e9Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c36cf2e9Sopenharmony_ci * See the License for the specific language governing permissions and 13c36cf2e9Sopenharmony_ci * limitations under the License. 14c36cf2e9Sopenharmony_ci */ 15c36cf2e9Sopenharmony_ci 16c36cf2e9Sopenharmony_ciimport { PrinterDiscController } from '../../Controller/PrinterDiscController'; 17c36cf2e9Sopenharmony_ciimport { PrintExtensionController } from '../../Controller/PrintExtensionController'; 18c36cf2e9Sopenharmony_ciimport { Log } from '@ohos/common'; 19c36cf2e9Sopenharmony_ciimport { GlobalThisHelper, GlobalThisStorageKey} from '@ohos/common'; 20c36cf2e9Sopenharmony_ci 21c36cf2e9Sopenharmony_ciconst TAG: string = '[PrintAdapter]:'; 22c36cf2e9Sopenharmony_ci 23c36cf2e9Sopenharmony_ciexport default class PrintAdapter { 24c36cf2e9Sopenharmony_ci private mPrinterDiscController?: PrinterDiscController; 25c36cf2e9Sopenharmony_ci private mPrintExtensionController?: PrintExtensionController; 26c36cf2e9Sopenharmony_ci 27c36cf2e9Sopenharmony_ci constructor() { 28c36cf2e9Sopenharmony_ci this.init(); 29c36cf2e9Sopenharmony_ci } 30c36cf2e9Sopenharmony_ci 31c36cf2e9Sopenharmony_ci public static getInstance(): PrintAdapter { 32c36cf2e9Sopenharmony_ci if (GlobalThisHelper.getValue<PrintAdapter>(GlobalThisStorageKey.KEY_PRINT_ADAPTER) !== undefined) { 33c36cf2e9Sopenharmony_ci return GlobalThisHelper.getValue<PrintAdapter>(GlobalThisStorageKey.KEY_PRINT_ADAPTER); 34c36cf2e9Sopenharmony_ci } 35c36cf2e9Sopenharmony_ci return GlobalThisHelper.createValue<PrintAdapter>(new PrintAdapter(), GlobalThisStorageKey.KEY_PRINT_ADAPTER); 36c36cf2e9Sopenharmony_ci } 37c36cf2e9Sopenharmony_ci 38c36cf2e9Sopenharmony_ci init(): void { 39c36cf2e9Sopenharmony_ci Log.info(TAG, 'PrintAdapter init'); 40c36cf2e9Sopenharmony_ci this.mPrinterDiscController = new PrinterDiscController(); 41c36cf2e9Sopenharmony_ci this.mPrinterDiscController.init(); 42c36cf2e9Sopenharmony_ci this.mPrintExtensionController = new PrintExtensionController(); 43c36cf2e9Sopenharmony_ci this.mPrintExtensionController.init(); 44c36cf2e9Sopenharmony_ci } 45c36cf2e9Sopenharmony_ci 46c36cf2e9Sopenharmony_ci public destroy(): void { 47c36cf2e9Sopenharmony_ci Log.info(TAG, 'onDestroy'); 48c36cf2e9Sopenharmony_ci if (this.mPrinterDiscController !== undefined) { 49c36cf2e9Sopenharmony_ci this.mPrinterDiscController.destroy(); 50c36cf2e9Sopenharmony_ci } 51c36cf2e9Sopenharmony_ci } 52c36cf2e9Sopenharmony_ci 53c36cf2e9Sopenharmony_ci /** 54c36cf2e9Sopenharmony_ci * get device discovery controller 55c36cf2e9Sopenharmony_ci * 56c36cf2e9Sopenharmony_ci * @return DeviceDiscController 57c36cf2e9Sopenharmony_ci */ 58c36cf2e9Sopenharmony_ci public getPrinterDiscCtl(): PrinterDiscController | undefined { 59c36cf2e9Sopenharmony_ci return this.mPrinterDiscController; 60c36cf2e9Sopenharmony_ci } 61c36cf2e9Sopenharmony_ci 62c36cf2e9Sopenharmony_ci /** 63c36cf2e9Sopenharmony_ci * get PrintExtension controller 64c36cf2e9Sopenharmony_ci * 65c36cf2e9Sopenharmony_ci * @return PrintExtensionController 66c36cf2e9Sopenharmony_ci */ 67c36cf2e9Sopenharmony_ci public getPrintExtensionCtl(): PrintExtensionController | undefined { 68c36cf2e9Sopenharmony_ci return this.mPrintExtensionController; 69c36cf2e9Sopenharmony_ci } 70c36cf2e9Sopenharmony_ci}