1+
2+ var settings = Object . assign ( {
3+ // default values
4+ showBatPercent : true ,
5+ showTime : true ,
6+
7+
8+ } , require ( "Storage" ) . readJSON ( "chargeAnimSettings.json" , true ) || { } ) ;
9+
10+
111g . setBgColor ( 0 , 0 , 0 ) ;
212g . clear ( ) . flip ( ) ;
313var imgbat = require ( "heatshrink" ) . decompress ( atob ( "nFYhBC/AH4A/AGUeACA22HEo3/G8YrTAC422HBQ2tHBI3/G/43/G/43/G/43/G/43/G/43/G+fTG+vSN+w326Q31GwI3/G9g2WG742CG/43rGwY3yGwg33RKo3bNzQ3bGwo3/G9A2GG942dG/43QGw43uGxA34IKw3VGyY3iG0I3pb8pBRG+wYPG8wYQG/42uG8oZSG/43bDKY3iDKg3cNzI3iRKo3gGyo3/G7A2WG7g2aG/43WGzA3dGzI3/G6fTGzRvcG/43/G/43/G/43/G/43/G/43/G/437HFw2IHFo2KAH4A/AH4Aa" ) ) ;
414var imgbubble = require ( "heatshrink" ) . decompress ( atob ( "i0UhAebgoAFCaYXNBocjAAIWNCYoVHCw4UFIZwqELJQWFKZQVOChYVzABwVaCx7wKCqIWNCg4WMChIXJCZgAnA==" ) ) ;
5-
15+ require ( "Font8x12" ) . add ( Graphics ) ;
16+ var batteryPercentStr = "" ;
617var W = g . getWidth ( ) , H = g . getHeight ( ) ;
718var b2v = ( W != 240 ) ?- 1 :1 ;
819var b2rot = ( W != 240 ) ?Math . PI :0 ;
@@ -12,11 +23,50 @@ for (var i=0;i<10;i++) {
1223 bubbles . push ( { y :Math . random ( ) * H , ly :0 , x :( 0.5 + ( i < 5 ?i :i + 8 ) ) * W / 18 , v :0.6 + Math . random ( ) , s :0.5 + Math . random ( ) } ) ;
1324}
1425
26+ g . setFont ( "Vector" , 22 ) ;
27+ g . setFontAlign ( 0 , 0 ) ;
28+
29+ var clockStr = "" ;
30+ var x = g . getWidth ( ) / 2 ;
31+ var cy = g . getHeight ( ) - ( g . getHeight ( ) / 7 )
32+ var by = g . getHeight ( ) - ( g . getHeight ( ) / 3.500 )
33+
34+
35+ function calculateTime ( ) {
36+
37+ var d = new Date ( ) ;
38+ clockStr = require ( "locale" ) . time ( d , 1 ) ; // Hour and minute
39+ var meridian = require ( "locale" ) . meridian ( d ) ;
40+ if ( meridian != "" ) {
41+ //Meridian active
42+ clockStr = clockStr + " " + meridian ;
43+ }
44+
45+ }
46+ function calculate ( ) {
47+ if ( settings . showTime == true ) {
48+ calculateTime ( ) ;
49+ }
50+ if ( settings . showBatPercent == true ) {
51+ batteryPercentStr = E . getBattery ( ) + "%" ;
52+ }
53+
54+
55+ }
56+
1557function anim ( ) {
1658 /* we don't use any kind of buffering here. Just draw one image
1759 at a time (image contains a background) too, and there is minimal
1860 flicker. */
19- var mx = W / 2.0 , my = H / 2.0 ;
61+ var mx = W / 2.0 ;
62+ var my ;
63+ if ( settings . showBatPercent ) {
64+ var my = H / 2.5 ;
65+ } else {
66+ var my = H / 2.0 ;
67+ }
68+
69+
2070 bubbles . forEach ( f => {
2171 f . y -= f . v * b2v ;
2272 if ( f . y < - 24 )
@@ -26,10 +76,25 @@ function anim() {
2676 g . drawImage ( imgbubble , f . y , f . x , { scale :f . s * b2scale , rotate :b2rot } ) ;
2777 } ) ;
2878 g . drawImage ( imgbat , mx , my , { scale :b2scale , rotate :Math . sin ( getTime ( ) * 2 ) * 0.5 - Math . PI / 2 + b2rot } ) ;
79+ if ( settings . showTime == true ) {
80+ g . drawString ( clockStr , x , cy ) ;
81+ }
82+ if ( settings . showBatPercent == true ) {
83+ g . drawString ( batteryPercentStr , x , by , true ) ;
84+ }
2985 g . flip ( ) ;
86+
87+
88+ }
89+
90+ if ( settings . showBatPercent || settings . showTime ) {
91+ //Eliminate unnesccesary need for calculation
92+ calculate ( ) ;
93+ setInterval ( calculate , 20000 ) ;
3094}
3195
32- setInterval ( anim , 20 ) ;
96+ setInterval ( anim , 22 ) ;
97+
3398
3499Bangle . on ( "charging" , isCharging => {
35100 if ( ! isCharging ) load ( ) ;
0 commit comments