/* * Copyright (c) 2021-2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import BundleMgr from "@ohos.bundle.bundleManager"; import Log from "../Log"; import SwitchUserManager from "../SwitchUserManager"; import AbilityManager from "./abilityManager"; const TAG = "BRManager"; interface Resource { bundleName: string; moduleName: string; id: number; } export default class BundleManager { static readonly RESOURCE_MANAGER = 'SystemUi_Resource_Manager'; static getResourceManager() { if(!globalThis[BundleManager.RESOURCE_MANAGER]){ Log.showInfo(TAG, 'init resourceManager'); globalThis[BundleManager.RESOURCE_MANAGER] = AbilityManager.getContext().resourceManager; } return globalThis[BundleManager.RESOURCE_MANAGER]; } static getString(resource: Resource, callback?: Function){ Log.showDebug(TAG, `getString, resource: ${JSON.stringify(resource)}`); if(callback){ BundleManager.getResourceManager().getString(resource).then((value) => { Log.showDebug(TAG, `getString, callback excute`); callback(value) ; }) return; } else { return BundleManager.getResourceManager().getString(resource); } } static getMediaBase64(resource: Resource, callback?: Function){ Log.showDebug(TAG, `getMediaBase64, resource: ${JSON.stringify(resource)}`); if(callback){ BundleManager.getResourceManager().getMediaBase64(resource).then((value) => { Log.showDebug(TAG, `getMediaBase64, callback excute`); callback(value) ; }) return; } else { return BundleManager.getResourceManager().getMediaBase64(resource); } } static async getBundleInfo(tag: string, bundleName: string, getInfo?: any, requestId?: number) { getInfo = getInfo ?? BundleMgr.BundleFlag.GET_BUNDLE_INFO_DEFAULT; let userInfo = { userId: requestId ?? (await SwitchUserManager.getInstance().getCurrentUserInfo()).userId, }; Log.showDebug(TAG, `getBundleInfo from: ${tag}, userId: ${userInfo.userId}`); return await BundleMgr.getBundleInfo(bundleName, getInfo, userInfo.userId); } }