package Ġcom . flex so . flex same . ui . wallet Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . animation . Animation Utils Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . flex so . flex same . R Ċ import Ġcom . flex so . flex same . databinding . Wallet Item Binding Ċ import Ġcom . flex so . flex same . models . Office Ċ Ċ class ĠWallet Adapter ( val Ġcontext : ĠContext , Ġval Ġclick Listener : ĠWallet Item Listener ) Ġ: ĠList Adapter < Office , ĠWallet Adapter . ViewHolder >( Wallet Diff CallBack ()) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder . from ( parent ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġset Animations ( holder ) ĊĠĠĠĠĠĠĠ Ġholder . bind ( click Listener , Ġitem ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Animations ( holder : ĠViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= Ġholder . binding ĊĠĠĠĠĠĠĠ Ġbinding . company Txt . animation Ġ= ĠAnimation Utils . load Animation ( context , ĠR . anim . slide _ in _ right ) ĊĠĠĠĠĠĠĠ Ġbinding . street Txt . animation Ġ= ĠAnimation Utils . load Animation ( context , ĠR . anim . slide _ in _ right ) ĊĠĠĠĠĠĠĠ Ġbinding . city Txt . animation Ġ= ĠAnimation Utils . load Animation ( context , ĠR . anim . slide _ in _ right ) ĊĠĠĠĠĠĠĠ Ġbinding . country Txt . animation Ġ= ĠAnimation Utils . load Animation ( context , ĠR . anim . slide _ in _ right ) ĊĠĠĠĠĠĠĠ Ġbinding . key Img . animation Ġ= ĠAnimation Utils . load Animation ( context , ĠR . anim . slide _ in _ right ) ĊĠĠĠĠĠĠĠ Ġbinding . card Container . animation Ġ= ĠAnimation Utils . load Animation ( context , ĠR . anim . slide _ in _ right ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder Ġprivate Ġconstructor ( val Ġbinding : ĠWallet Item Binding ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( click Listener : ĠWallet Item Listener , Ġitem : ĠOffice ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . office Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . click Listener Ġ= Ġclick Listener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . company Txt . text Ġ= Ġitem . company . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . street Txt . text Ġ= Ġitem . street House Number String () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . city Txt . text Ġ= Ġitem . postal Code City () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . country Txt . text Ġ= Ġitem . address . country ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom ( parent : ĠViewGroup ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠWallet Item Binding . inflate ( layout Inflater , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( binding ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠWallet Diff CallBack Ġ: ĠDiff Util . Item Callback < Office >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠOffice , Ġnew Item : ĠOffice ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . office Id Ġ== Ġnew Item . office Id ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠOffice , Ġnew Item : ĠOffice ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }