package Ġcom . example . pet ty planet . adapters Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . example . pet ty planet . R Ċ import Ġcom . example . pet ty planet . databinding . Item Post Binding Ċ import Ġcom . example . pet ty planet . models . Saved Posts Ċ Ċ class ĠSaved Posts Recycler Adapter ( private Ġval Ġlistener : ĠSaved Post Clicked ) Ġ: ĊĠĠĠ ĠList Adapter < Saved Posts , ĠSaved Posts Recycler Adapter . Feed ViewHolder >( Feed Diff CallBack ()) Ġ{ ĊĊĊĠĠĠ Ġclass ĠFeed ViewHolder ( val Ġbinding : ĠItem Post Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) ĊĊĠĠĠ Ġprivate Ġclass ĠFeed Diff CallBack Ġ: ĠDiff Util . Item Callback < Saved Posts >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠSaved Posts , Ġnew Item : ĠSaved Posts ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Diff Util Equals ") ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠSaved Posts , Ġnew Item : ĠSaved Posts ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . toString () Ġ== Ġnew Item . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . M ) ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠFeed ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater : ĠLayoutInflater Ġ= Ġparent . context . getSystem Service ( LayoutInflater :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠItem Post Binding . inflate ( in flater , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġview holder Ġ= ĠFeed ViewHolder ( binding ) ĊĠĠĠĠĠĠĠ Ġbinding . root . setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Item Click ( view holder . adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĊ ĊĠĠĠĠĠĠĠ Ġreturn Ġview holder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠFeed ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpost Ġ= ĠgetItem ( position ) ĊĊĠĠĠĠĠĠĠ Ġholder . binding . caption TextView . text Ġ= Ġpost . text ĊĠĠĠĠĠĠĠ Ġholder . binding . username . text Ġ= Ġpost . created By ĊĊĊĠĠĠĠĠĠĠ ĠG lide . with ( holder . binding . root ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( post . Image URL ) Ġ// Ġimage Ġurl ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . img ) Ġ// Ġany Ġplaceholder Ġto Ġload Ġat Ġstart ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . img )// Ġany Ġimage Ġin Ġcase Ġof Ġerror ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ. fit Center () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . binding . imageView ) ĊĊĠĠĠĠĠĠĠ ĠG lide . with ( holder . binding . root ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( post . user Image URL ) Ġ// Ġimage Ġurl ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . use image _ placeholder ) Ġ// Ġany Ġplaceholder Ġto Ġload Ġat Ġstart ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . use image _ placeholder ) Ġ Ġ// Ġany Ġimage Ġin Ġcase Ġof Ġerror ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . binding . profile Image ) ĊĊĊĠĠĠ Ġ} ĊĊ Ċ } Ċ Ċ interface ĠSaved Post Clicked Ġ{ ĊĠĠĠ Ġfun Ġon Item Click ( post : ĠInt ) Ċ }