/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 . Ġ- ĠLe bo gang ĠB ants ij ang Ċ Ġ* Ċ Ġ* ĠĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* ĠĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . le bo gang . gens ys music . ui . local . adapters Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Async List Differ Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . le bo gang . gens ys music . R Ċ import Ġcom . le bo gang . gens ys music . database . local . models . Artist Ċ import Ġcom . le bo gang . gens ys music . databinding . Item Artist Binding Ċ import Ġcom . le bo gang . gens ys music . ui . utils .* Ċ Ċ class ĠArtist Adapter : RecyclerView . Adapter < Artist Adapter . Holder >() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġasync List Differ Ġ= ĠAsync List Differ ( this , ĠDiff Util Artist ) ĊĠĠĠ Ġlateinit Ġvar Ġimage Loader : ĠImage Loader ĊĠĠĠ Ġlateinit Ġvar Ġitem Options Interface : ĠItem Options Interface ĊĠĠĠ Ġlateinit Ġvar Ġitem Click Interface : ĠItem Click Interface ĊĊĠĠĠ Ġfun ĠsetData ( list : ĠList < Artist >) Ġ= Ġasync List Differ . submit List ( list ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠH older Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġval Ġbind Ġ= ĠItem Artist Binding . inflate ( in flater , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠH older ( bind ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠH older , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġartist Ġ= Ġasync List Differ . current List [ position ] ĊĠĠĠĠĠĠĠ Ġholder . bind . title TextView . text Ġ= Ġartist . getItem Title () ĊĠĠĠĠĠĠĠ Ġholder . bind . count TextView . text Ġ= Ġartist . get Audio Count () ĊĠĠĠĠĠĠĠ Ġholder . bind . duration TextView . text Ġ= Ġartist . getItem Duration () Ġ+ Ġ" Ġ- Ġ" Ġ+ Ġartist . getItem Size () ĊĠĠĠĠĠĠĠ Ġimage Loader . load Image ( artist . getItem Art (), ĠType . AR TI ST , Ġholder . bind . imageView ) ĊĠĠĠĠĠĠĠ Ġif Ġ( artist . getIs Item F avour ite ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind . fav our ite ImageView . setImage Resource ( R . drawable . ic _ mel ting _ heart _ filled _ ios ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind . fav our ite ImageView . setImage Resource ( R . drawable . ic _ mel ting _ heart _ ios ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġasync List Differ . current List . size ĊĊĠĠĠ Ġinner Ġclass ĠH older ( val Ġbind : Item Artist Binding ): RecyclerView . ViewHolder ( bind . root ){ ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind . fav our ite ImageView . setOnClickListener Ġ{ Ġitem Options Interface ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Options Click ( async List Differ . current List [ binding Adapter Position ]) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind . root . setOnClickListener Ġ{ Ġitem Click Interface . on Item Click ( item View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, async List Differ . current List [ binding Adapter Position ], ĠType . AL BU M ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ