package Ġcom . mx . video . views Ċ Ċ import Ġandroid . content . Broadcast Receiver Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroid . os . Battery Manager Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . widget . ImageView Ċ import Ġcom . mx . video . R Ċ import Ġcom . mx . video . utils . MX Utils Ċ Ċ class ĠMX Battery ImageView Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠImageView ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlevel Image Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠ ĠR . drawable . mx _ icon _ battery _ v 1 , ĊĠĠĠĠĠĠĠ ĠR . drawable . mx _ icon _ battery _ v 2 , ĊĠĠĠĠĠĠĠ ĠR . drawable . mx _ icon _ battery _ v 3 , ĊĠĠĠĠĠĠĠ ĠR . drawable . mx _ icon _ battery _ v 4 , ĊĠĠĠĠĠĠĠ ĠR . drawable . mx _ icon _ battery _ v 5 , ĊĠĠĠĠĠĠĠ ĠR . drawable . mx _ icon _ battery _ charge ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset Image Resource ( level Image [ 3 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġbattery Receiver Ġ= Ġobject Ġ: ĠBroadcast Receiver () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext , Ġintent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġintent . action ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Intent . ACTION _ B ATTER Y _ CHANGED Ġ== Ġaction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlevel Ġ= Ġintent . getInt Extra (" level ", Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġintent . getInt Extra (" scale ", Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= Ġintent . getInt Extra (" status ", ĠB attery Manager . B ATTER Y _ STATUS _ UNKNOWN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpercent Ġ= Ġ( level . toDouble () Ġ/ Ġscale ) Ġ* Ġ 1 0 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Ch arging Ġ= Ġ( status Ġ== ĠB attery Manager . B ATTER Y _ STATUS _ CHAR GING ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Level ( percent . toInt (), Ġis Ch arging ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attached To Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attached To Window () ĊĠĠĠĠĠĠĠ Ġcontext . register Receiver ( battery Receiver , ĠIntent Filter ( Intent . ACTION _ B ATTER Y _ CHANGED )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġrelease () ĊĠĠĠĠĠĠĠ Ġsuper . on Detached From Window () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Level ( percent : ĠInt , Ġis Ch arging : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimg Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Ch arging Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . mx _ icon _ battery _ charge ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpercent Ġin Ġ 0 .. 1 5 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . mx _ icon _ battery _ v 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpercent Ġin Ġ 1 5 .. 4 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . mx _ icon _ battery _ v 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpercent Ġin Ġ 4 0 .. 6 5 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . mx _ icon _ battery _ v 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpercent Ġin Ġ 6 5 .. 9 5 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . mx _ icon _ battery _ v 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . mx _ icon _ battery _ v 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Image Resource ( img ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrelease () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . unregister Receiver ( battery Receiver ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }