package Ġcom . sim form . custom bottomnavigation Ċ Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . graphics . drawable . Gradient Drawable Ċ import Ġandroid . graphics . drawable . R ipple Drawable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Log Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroidx . core . view . View Compat Ċ import Ġandroidx . interpol ator . view . animation . Fast Out Slow In Interpolator Ċ import Ġkotlinx . android . extensions . Layout Container Ċ import Ġkotlinx . android . synt hetic . main . custom _ bottom _ navigation _ icon . view .* Ċ Ċ @ Suppress (" unused ") Ċ class ĠCustom Bottom Navigation Icon Ġ: ĠRelative Layout , ĠLayout Container Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEMPTY _ VALUE Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġdefault Icon Color Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv . color Ġ= Ġif Ġ(! isEnabled Cell ) Ġdefault Icon Color Ġelse Ġselected Icon Color ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġselected Icon Color Ġ= ĠColor . parse Color ("# 0 0 C 9 5 7 ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv . color Ġ= Ġif Ġ( isEnabled Cell ) Ġselected Icon Color Ġelse Ġdefault Icon Color ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġcircle Color Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Cell Ġ= Ġis Enabled Cell ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġicon Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv . resource Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġicon Text Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv . text Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġicon TextColor Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! isEnabled Cell ) Ġtv . setTextColor ( icon TextColor ) Ġelse Ġtv . setTextColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Icon TextColor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġselected Icon TextColor Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isEnabled Cell ) Ġtv . setTextColor ( selected Icon TextColor ) Ġelse Ġtv . setTextColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon TextColor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġicon Text Type face : ĠType face ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw Ġ&& Ġfield Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv . type face Ġ= Ġfield ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġicon Text Size Ġ= Ġ 1 0 f ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv . setText Size ( Typed Value . COMPLEX _ UNIT _ PX , Ġfield ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġbadge : ĠInt Ġ= ĠEMPTY _ VALUE ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( badge Ġ== ĠEMPTY _ VALUE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ count . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ count . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ count . text Ġ= Ġbadge . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ count . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġif Ġ( badge Ġ== Ġ 0 ) Ġ 0 . 5 f Ġelse Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ count . scale X Ġ= Ġscale ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ count . scale Y Ġ= Ġscale ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġicon Size Ġ= Ġdip ( context , Ġ 4 8 ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv . size Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv . pivot X Ġ= Ġicon Size Ġ/ Ġ 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv . pivot Y Ġ= Ġicon Size Ġ/ Ġ 2 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcount TextColor Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ count . setTextColor ( field ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcount BackgroundColor Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠGradient Drawable () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd . setColor ( field ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd . shape Ġ= ĠGradient Drawable . O VAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Compat . setBackground ( tv _ count , Ġd ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcount Type face : ĠType face ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw Ġ&& Ġfield Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ count . type face Ġ= Ġfield ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġri pple Color Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( allow Draw ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Cell Ġ= Ġis Enabled Cell ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġis From Left Ġ= Ġfalse ĊĠĠĠ Ġvar Ġduration Ġ= Ġ 0 L ĊĠĠĠ Ġprivate Ġvar Ġprogress Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" TAG ", Ġ" height Ġis Ġ${ container View . layout Params . height } Ġ${ dip ( context , Ġ 1 8 )} ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfl . y Ġ= Ġ( 1 f Ġ- Ġprogress ) Ġ* Ġdip ( context , Ġ 1 8 ) Ġ+ Ġdip ( context , Ġ- 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv . color Ġ= Ġif Ġ( progress Ġ== Ġ 1 f ) Ġselected Icon Color Ġelse Ġicon TextColor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv . setTextColor ( if Ġ( progress Ġ== Ġ 1 f ) Ġselected Icon TextColor Ġelse Ġdefault Icon Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġ( 1 f Ġ- Ġprogress ) Ġ* Ġ(- 0 . 2 f ) Ġ+ Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv . scale X Ġ= Ġscale ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv . scale Y Ġ= Ġscale ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* val Ġd Ġ= ĠGradient Drawable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . setColor ( circle Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . shape Ġ= ĠGradient Drawable . O VAL ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Compat . setBackground ( v _ circle , Ġd ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Compat . set Elevation ( v _ circle , Ġif Ġ( progress Ġ> Ġ 0 . 7 f ) Ġdip f ( context , Ġprogress Ġ* Ġ 4 f ) Ġelse Ġ 0 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġdip ( context , Ġ 2 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv _ circle . x Ġ= Ġ( 1 f Ġ- Ġprogress ) Ġ* Ġ( if Ġ( is From Left ) Ġ- m Ġelse Ġm ) Ġ+ Ġ(( meas ured Width Ġ- Ġdip ( context , Ġ 4 8 )) Ġ/ Ġ 2 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv _ circle . y Ġ= Ġ( 1 f Ġ- Ġprogress ) Ġ* Ġmeasured Height Ġ+ Ġdip ( context , Ġ 6 ) */ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġis Enabled Cell Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠGradient Drawable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . setColor ( circle Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . shape Ġ= ĠGradient Drawable . O VAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! isEnabled Cell ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfl . background Ġ= ĠR ipple Drawable ( Color State List . valueOf ( ripple Color ), Ġnull , Ġd ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfl . run After Delay ( 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfl . set BackgroundColor ( Color . TRANSP ARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠonClick Listener : Ġ() Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfl ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Listener () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġlateinit Ġvar Ġcontainer View : ĠView ĊĠĠĠ Ġprivate Ġvar Ġallow Draw Ġ= Ġfalse ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinitialize View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Attribute From Xml ( context , Ġattrs ) ĊĠĠĠĠĠĠĠ Ġinitialize View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( ĊĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠ Ġattrs , ĊĠĠĠĠĠĠĠ Ġdef Style Attr ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Attribute From Xml ( context , Ġattrs ) ĊĠĠĠĠĠĠĠ Ġinitialize View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UNUSED _ PARAMETER ") ĊĠĠĠ Ġprivate Ġfun Ġset Attribute From Xml ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize View () Ġ{ ĊĠĠĠĠĠĠĠ Ġallow Draw Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġcontainer View Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( R . layout . custom _ bottom _ navigation _ icon , Ġthis ) ĊĠĠĠĠĠĠĠ Ġdraw () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! allow Draw ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĊĠĠĠĠĠĠĠ Ġicon Ġ= Ġicon ĊĠĠĠĠĠĠĠ Ġbadge Ġ= Ġbadge ĊĠĠĠĠĠĠĠ Ġicon Size Ġ= Ġicon Size ĊĠĠĠĠĠĠĠ Ġicon Text Type face Ġ= Ġicon Text Type face ĊĠĠĠĠĠĠĠ Ġicon TextColor Ġ= Ġicon TextColor ĊĠĠĠĠĠĠĠ Ġselected Icon TextColor Ġ= Ġselected Icon TextColor ĊĠĠĠĠĠĠĠ Ġicon Text Size Ġ= Ġicon Text Size ĊĠĠĠĠĠĠĠ Ġcount TextColor Ġ= Ġcount TextColor ĊĠĠĠĠĠĠĠ Ġcount BackgroundColor Ġ= Ġcount BackgroundColor ĊĠĠĠĠĠĠĠ Ġcount Type face Ġ= Ġcount Type face ĊĠĠĠĠĠĠĠ Ġri pple Color Ġ= Ġri pple Color ĊĠĠĠĠĠĠĠ ĠonClick Listener Ġ= ĠonClick Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , Ġheight Measure Spec ) ĊĠĠĠĠĠĠĠ Ġprogress Ġ= Ġprogress ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisable Cell () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isEnabled Cell ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanimate Progress ( false ) ĊĠĠĠĠĠĠĠ Ġis Enabled Cell Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġenable Cell ( is Animate : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! isEnabled Cell ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanimate Progress ( true , Ġis Animate ) ĊĠĠĠĠĠĠĠ Ġis Enabled Cell Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġanimate Progress ( enable Cell : ĠBoolean , Ġis Animate : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġif Ġ( enable Cell ) Ġduration Ġelse Ġ 2 5 0 ĊĠĠĠĠĠĠĠ Ġval Ġanim Ġ= ĠValue Animator . of Float ( 0 f , Ġ 1 f ) ĊĠĠĠĠĠĠĠ Ġanim . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Delay Ġ= Ġif Ġ( enable Cell ) Ġd Ġ/ Ġ 4 Ġelse Ġ 0 L ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration Ġ= Ġif Ġ( is Animate ) Ġd Ġelse Ġ 1 L ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinterpol ator Ġ= ĠFast Out Slow In Interpolator () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Update Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= Ġit . animated Fraction ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Ġ= Ġif Ġ( enable Cell ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 f Ġ- Ġf ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }