package Ġcom . ib ash k imi . wheel . comments Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . paging . Paged ListAdapter Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . ib ash k imi . wheel . R Ċ import Ġcom . ib ash k imi . wheel . core . model . posts . Comment Ċ import Ġcom . ib ash k imi . wheel . core . model . core . Content Ċ import Ġcom . ib ash k imi . wheel . core . relative TimeSpan Ċ import Ġcom . ib ash k imi . wheel . utils . Adapter ItemClickListener ĊĊ Ċ class ĠComment Adapter ( var Ġlistener : ĠAdapter ItemClickListener < Comment >? Ġ= Ġnull ) Ġ: ĊĠĠĠ ĠP aged ListAdapter < Comment , ĠComment ViewHolder >( comment Diff Callback ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠComment ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠComment ViewHolder ( LayoutInflater . from ( parent . context ), Ġparent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠComment ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcomment Ġ= ĠgetItem ( position ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġcomment . user ĊĠĠĠĠĠĠĠ ĠG lide . with ( holder . user Image ). load ( user ?. imageUrl ). placeholder ( R . drawable . ic _ profile _ pic ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . user Image ) ĊĠĠĠĠĠĠĠ Ġholder . name . text Ġ= Ġuser ?. displayName Ġ?: Ġholder . name . context . getString ( R . string . no _ name ) ĊĠĠĠĠĠĠĠ Ġholder . content . text Ġ= Ġwhen Ġ( val Ġcontent Ġ= Ġcomment . content ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠContent . Text Ġ-> Ġcontent . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Unsupported Ġcontent " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . time . text Ġ= Ġcomment . createdAt . relative TimeSpan () ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Item Click ( getItem ( holder . adapter Position ), Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . item View . setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Item Click ( getItem ( holder . adapter Position ), Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcomment Diff Callback Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < Comment >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠComment , Ġnew Item : ĠComment ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item . uid Ġ== Ġnew Item . uid ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠComment , Ġnew Item : ĠComment ) Ġ= Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ