1/* 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import {Log, AbilityManager, StyleConfiguration} from '@ohos/common' 17import BatteryStyleConfiguration from '../../../../../../features/batterycomponent/src/main/ets/default/common/StyleConfiguration' 18import WifiStyleConfiguration from '../../../../../../features/wificomponent/src/main/ets/default/common/StyleConfiguration' 19import SignalStyleConfiguration from '../../../../../../features/signalcomponent/src/main/ets/default/common/StyleConfiguration' 20import ClockStyleConfiguration from '../../../../../../features/clockcomponent/src/main/ets/default/common/StyleConfiguration'; 21 22const TAG = 'Lock-StatusBar-StyleManager'; 23 24export default class StyleManager { 25 static STANDARD_DISPLAY_WIDTH: number = 1280; 26 static STANDARD_DISPLAY_HEIGHT: number = 800; 27 static maxWidth: number = StyleManager.STANDARD_DISPLAY_WIDTH; 28 29 static setStyle() { 30 try { 31 let dis = AbilityManager.getAbilityData(AbilityManager.ABILITY_NAME_STATUS_BAR, 'dis'); 32 Log.showInfo(TAG, `setStyle, configMaxWidth${JSON.stringify(dis.width)}`) 33 StyleManager.maxWidth = dis.width; 34 } catch (error) { 35 Log.showDebug(TAG, `set status error:` + JSON.stringify(error)); 36 } 37 38 // Common 39 { 40 let style: any = StyleConfiguration.getCommonStyle(); 41 style.statusBarFontSize = StyleManager.calcScaleSizePx(14); 42 style.statusBarMarginLeftRight = StyleManager.calcScaleSizePx(10); 43 Log.showDebug(TAG, `setStyle ${JSON.stringify(style.statusBarFontSize)}, 44 ${JSON.stringify(style.statusBarMarginLeftRight)}`) 45 } 46 47 // Clock 48 { 49 let style: any = ClockStyleConfiguration.getClockComponentStyle(); 50 style.statusBarClockMaxWidth = StyleManager.calcScaleSizePx(37); 51 Log.showDebug(TAG, `statusBarClockMaxWidth ${JSON.stringify(style.statusBarClockMaxWidth)}`) 52 } 53 54 // Battery-Icon 55 { 56 let style: any = BatteryStyleConfiguration.getBatteryComponentStyle(); 57 style.componentGap = StyleManager.calcScaleSizePx(6); 58 } 59 60 // Battery-Pic 61 { 62 let style: any = BatteryStyleConfiguration.getBatteryPicStyle(); 63 style.picGap = StyleManager.calcScaleSizePx(1); 64 style.picBodyWidth = StyleManager.calcScaleSizePx(18.75); 65 style.picBodyHeight = StyleManager.calcScaleSizePx(10.83); 66 style.picBodyPadding = StyleManager.calcScaleSizePx(1); 67 style.picBodyBorderWidth = StyleManager.calcScaleSizePx(1); 68 style.picBorderRadius = StyleManager.calcScaleSizePx(2); 69 style.picHeadBorderRadius = StyleManager.calcScaleSizePx(1); 70 style.picChargingColor = '#00ff21'; 71 style.picLevelLowColor = '#ff0000'; 72 style.picHeadWidth = StyleManager.calcScaleSizePx(1.5); 73 style.picHeadHeight = StyleManager.calcScaleSizePx(5); 74 Log.showDebug(TAG, `picHeadHeight: ${JSON.stringify(style.picHeadHeight)}`) 75 76 } 77 78 // Signal-Icon 79 { 80 let style: any = SignalStyleConfiguration.getSignalComponentStyle(); 81 style.cellularImageWidth = StyleManager.calcScaleSizePx(25); 82 style.cellularImageHeight = StyleManager.calcScaleSizePx(20); 83 style.statusBarSignalTypeFontSize = StyleManager.calcScaleSizePx(7); 84 style.statusBarSignalUnknownFontSize = StyleManager.calcScaleSizePx(12); 85 style.signalTextMaxWeight = StyleManager.calcScaleSizePx(100); 86 style.netSignalTextMaxWidth = StyleManager.calcScaleSizePx(18); 87 } 88 89 90 // Wifi-Icon 91 { 92 let style: any = WifiStyleConfiguration.getStartsBarWifiComponentStyle(); 93 style.statusBarWifiWidth = StyleManager.calcScaleSizePx(20); 94 style.statusBarWifiHeight = StyleManager.calcScaleSizePx(20); 95 Log.showDebug(TAG, `statusBarWifiHeight ${JSON.stringify(style.statusBarWifiHeight)}`) 96 } 97 98 } 99 100 static number2px(n: number): string { 101 return n.toString() + 'px'; 102 } 103 104 static calcScaleSize(n: number): number { 105 return n * StyleManager.maxWidth / StyleManager.STANDARD_DISPLAY_WIDTH; 106 } 107 108 static calcScaleSizePx(n: number): string { 109 return StyleManager.number2px(StyleManager.calcScaleSize(n)); 110 } 111}