package Ġcom . al jon . track loader . ui . tracks Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . al jon . track loader . R Ċ import Ġcom . al jon . track loader . data . entities . Track Ċ import Ġcom . al jon . track loader . databinding . List Track Item Binding ĊĊ Ċ class ĠTrack Adapter ( private Ġval Ġon Item Select Listener : ĠOn Item Select Listener ): ĠList Adapter < Track , ĠTrack Adapter . ViewHolder All Tracks >( Track Diff Util ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder All Tracks Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder All Tracks ( List Track Item Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder All Tracks , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtrack Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġholder . bind ( track ) ĊĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Item Select Listener . onClick ( track , Ġholder . item View . findViewById ( R . id . art work _ image )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder All Tracks ( private Ġval Ġbinding : ĠList Track Item Binding ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( track : ĠTrack ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . track Ġ= Ġtrack ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject ĠTrack Diff Util : ĠDiff Util . Item Callback < Track >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠTrack , Ġnew Item : ĠTrack ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠTrack , Ġnew Item : ĠTrack ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . track Id Ġ== Ġnew Item . track Id ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠOn Item Select Listener ( val Ġclick Listener : Ġ( track : ĠTrack , ĠimageView : ĠImageView ) Ġ-> ĠUnit Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠonClick ( track : ĠTrack , ĠimageView : ĠImageView ) Ġ= Ġclick Listener ( track , ĠimageView ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ