package Ġcom . ag raw als une et . square loader sp ack . loaders Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . view . animation . Animation Ċ import Ġandroid . view . animation . Scale Animation Ċ import Ġcom . ag raw als une et . square loader sp ack . R Ċ import Ġcom . ag raw als une et . square loader sp ack . basic views . Four S quares Base Layout Ċ import Ġcom . ag raw als une et . square loader sp ack . basic views . Loader Contract Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġs une et Ġon Ġ 1 / 4 / 1 8 . Ċ Ġ*/ Ċ open Ġclass ĠZip Z ap Loader Ġ: ĠFour S quares Base Layout , ĠLoader Contract Ġ{ ĊĊĠĠĠ Ġvar Ġfrom Scale : ĠFloat Ġ= Ġ 1 . 0 f ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Initial Scale () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġto Scale : ĠFloat Ġ= Ġ 0 . 8 f ĊĊĠĠĠ Ġprivate Ġvar Ġmain Square Ġ= Ġ 1 ĊĊĠĠĠ Ġprivate Ġvar Ġis S calling Down Ġ= Ġtrue ĊĊĠĠĠ Ġprivate Ġvar Ġscale Anim : ĠScale Animation ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġsquare L enght : ĠInt , Ġfirst Square Color : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecond Square Color : ĠInt , Ġthird Square Color : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġforth Square Color : ĠInt , Ġstart Loading Default : ĠBoolean ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: Ġsuper ( context , Ġsquare L enght , Ġfirst Square Color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsecond Square Color , Ġthird Square Color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforth Square Color , Ġstart Loading Default ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Attributes ( attrs ) ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Attributes ( attrs ) ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init View () ĊĊĠĠĠĠĠĠĠ Ġmain Square Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġset Initial Scale () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Initial Scale () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( from Scale Ġ!= Ġ 0 . 0 f Ġ&& Ġfrom Scale Ġ!= Ġ 1 . 0 f Ġ&& Ġfirst Square Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Square !!. scale X Ġ= Ġfrom Scale ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Square !!. scale Y Ġ= Ġfrom Scale ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsecond Square . scale X Ġ= Ġfrom Scale ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsecond Square . scale Y Ġ= Ġfrom Scale ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthird Square . scale X Ġ= Ġfrom Scale ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthird Square . scale Y Ġ= Ġfrom Scale ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġforth Square . scale X Ġ= Ġfrom Scale ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforth Square . scale Y Ġ= Ġfrom Scale ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Attributes ( attrs : ĠAttributeSet ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġtyped Array Ġ= Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Zip Z ap Loader , Ġ 0 , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġsquare L enght Ġ= Ġtyped Array . get Dimension Pixel Size ( R . style able . Zip Z ap Loader _ zip zap _ square Length , Ġ 1 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġfirst Square Color Ġ= Ġtyped Array . getColor ( R . style able . Zip Z ap Loader _ zip zap _ first Square Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getColor ( R . color . red )) ĊĊĠĠĠĠĠĠĠ Ġsecond Square Color Ġ= Ġtyped Array . getColor ( R . style able . Zip Z ap Loader _ zip zap _ second Square Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getColor ( R . color . green )) ĊĊĠĠĠĠĠĠĠ Ġthird Square Color Ġ= Ġtyped Array . getColor ( R . style able . Zip Z ap Loader _ zip zap _ third Square Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getColor ( R . color . blue )) ĊĊĠĠĠĠĠĠĠ Ġforth Square Color Ġ= Ġtyped Array . getColor ( R . style able . Zip Z ap Loader _ zip zap _ for th Square Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getColor ( R . color . grey )) ĊĊĠĠĠĠĠĠĠ Ġanimation Duration Ġ= Ġtyped Array . getInteger ( R . style able . Zip Z ap Loader _ zip zap _ anim Duration , Ġ 5 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġstart Loading Default Ġ= Ġtyped Array . getBoolean ( R . style able . Zip Z ap Loader _ zip zap _ start Loading Default , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġfrom Scale Ġ= Ġtyped Array . get Float ( R . style able . Zip Z ap Loader _ zip zap _ from Scale , Ġ 1 . 0 f ) ĊĊĠĠĠĠĠĠĠ Ġto Scale Ġ= Ġtyped Array . get Float ( R . style able . Zip Z ap Loader _ zip zap _ to Scale , Ġ 0 . 8 f ) ĊĊĠĠĠĠĠĠĠ Ġtyped Array . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart Loading () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġscale Animation Ġ= Ġget Scale Animation () ĊĊĠĠĠĠĠĠĠ Ġvar Ġtarget View : ĠView Ġ= Ġfirst Square !! ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( main Square ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget View Ġ= Ġfirst Square !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Square Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget View Ġ= Ġsecond Square ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Square Ġ= Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget View Ġ= Ġthird Square ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Square Ġ= Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget View Ġ= Ġforth Square ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Square Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis S calling Down Ġ= Ġ! is S calling Down ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtarget View . start Animation ( scale Animation ) ĊĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Scale Animation (): ĠScale Animation Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscale Anim : ĠScale Animation ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( is S calling Down ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Anim Ġ= ĠScale Animation ( from Scale , Ġto Scale , Ġfrom Scale , Ġto Scale , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation . REL ATIVE _ TO _ SELF , Ġ 0 . 5 f , ĠAnimation . REL ATIVE _ TO _ SELF , Ġ 0 . 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Anim Ġ= ĠScale Animation ( to Scale , Ġfrom Scale , Ġto Scale , Ġfrom Scale , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation . REL ATIVE _ TO _ SELF , Ġ 0 . 5 f , ĠAnimation . REL ATIVE _ TO _ SELF , Ġ 0 . 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġscale Anim . fill After Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġscale Anim . duration Ġ= Ġanimation Duration . to Long () ĊĠĠĠĠĠĠĠ Ġscale Anim . interpol ator Ġ= Ġinterpol ator ĊĊĠĠĠĠĠĠĠ Ġscale Anim . set Animation Listener ( object Ġ: ĠAnimation . Animation Listener Ġ{ ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( p 0 : ĠAnimation ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isLoading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Loading () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( p 0 : ĠAnimation ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( p 0 : ĠAnimation ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġscale Anim ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstop Loading () Ġ{ ĊĊĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( scale Anim Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscale Anim !!. cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscale Anim !!. set Animation Listener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscale Anim Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . remove View ( first Square ) ĊĠĠĠĠĠĠĠ Ġthis . remove View ( second Square ) ĊĠĠĠĠĠĠĠ Ġthis . remove View ( third Square ) ĊĠĠĠĠĠĠĠ Ġthis . remove View ( for th Square ) ĊĊĠĠĠĠĠĠĠ Ġthis . remove View ( top LinearLayout ) ĊĠĠĠĠĠĠĠ Ġthis . remove View ( bottom LinearLayout ) ĊĊĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠ Ġ} Ċ Ċ }