package Ġcom . sudo aj ay . circle loading animation . anim ator Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . sudo aj ay . circle loading animation . Animated Circle Loading View Ċ import Ġcom . sudo aj ay . circle loading animation . component .* Ċ import Ġcom . sudo aj ay . circle loading animation . component . Component View Animation . State Listener Ċ import Ġcom . sudo aj ay . circle loading animation . component . finish . Finished Failure View Ċ import Ġcom . sudo aj ay . circle loading animation . component . finish . Finished Ok View Ċ Ċ /** Ċ Ġ* Ġ@ author Ġj l md Ċ Ġ*/ Ċ class ĠView Animator Ġ: ĠState Listener Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġinitial Center Circle View : ĠInitial Center Circle View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġright Circle View : ĠRight Circle View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġside Arc s View : ĠSide Arc s View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtop Circle Border View : ĠTop Circle Border View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmain Circle View : ĠMain Circle View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfinished Ok View : ĠFinished Ok View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfinished Failure View : ĠFinished Failure View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġpercent Indicator View : ĠPercent Indicator View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfinished State : ĠAnimation State ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġreset Animator Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġanimation Listener : ĠAnimated Circle Loading View . Animation Listener ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġprogress Finished : ĠMutable LiveData < Boolean > Ġ= ĠMutable LiveData () ĊĊĊĠĠĠ Ġfun Ġset Component View Animations ( ĊĠĠĠĠĠĠĠ Ġinitial Center Circle View : ĠInitial Center Circle View ?, ĊĠĠĠĠĠĠĠ Ġright Circle View : ĠRight Circle View ?, Ġside Arc s View : ĠSide Arc s View ?, ĊĠĠĠĠĠĠĠ Ġtop Circle Border View : ĠTop Circle Border View ?, Ġmain Circle View : ĠMain Circle View ?, ĊĠĠĠĠĠĠĠ Ġfinished Ok Circle View : ĠFinished Ok View ?, Ġfinished Failure View : ĠFinished Failure View ?, ĊĠĠĠĠĠĠĠ Ġpercent Indicator View : ĠPercent Indicator View ?, Ġprogress Finished : ĠMutable LiveData < Boolean > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . initial Center Circle View Ġ= Ġinitial Center Circle View ĊĠĠĠĠĠĠĠ Ġthis . right Circle View Ġ= Ġright Circle View ĊĠĠĠĠĠĠĠ Ġthis . side Arc s View Ġ= Ġside Arc s View ĊĠĠĠĠĠĠĠ Ġthis . top Circle Border View Ġ= Ġtop Circle Border View ĊĠĠĠĠĠĠĠ Ġthis . main Circle View Ġ= Ġmain Circle View ĊĠĠĠĠĠĠĠ Ġfinished Ok View Ġ= Ġfinished Ok Circle View ĊĠĠĠĠĠĠĠ Ġthis . finished Failure View Ġ= Ġfinished Failure View ĊĠĠĠĠĠĠĠ Ġthis . percent Indicator View Ġ= Ġpercent Indicator View ĊĠĠĠĠĠĠĠ Ġthis . progress Finished Ġ= Ġprogress Finished ĊĠĠĠĠĠĠĠ Ġinit Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġinitial Center Circle View !!. setState Listener ( this ) ĊĠĠĠĠĠĠĠ Ġright Circle View !!. setState Listener ( this ) ĊĠĠĠĠĠĠĠ Ġside Arc s View !!. setState Listener ( this ) ĊĠĠĠĠĠĠĠ Ġtop Circle Border View !!. setState Listener ( this ) ĊĠĠĠĠĠĠĠ Ġmain Circle View !!. setState Listener ( this ) ĊĠĠĠĠĠĠĠ Ġfinished Ok View !!. setState Listener ( this ) ĊĠĠĠĠĠĠĠ Ġfinished Failure View !!. setState Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart Animator () Ġ{ ĊĠĠĠĠĠĠĠ Ġfinished State Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġinitial Center Circle View !!. show View () ĊĠĠĠĠĠĠĠ Ġinitial Center Circle View !!. start Translate Top Animation () ĊĠĠĠĠĠĠĠ Ġinitial Center Circle View !!. start Scale Animation () ĊĠĠĠĠĠĠĠ Ġright Circle View !!. show View () ĊĠĠĠĠĠĠĠ Ġright Circle View !!. start Secondary Circle Animation () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreset Animator () Ġ{ ĊĠĠĠĠĠĠĠ Ġinitial Center Circle View !!. hide View () ĊĠĠĠĠĠĠĠ Ġright Circle View !!. hide View () ĊĠĠĠĠĠĠĠ Ġside Arc s View !!. hide View () ĊĠĠĠĠĠĠĠ Ġtop Circle Border View !!. hide View () ĊĠĠĠĠĠĠĠ Ġmain Circle View !!. hide View () ĊĠĠĠĠĠĠĠ Ġfinished Ok View !!. hide View () ĊĠĠĠĠĠĠĠ Ġfinished Failure View !!. hide View () ĊĠĠĠĠĠĠĠ Ġreset Animator Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġstart Animator () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfinish Ok () Ġ{ ĊĠĠĠĠĠĠĠ Ġfinished State Ġ= ĠAnimation State . FINISHED _ OK ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfinish Failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġfinished State Ġ= ĠAnimation State . FINISHED _ FAILURE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Animation Listener ( animation Listener : ĠAnimated Circle Loading View . Animation Listener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . animation Listener Ġ= Ġanimation Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon StateChanged ( state : ĠAnimation State ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( reset Animator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreset Animator Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation State . MAIN _ CIR CLE _ TRANSL ATED _ TOP Ġ-> Ġon Main Circle Translated Top () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation State . MAIN _ CIR CLE _ SCAL ED _ DIS AP PE AR Ġ-> Ġon Main Circle Scaled Dis appear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation State . MAIN _ CIR CLE _ FIL LED _ TOP Ġ-> Ġon Main Circle Filled Top () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation State . SIDE _ AR CS _ RE SIZ ED _ TOP Ġ-> Ġon Side Arc s Res ized Top () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation State . MAIN _ CIR CLE _ DR A WN _ TOP Ġ-> Ġon Main Circle Draw n Top () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation State . FINISHED _ OK Ġ-> Ġon Finished ( state ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation State . FINISHED _ FAILURE Ġ-> Ġon Finished ( state ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation State . MAIN _ CIR CLE _ TRANSL ATED _ CENTER Ġ-> Ġon Main Circle Translated Center () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation State . ANIM ATION _ END Ġ-> Ġon Animation End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Main Circle Translated Top () Ġ{ ĊĠĠĠĠĠĠĠ Ġinitial Center Circle View !!. start Translate Bottom Animation () ĊĠĠĠĠĠĠĠ Ġinitial Center Circle View !!. start Scale Dis appear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Main Circle Scaled Dis appear () Ġ{ ĊĠĠĠĠĠĠĠ Ġinitial Center Circle View !!. hide View () ĊĠĠĠĠĠĠĠ Ġside Arc s View !!. show View () ĊĠĠĠĠĠĠĠ Ġside Arc s View !!. start Rotate Animation () ĊĠĠĠĠĠĠĠ Ġside Arc s View !!. start Resize Down Animation () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Side Arc s Res ized Top () Ġ{ ĊĠĠĠĠĠĠĠ Ġtop Circle Border View !!. show View () ĊĠĠĠĠĠĠĠ Ġtop Circle Border View !!. start Draw Circle Animation () ĊĠĠĠĠĠĠĠ Ġside Arc s View !!. hide View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Main Circle Draw n Top () Ġ{ ĊĠĠĠĠĠĠĠ Ġmain Circle View !!. show View () ĊĠĠĠĠĠĠĠ Ġmain Circle View !!. start Fill Circle Animation () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Main Circle Filled Top () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Animation Finished ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon StateChanged ( finished State ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpercent Indicator View !!. start Alpha Animation () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Circle Border View !!. hide View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Circle View !!. hide View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Center Circle View !!. show View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Center Circle View !!. start Translate Bottom Animation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Center Circle View !!. start Scale Dis appear () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġis Animation Finished : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfinished State Ġ!= Ġnull ĊĊĠĠĠ Ġprivate Ġfun Ġon Finished ( state : ĠAnimation State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtop Circle Border View !!. hide View () ĊĠĠĠĠĠĠĠ Ġmain Circle View !!. hide View () ĊĠĠĠĠĠĠĠ Ġfinished State Ġ= Ġstate ĊĠĠĠĠĠĠĠ Ġinitial Center Circle View !!. show View () ĊĠĠĠĠĠĠĠ Ġinitial Center Circle View !!. start Translate Center Animation () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Main Circle Translated Center () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( finished State Ġ=== ĠAnimation State . FINISHED _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinished Ok View !!. show View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinished Ok View !!. start Scale Animation () ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinished Failure View !!. show View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinished Failure View !!. start Scale Animation () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinitial Center Circle View !!. hide View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Animation End () Ġ{ ĊĠĠĠĠĠĠĠ Ġprogress Finished . value Ġ= Ġfinished State Ġ== ĠAnimation State . FINISHED _ OK ĊĠĠĠĠĠĠĠ Ġif Ġ( animation Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsuccess Ġ= Ġfinished State Ġ=== ĠAnimation State . FINISHED _ OK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanimation Listener !!. on Animation End ( success ) ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }