package Ġcom . nice . base library . widget Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . os . Count Down Timer Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Log Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . nice . base library . R Ċ import Ġcom . nice . base library . base . ui . Base Loading View Ċ import Ġcom . nice . base library . base . utils . Log Utils Ċ Ċ /** Ċ Ġ* Ġ å¸¦ ä¸ĭè½½ è¿Ľ åº¦ çļĦ åľĨ å½¢ è¿Ľ åº¦ æĿ¡ Ċ Ġ* Ġ@ author ĠJ Plus Ċ Ġ* Ġ@ date Ġ 2 0 1 8 \ 1 \ 1 1 Ċ Ġ*/ Ċ Ċ class ĠBase Circle Progress ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ: ĠBase Loading View ( context , Ġattrs ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLO ADING _ SUCCESS Ġ= Ġ 1 0 0 . 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLO ADING _ FAILED Ġ= Ġ- 2 . 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLO ADING _ NORMAL Ġ= Ġ- 1 . 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLO ADING _ PAUSE Ġ= Ġ- 3 . 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLO ADING _ CANCEL Ġ= Ġ- 4 . 0 ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġprogress Paint : ĠPaint ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcircle Paint : ĠPaint ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtext Paint : ĠPaint ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġm Stroke Width Ġ= Ġ 8 f ĊĠĠĠ Ġprivate Ġval Ġm Half Stroke Width Ġ= Ġm Stroke Width Ġ/ Ġ 2 ĊĠĠĠ Ġprivate Ġval Ġm Radius Ġ= Ġ 4 0 f ĊĠĠĠ Ġprivate Ġvar Ġm Progress Ġ= Ġ- 1 . 0 ĊĊĠĠĠ Ġprivate Ġvar Ġm Rect : ĠRect F ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġm Start Text Ġ= Ġ" åĬłè½½ " ĊĠĠĠ Ġprivate Ġvar Ġm Loading Text Ġ= Ġ" ä¸ĭè½½ ä¸Ń " ĊĠĠĠ Ġprivate Ġvar Ġm Failed Text Ġ= Ġ" ä¸ĭè½½ å¤±è´¥ " ĊĠĠĠ Ġprivate Ġvar Ġm Pause Text Ġ= Ġ" æļĤ åģľ " ĊĠĠĠ Ġprivate Ġvar Ġm Success Text Ġ= Ġ" ä¸ĭè½½ å®ĮæĪĲ " ĊĠĠĠ Ġprivate Ġvar Ġm Cancel Text Ġ= Ġ" åıĸæ¶Ī " ĊĊĠĠĠ Ġprivate Ġvar Ġm Width : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Height : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Center Height : ĠFloat Ġ= Ġ 0 f ĊĊĠĠĠ Ġprivate Ġvar Ġm Show Num Progress Ġ= Ġtrue ĊĠĠĠ Ġprivate Ġvar Ġm Is No Progress Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġvar Ġm Count Timer : ĠCount Down Timer ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Default Angle Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġm Start Angle Ġ= Ġ 0 f ĊĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( context , Ġattrs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Re cycle ") ĊĠĠĠ Ġprivate Ġfun Ġinit ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Array Ġ= Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Base Circle Progress ) ĊĠĠĠĠĠĠĠ Ġval Ġcircle Color Ġ= Ġtype Array . getColor ( R . style able . Base Circle Progress _ circle Color , ĠContext Compat . getColor ( context , ĠR . color . color Grey _ light )) ĊĠĠĠĠĠĠĠ Ġval Ġprogress Color Ġ= Ġtype Array . getColor ( R . style able . Base Circle Progress _ progress Color , ĠContext Compat . getColor ( context , ĠR . color . black )) ĊĠĠĠĠĠĠĠ Ġval Ġtext Size Ġ= Ġtype Array . get Float ( R . style able . Base Circle Progress _ text Size , Ġ 2 1 f ) ĊĠĠĠĠĠĠĠ Ġval ĠtextColor Ġ= Ġtype Array . getColor ( R . style able . Base Circle Progress _ textColor , ĠContext Compat . getColor ( context , ĠR . color . color Grey _ light )) ĊĊĠĠĠĠĠĠĠ Ġm Show Num Progress Ġ= Ġtype Array . getBoolean ( R . style able . Base Circle Progress _ show Num Progress , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġm Is No Progress Ġ= Ġtype Array . getBoolean ( R . style able . Base Circle Progress _ is No Progress , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ// èĥĮæĻ¯ çĶ» ç¬Ķ ĊĠĠĠĠĠĠĠ Ġcircle Paint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġcircle Paint ?. color Ġ= Ġcircle Color ĊĠĠĠĠĠĠĠ Ġcircle Paint ?. is Anti Alias Ġ= Ġtrue Ġ// æĬ Ĺ éĶ ¯ é½ ¿ ĊĠĠĠĠĠĠĠ Ġcircle Paint ?. style Ġ= ĠPaint . Style . ST RO KE Ġ// è®¾ç½® çĶ» ç¬Ķ é£İ æł¼ ä¸º æıı è¾¹ ĊĠĠĠĠĠĠĠ Ġcircle Paint ?. stroke Width Ġ= Ġm Stroke Width Ġ// è®¾ç½® çĶ» ç¬Ķ ç² Ĺ ç»Ĩ ĊĊĠĠĠĠĠĠĠ Ġ// è¿Ľ åº¦ æĿ¡ çĶ» ç¬Ķ ĊĠĠĠĠĠĠĠ Ġprogress Paint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġprogress Paint ?. color Ġ= Ġprogress Color ĊĠĠĠĠĠĠĠ Ġprogress Paint ?. is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġprogress Paint ?. style Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠĠĠĠĠ Ġprogress Paint ?. stroke Width Ġ= Ġm Stroke Width ĊĠĠĠĠĠĠĠ Ġprogress Paint ?. stroke Join Ġ= ĠPaint . Join . ROUND Ġ Ġ// çĶ» ç¬Ķ ç»ĵ åĲĪ å¤Ħ ä¸º åľĨ å¼ § ĊĠĠĠĠĠĠĠ Ġprogress Paint ?. stroke Cap Ġ= ĠPaint . Cap . ROUND Ġ Ġ// çĶ» ç¬Ķ å§ĭ æľ« ç«¯ ï¼Ī çº¿ å¸ ½ ï¼ī æł·å¼ı ä¸º åľĨ å½¢ ĊĊĠĠĠĠĠĠĠ Ġ// æĸĩåŃĹ çĶ» ç¬Ķ ĊĠĠĠĠĠĠĠ Ġtext Paint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġtext Paint ?. color Ġ= ĠtextColor ĊĠĠĠĠĠĠĠ Ġtext Paint ?. is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġtext Paint ?. text Size Ġ= Ġtext Size ĊĠĠĠĠĠĠĠ Ġtext Paint ?. textAlign Ġ= ĠPaint . Align . CENTER ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Is No Progress ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĢĴ è®¡ æĹ¶ ï¼Į ç¬¬ä¸Ģä¸ª åıĤæķ° ä¸º æĢ» æĹ¶ éķ¿ ï¼Į ç¬¬äºĮ ä¸ª ä¸º æ¯ıæ¬¡ æī§è¡Į on Tick çļĦ éĹ´ éļĶ æĹ¶éĹ´ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Count Timer Ġ= Ġobject Ġ: ĠCount Down Timer ( 3 0 0 0 , Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tick ( millis Until Finished : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradio Ġ= Ġmillis Until Finished Ġ/ Ġ 1 5 0 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Start Angle Ġ= Ġm Default Angle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Start Angle Ġ= Ġm Default Angle Ġ+ Ġ( 3 6 0 Ġ- Ġ 3 6 0 Ġ* Ġradio ) Ġ// ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Invalidate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Finish () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Count Timer Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Count Timer ?. start () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éģ¿åħį éķ¿ æĹ¶éĹ´ éĩį ç»ĺ ï¼Į å¯¼èĩ´ çļĦ åĨħåŃĺ æ³ Ħ æ¼ı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Count Timer Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Count Timer ?. cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Count Timer ?. on Finish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Count Timer Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , Ġheight Measure Spec ) ĊĠĠĠĠĠĠĠ Ġm Width Ġ= Ġget Real Size ( width Measure Spec ) ĊĠĠĠĠĠĠĠ Ġm Height Ġ= Ġget Real Size ( height Measure Spec ) ĊĠĠĠĠĠĠĠ Ġset Measured Dimension ( m Width , Ġm Height ) Ġ// åĤ¨ åŃĺ æµĭ éĩı çļĦ å®½åº¦ ĊĠĠĠĠĠĠĠ Ġtext Paint ?. let { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Center Height Ġ= Ġm Height Ġ/ Ġ 2 . 0 f Ġ+ Ġ( it . font Metrics !!. desc ent Ġ- Ġit . font Metrics !!. as cent ) Ġ/ Ġ 2 . 0 f Ġ- Ġit . font Metrics !!. desc ent Ġ// è°ĥæķ´ text å±ħ ä¸Ń æĺ¾ç¤º ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinit Rect F () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! m Is No Progress ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ç»ĺ åĪ¶ å¸¦ è¿Ľ åº¦ çļĦ è¿Ľ åº¦ æĿ¡ ï¼Į éĢļè¿ĩ ä¼łåħ¥ m Progress ä½ľä¸º è¿Ľ åº¦ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw By Progress ( m Progress , Ġcanvas , Ġm Show Num Progress ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ç»ĺ åĪ¶ æĹł è¿Ľ åº¦ çļĦ loading æĿ¡ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw No Progress ( canvas ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġloading æ¨¡å¼ı ĊĠĠĠĠ Ġ* Ġ@ param Ġcanvas ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdraw No Progress ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Rect ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Paint ?. let Ġ{ Ġpaint Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( it , Ġm Start Angle , Ġm Start Angle , Ġfalse , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¸¦ è¿Ľ åº¦ çļĦ æ¨¡å¼ı ĊĠĠĠĠ Ġ* Ġ@ param Ġprogress ĊĠĠĠĠ Ġ* Ġ@ param Ġcanvas ĊĠĠĠĠ Ġ* Ġ@ param Ġis Show Num ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdraw By Progress ( progress : ĠDouble , Ġcanvas : ĠCanvas , Ġis Show Num : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( progress ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLO ADING _ NORMAL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æľª ä¸ĭè½½ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( m Start Text , Ġm Width Ġ/ Ġ 2 . 0 f , Ġm Center Height , Ġtext Paint !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( m Rect !! , Ġ- 9 0 f , Ġ 3 6 0 f , Ġfalse , Ġcircle Paint !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLO ADING _ SUCCESS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸ĭè½½ æĪĲåĬŁ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( m Success Text , Ġm Width Ġ/ Ġ 2 . 0 f , Ġm Center Height , Ġtext Paint !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLO ADING _ FAILED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸ĭè½½ å¤±è´¥ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( m Failed Text , Ġm Width Ġ/ Ġ 2 . 0 f , Ġm Center Height , Ġtext Paint !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLO ADING _ CANCEL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸ĭè½½ åıĸæ¶Ī ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( m Rect !! , Ġ- 9 0 f , Ġ 3 6 0 f , Ġfalse , Ġcircle Paint !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( m Cancel Text , Ġm Width Ġ/ Ġ 2 . 0 f , Ġm Center Height , Ġtext Paint !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸ĭè½½ ä¸Ń ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġangle Ġ= Ġ( progress Ġ/ Ġ 1 0 0 Ġ* Ġ 3 6 0 ). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( m Rect !! , Ġ- 9 0 f , Ġ 3 6 0 f , Ġfalse , Ġcircle Paint !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( m Rect !! , Ġ- 9 0 f , Ġangle , Ġfalse , Ġprogress Paint !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Show Num ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ("$ progress %", Ġm Width Ġ/ Ġ 2 . 0 f , Ġm Center Height , Ġtext Paint !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( m Loading Text , Ġm Width Ġ/ Ġ 2 . 0 f , Ġm Center Height , Ġtext Paint !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ çľŁ å®ŀ å®½ é«ĺ ĊĠĠĠĠ Ġ* Ġ@ param Ġmeasure Spec ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Real Size ( measure Spec : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠInt ĊĠĠĠĠĠĠĠ Ġval Ġmode Ġ= ĠMeasure Spec . get Mode ( measure Spec ) ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= ĠMeasure Spec . getSize ( measure Spec ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġif Ġ( mode Ġ== ĠMeasure Spec . AT _ MO ST Ġ|| Ġmode Ġ== ĠMeasure Spec . UNSPECIFIED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Radius Ġ* Ġ 2 Ġ+ Ġm Stroke Width ). toInt () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĿå§ĭåĮĸ Rect F , çĶ¨äºİ å®ļä¹ī å¼ § çļĦ å½¢ çĬ¶ åĴĮ å¤§å°ı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Rect F () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Rect Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Rect Ġ= ĠRect F () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Size Ġ= Ġ( m Radius Ġ* Ġ 2 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġleft Ġ= Ġ( m Width Ġ- Ġview Size ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtop Ġ= Ġ( m Height Ġ- Ġview Size ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġleft Ġ+ Ġview Size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbottom Ġ= Ġtop Ġ+ Ġview Size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Rect ?. set ( left . toFloat (), Ġtop . toFloat (), Ġright . toFloat (), Ġbottom . toFloat ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsuccess () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Progress Ġ= ĠLO ADING _ SUCCESS ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfailed () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Progress Ġ= ĠLO ADING _ FAILED ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcancel () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Progress Ġ= ĠLO ADING _ CANCEL ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpause () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Progress Ġ= ĠLO ADING _ NORMAL ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸ĭè½½ æĽ´æĸ° ui ĊĠĠĠĠ Ġ* Ġ@ param Ġprogress ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġloading ( progress : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( progress Ġ<= Ġ 1 0 0 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Progress Ġ= Ġprogress ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ