package Ġcom . yal antis . jel ly toolbar . widget Ċ Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . annotation . Drawable Res Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Relative Layout Ċ import Ġcom . yal antis . jel ly toolbar . Constant Ċ import Ġcom . yal antis . jel ly toolbar . R Ċ import Ġcom . yal antis . jel ly toolbar . get Dim en Ċ import Ġcom . yal antis . jel ly toolbar . interpol ator . Bo unce Interpolator Ċ import Ġkotlinx . android . synt hetic . main . layout _ content . view .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġir in agal ata Ġon Ġ 1 1 / 2 3 / 1 6 . Ċ Ġ*/ Ċ class ĠContent Layout Ġ: ĠRelative Layout , ĠJ el ly Widget Ġ{ ĊĊĠĠĠ Ġvar Ġcontent View : ĠView ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . removeAll Views () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . addView ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ@ Drawable Res Ġvar Ġicon Res : ĠInt ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon . setBackground Resource ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ@ Drawable Res Ġvar Ġcancel Icon Res : ĠInt ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel Icon . setBackground Resource ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġvar Ġon Icon ClickListener : ĠOn ClickListener ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon . setOnClickListener ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġinternal Ġvar Ġon Cancel Icon ClickListener : ĠOn ClickListener ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcancel Icon . setOnClickListener ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar ĠstartPosition Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġend Position Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġis Initialized Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġval Ġicon Full Size Ġ= Ġget Dim en ( R . dim en . icon _ full _ size ) ĊĠĠĠ Ġprivate Ġval Ġicon Padding Ġ= Ġget Dim en ( R . dim en . icon _ padding ) ĊĊĠĠĠ Ġconstructor ( context : ĠContext ?) Ġ: Ġthis ( context , Ġnull ) ĊĠĠĠ Ġconstructor ( context : ĠContext ?, Ġattrs : ĠAttributeSet ?) Ġ: Ġthis ( context , Ġattrs , Ġ 0 ) ĊĠĠĠ Ġconstructor ( context : ĠContext ?, Ġattrs : ĠAttributeSet ?, Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( R . layout . layout _ content , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Layout ( changed : ĠBoolean , Ġl : ĠInt , Ġt : ĠInt , Ġr : ĠInt , Ġb : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Layout ( changed , Ġl , Ġt , Ġr , Ġb ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Initialized Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġtranslation X Ġ= Ġwidth . toFloat () Ġ- Ġicon Full Size ĊĠĠĠĠĠĠĠ ĠstartPosition Ġ= Ġwidth . toFloat () Ġ- Ġicon Full Size ĊĠĠĠĠĠĠĠ Ġend Position Ġ= Ġ- height . toFloat () Ġ+ Ġicon Full Size Ġ- Ġicon Padding Ġ* Ġ 0 . 5 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcollapse () Ġ{ ĊĠĠĠĠĠĠĠ ĠValue Animator . of Float ( end Position , ĠstartPosition ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Delay Ġ= Ġ 5 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation X Ġ= Ġend Position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration Ġ= ĠConstant . ANIM ATION _ DURATION Ġ/ Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinterpol ator Ġ= ĠBo unce Interpolator () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Update Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation X Ġ= Ġanimated Value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon . alpha Ġ= Ġ 0 . 5 f Ġ+ Ġ 0 . 5 f Ġ* Ġanimated Fraction ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cancel Icon ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrotation Ġ= Ġ 3 6 0 Ġ* Ġanimated Fraction ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale X Ġ= Ġ 1 Ġ- Ġanimated Fraction ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Y Ġ= Ġ 1 Ġ- Ġanimated Fraction ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalpha Ġ= Ġ 1 Ġ- Ġanimated Fraction ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation X Ġ= Ġend Position Ġ- Ġanimated Value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexpand () Ġ{ ĊĠĠĠĠĠĠĠ ĠValue Animator . of Float ( start Position , Ġend Position ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Delay Ġ= Ġ 5 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation X Ġ= ĠstartPosition ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration Ġ= ĠConstant . ANIM ATION _ DURATION Ġ/ Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinterpol ator Ġ= ĠBo unce Interpolator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cancel Icon ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation X Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalpha Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale X Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Y Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Update Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation X Ġ= Ġanimated Value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon . alpha Ġ= Ġ 1 f Ġ- Ġ 0 . 5 f Ġ* Ġanimated Fraction ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexpand Immediate ly () Ġ{ ĊĠĠĠĠĠĠĠ Ġexpand () ĊĠĠĠ Ġ} Ċ Ċ }