package Ġcom . sub g arden . dem oc lient Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġcom . bump tech . glide . Request Manager ĊĊ Ċ class ĠItems Adapter ( ĊĠĠĠ Ġprivate Ġval Ġimage Request Manager : ĠRequest Manager Ċ ) Ġ: ĠList Adapter < Item , ĠItem ViewHolder < Item >>( object Ġ: ĠDiff Util . Item Callback < Item >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠItem , Ġnew Item : ĠItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠItem , Ġnew Item : ĠItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item . uuid Ġ== Ġnew Item . uuid ĊĠĠĠ Ġ} Ċ Ċ }) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( getItem ( position )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠWall paper Item Ġ-> ĠR . layout . image _ item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAudio Item Ġ-> ĠR . layout . audio _ item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠTODO (" Unsupported Ġitem Ġtype ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠItem ViewHolder < Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( view Type , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . image _ item Ġ-> ĠWall paper ViewHolder ( view , Ġimage Request Manager ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . audio _ item Ġ-> ĠAudio ViewHolder ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠTODO (" Unsupported Ġview Ġtype ") ĊĠĠĠĠĠĠĠ Ġ} Ġas ĠItem ViewHolder < Item > ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠItem ViewHolder < Item >, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind To ( getItem ( position )) ĊĠĠĠ Ġ} Ċ } Ċ