5
5
getChargingIcon ,
6
6
dateStringOptions ,
7
7
getChargeCompletionString ,
8
+ getChargingPowerString ,
8
9
sleep ,
9
10
} from './lib/util'
10
11
import { Bluelink , Status } from './lib/bluelink-regions/base'
@@ -281,7 +282,7 @@ export async function createMediumWidget(config: Config, bl: Bluelink) {
281
282
const isPluggedIn = status . status . isPluggedIn
282
283
const batteryPercent = status . status . soc
283
284
const remainingChargingTime = status . status . remainingChargeTimeMins
284
- const chargingKw = status . status . chargingPower > 0 ? ` ${ status . status . chargingPower . toFixed ( 1 ) . toString ( ) } kW` : '-'
285
+ const chargingKw = getChargingPowerString ( status . status . chargingPower )
285
286
const odometer =
286
287
status . car . odometer === undefined
287
288
? status . status . odometer
@@ -413,7 +414,7 @@ export async function createSmallWidget(config: Config, bl: Bluelink) {
413
414
const isPluggedIn = status . status . isPluggedIn
414
415
const batteryPercent = status . status . soc
415
416
const remainingChargingTime = status . status . remainingChargeTimeMins
416
- const chargingKw = status . status . chargingPower > 0 ? ` ${ status . status . chargingPower . toFixed ( 1 ) . toString ( ) } kW` : '-'
417
+ const chargingKw = getChargingPowerString ( status . status . chargingPower )
417
418
const lastSeen = new Date ( status . status . lastRemoteStatusCheck )
418
419
419
420
// Battery Percent Value
@@ -536,15 +537,17 @@ export async function createHomeScreenRectangleWidget(config: Config, bl: Blueli
536
537
537
538
// Battery Percent Value
538
539
const batteryPercentStack = batteryInfoStack . addStack ( )
540
+ batteryPercentStack . centerAlignContent ( )
539
541
batteryPercentStack . addSpacer ( )
540
542
const chargingIcon = getChargingIcon ( isCharging , isPluggedIn , true )
541
543
if ( chargingIcon ) {
542
544
const chargingElement = batteryPercentStack . addImage ( await getTintedIconAsync ( chargingIcon ) )
543
545
chargingElement . tintColor = new Color ( '#ffffff' )
544
546
chargingElement . imageSize = new Size ( 15 , 15 )
547
+ chargingElement . rightAlignImage ( )
545
548
}
546
549
547
- batteryPercentStack . addSpacer ( 5 )
550
+ batteryPercentStack . addSpacer ( 3 )
548
551
const batteryPercentText = batteryPercentStack . addText ( `${ batteryPercent . toString ( ) } %` )
549
552
batteryPercentText . textColor = getBatteryPercentColor ( status . status . soc )
550
553
batteryPercentText . font = Font . boldSystemFont ( 15 )
@@ -553,20 +556,18 @@ export async function createHomeScreenRectangleWidget(config: Config, bl: Blueli
553
556
const chargeComplete = getChargeCompletionString ( lastSeen , remainingChargingTime , 'short' , true )
554
557
const batteryChargingTimeStack = batteryInfoStack . addStack ( )
555
558
556
- // bug in dynamic spacing means we set a small size if lenght of string is > 7
557
- if ( chargeComplete . length > 7 ) {
558
- batteryChargingTimeStack . addSpacer ( 5 )
559
- } else {
559
+ // bug in dynamic spacing means we only set spacing if string is less than 10 characters
560
+ if ( chargeComplete . length < 10 ) {
560
561
batteryChargingTimeStack . addSpacer ( )
561
562
}
562
563
563
564
const chargingTimeIconElement = batteryChargingTimeStack . addImage ( SFSymbol . named ( 'clock.fill' ) . image )
564
565
chargingTimeIconElement . tintColor = new Color ( '#ffffff' )
565
- chargingTimeIconElement . imageSize = new Size ( 15 , 15 )
566
+ chargingTimeIconElement . imageSize = new Size ( 14 , 14 )
566
567
batteryChargingTimeStack . addSpacer ( 3 )
567
568
568
569
const chargingTimeElement = batteryChargingTimeStack . addText ( `${ chargeComplete } ` )
569
- chargingTimeElement . font = Font . mediumSystemFont ( 12 )
570
+ chargingTimeElement . font = Font . mediumMonospacedSystemFont ( 12 )
570
571
chargingTimeElement . textOpacity = 0.9
571
572
chargingTimeElement . textColor = Color . white ( )
572
573
chargingTimeElement . rightAlignText ( )
0 commit comments