package Ġxyz . thead ity am ish ra . mus ict unes . ui . adapters Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Async List Differ Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġxyz . thead ity am ish ra . mus ict unes . R Ċ import Ġxyz . thead ity am ish ra . mus ict unes . databinding . Search ListItem Binding Ċ import Ġxyz . thead ity am ish ra . mus ict unes . model . remote . iT unes Model Ċ Ċ class ĠSearch Adapter (): ĠRecyclerView . Adapter < Search Adapter . Search ViewHolder >() Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġbinding : ĠSearch ListItem Binding ĊĊĠĠĠ Ġinner Ġclass ĠSearch ViewHolder ( binding : ĠSearch ListItem Binding ): ĠRecyclerView . ViewHolder ( binding . root ) Ġ{} ĊĊĠĠĠ Ġval Ġdiff Callback Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < iT unes Model . Result >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : Ġi T unes Model . Result , Ġnew Item : Ġi T unes Model . Result ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Item . artist Id Ġ== Ġnew Item . artist Id ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : Ġi T unes Model . Result , Ġnew Item : Ġi T unes Model . Result ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Item . hashCode () Ġ== Ġnew Item . hashCode () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdiffer Ġ= ĠAsync List Differ ( this , Ġdiff Callback ) ĊĊĠĠĠ Ġfun Ġsubmit List ( list : ĠList < iT unes Model . Result >) Ġ= Ġdiffer . submit List ( list ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠSearch ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠSearch ListItem Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn ĠSearch ViewHolder ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSearch ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġdiffer . current List [ position ] ĊĠĠĠĠĠĠĠ Ġval Ġsong Preview Url Ġ= Ġitem . art work Url 1 0 0 ĊĠĠĠĠĠĠĠ ĠG lide . with ( binding . root ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( song Preview Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Crop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ launcher _ foreground ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . song Img ) ĊĠĠĠĠĠĠĠ Ġbinding . artist Name . text Ġ= Ġitem . artist Name ĊĠĠĠĠĠĠĠ Ġbinding . song Name . text Ġ= Ġitem . track Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġdiffer . current List . size ĊĊ Ċ }