19b256929Sopenharmony_ci/*
29b256929Sopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
39b256929Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
49b256929Sopenharmony_ci * you may not use this file except in compliance with the License.
59b256929Sopenharmony_ci * You may obtain a copy of the License at
69b256929Sopenharmony_ci *
79b256929Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
89b256929Sopenharmony_ci *
99b256929Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
109b256929Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
119b256929Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
129b256929Sopenharmony_ci * See the License for the specific language governing permissions and
139b256929Sopenharmony_ci * limitations under the License.
149b256929Sopenharmony_ci */
159b256929Sopenharmony_ci
169b256929Sopenharmony_ciimport {Log} from './Log';
179b256929Sopenharmony_ci
189b256929Sopenharmony_ciconst TAG = 'Common-StyleManager';
199b256929Sopenharmony_ci
209b256929Sopenharmony_ciexport class StyleManager {
219b256929Sopenharmony_ci    mAbilityPageName: string = '';
229b256929Sopenharmony_ci
239b256929Sopenharmony_ci    static getInstance(): StyleManager {
249b256929Sopenharmony_ci        if (globalThis.StyleManager == null) {
259b256929Sopenharmony_ci            globalThis.StyleManager = new StyleManager();
269b256929Sopenharmony_ci        }
279b256929Sopenharmony_ci        return globalThis.StyleManager;
289b256929Sopenharmony_ci    }
299b256929Sopenharmony_ci
309b256929Sopenharmony_ci    setAbilityPageName(name: string): void{
319b256929Sopenharmony_ci        Log.showDebug(TAG, `setAbilityPageName, name: ${name}`);
329b256929Sopenharmony_ci        this.mAbilityPageName = name;
339b256929Sopenharmony_ci    }
349b256929Sopenharmony_ci
359b256929Sopenharmony_ci    getStyle(key: string, generateDefaultFunction: Function) {
369b256929Sopenharmony_ci        let newKey = this.mAbilityPageName + '-' + key;
379b256929Sopenharmony_ci        if (!AppStorage.Has(newKey)) {
389b256929Sopenharmony_ci            let defaultStyle = generateDefaultFunction();
399b256929Sopenharmony_ci            AppStorage.SetOrCreate(newKey, defaultStyle);
409b256929Sopenharmony_ci            Log.showDebug(TAG, `Create storageKey of ${newKey}`);
419b256929Sopenharmony_ci        }
429b256929Sopenharmony_ci        return AppStorage.Get(newKey);
439b256929Sopenharmony_ci    }
449b256929Sopenharmony_ci}
459b256929Sopenharmony_ci
469b256929Sopenharmony_ciexport let styleManager = StyleManager.getInstance();