package Ġcom . e zi ke . to ben na . star w ars search . core Ċ Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Typed Array Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . animation . Accel erate De cel erate Interpolator Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . core . view . isVisible Ċ import Ġcom . e zi ke . to ben na . star w ars search . core . databinding . Simple Empty State View Layout Binding Ċ Ċ type alias ĠAction Button ClickListener Ġ= Ġ() Ġ-> ĠUnit Ċ Ċ class ĠEmpty State View Ġ: ĠLinearLayout Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġbinding : ĠSimple Empty State View Layout Binding ĊĊĠĠĠ Ġprivate Ġvar Ġbutton ClickListener : ĠAction Button ClickListener ? Ġ= Ġnull ĊĊĠĠĠ Ġ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 ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġinflater : ĠLayoutInflater Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getSystem Service ( Context . LAYOUT _ IN FL ATER _ SERVICE ) Ġas ĠLayoutInflater ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠSimple Empty State View Layout Binding . inflate ( in flater , Ġthis , Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġval Ġattributes : ĠTyped Array Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Empty State View , Ġ 0 , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġempty State Title : ĠString ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes . getString ( R . style able . Empty State View _ empty State Title Text ) ĊĠĠĠĠĠĠĠ Ġval Ġempty State Image Src : ĠDrawable ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes . get Drawable ( R . style able . Empty State View _ empty State Image Src ) ĊĠĠĠĠĠĠĠ Ġval Ġempty State Caption : ĠString ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes . getString ( R . style able . Empty State View _ empty State Caption Text ) ĊĠĠĠĠĠĠĠ Ġval Ġempty State ButtonText : ĠString ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes . getString ( R . style able . Empty State View _ empty State ButtonText ) ĊĊĠĠĠĠĠĠĠ Ġval Ġempty State Button Visible : ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes . getBoolean ( R . style able . Empty State View _ is Button Visible , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġempty State Title Visible : ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes . getBoolean ( R . style able . Empty State View _ is Title Visible , Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġattributes . recycle () ĊĊĠĠĠĠĠĠĠ ĠsetTitle ( empty State Title ) ĊĊĠĠĠĠĠĠĠ Ġbinding . title . isVisible Ġ= Ġempty State Title Visible ĊĊĠĠĠĠĠĠĠ Ġset Image ( empty State Image Src ) ĊĊĠĠĠĠĠĠĠ Ġset Caption ( empty State Caption ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( empty State ButtonText Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . retry Btn . text Ġ= Ġempty State ButtonText ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . retry Btn . isVisible Ġ= Ġempty State Button Visible ĊĊĠĠĠĠĠĠĠ Ġbinding . retry Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton ClickListener ?. invoke () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġaction Btn Bo unce Anim : ĠObject Animator Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠObject Animator . of Float ( binding . image , Ġ" translation Y ", Ġ 0 f , Ġ 2 5 f , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġaction Btn Bo unce Anim . interpol ator Ġ= ĠAccel erate De cel erate Interpolator () ĊĠĠĠĠĠĠĠ Ġaction Btn Bo unce Anim . duration Ġ= Ġ 3 0 0 0 ĊĠĠĠĠĠĠĠ Ġaction Btn Bo unce Anim . repeat Mode Ġ= ĠValue Animator . RE START ĊĠĠĠĠĠĠĠ Ġaction Btn Bo unce Anim . repeat Count Ġ= ĠValue Animator . INF IN ITE ĊĠĠĠĠĠĠĠ Ġaction Btn Bo unce Anim . start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Image ( empty State Image Src : ĠDrawable ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( empty State Image Src Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image . setImage Drawable ( empty State Image Src ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġis Button Visible : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . retry Btn . isVisible Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Caption ( empty State Caption : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( empty State Caption Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . caption . text Ġ= Ġempty State Caption ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetTitle ( empty State Title : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( empty State Title Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . title . text Ġ= Ġempty State Title ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Retry ( action : ĠAction Button ClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbutton ClickListener Ġ= Ġaction ĊĠĠĠ Ġ} Ċ } Ċ