package Ġcom . ii it nr . social . ui . fragments . home Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Image Button Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġco il . load Ċ import Ġcom . ii it nr . social . R Ċ import Ġcom . ii it nr . social . common . Constants Ċ import Ġcom . ii it nr . social . common . get Formatted Time Ċ import Ġcom . ii it nr . social . common . get Media Url Ċ import Ġcom . ii it nr . social . data . post . Post Ċ import Ġcom . ii it nr . social . data . post . Post Dto Ċ import Ġcom . ii it nr . social . data . profile . Profile Ċ Ċ class ĠPosts Recycler Adapter Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Posts Recycler Adapter . Post ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġposts Ġ= Ġmutable ListOf < Post >() ĊĠĠĠ Ġprivate Ġval Ġusers Map Ġ= Ġmutable Map Of < String , ĠProfile >() ĊĊĠĠĠ Ġfun Ġload Data ( post : ĠList < Post >? Ġ= Ġnull , Ġusers Map : ĠMap < String , ĠProfile >? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpost ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . posts . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . posts . addAll ( post ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġusers Map ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . users Map . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . users Map . put All ( users Map ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠPost ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprofile Photo : ĠImageView Ġ= ĠitemView . findViewById ( R . id . profile _ photo ) ĊĠĠĠĠĠĠĠ Ġval ĠuserName : ĠTextView Ġ= ĠitemView . findViewById ( R . id . user _ name ) ĊĠĠĠĠĠĠĠ Ġval Ġpost TimeStamp : ĠTextView Ġ= ĠitemView . findViewById ( R . id . post _ timestamp ) ĊĠĠĠĠĠĠĠ Ġval Ġoptions : ĠImage Button Ġ= ĠitemView . findViewById ( R . id . options ) ĊĠĠĠĠĠĠĠ Ġval Ġcapt ions : ĠTextView Ġ= ĠitemView . findViewById ( R . id . capt ions ) ĊĠĠĠĠĠĠĠ Ġval Ġpost Image : ĠImageView Ġ= ĠitemView . findViewById ( R . id . post _ image ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠPost ViewHolder Ġ= ĊĠĠĠĠĠĠĠ ĠPost ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . layout _ post _ card , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠPost ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpost Ġ= Ġposts [ position ] ĊĠĠĠĠĠĠĠ Ġholder . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Image . load ( get Media Url ( post . media [ 0 ])) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcapt ions . text Ġ= Ġpost . caption ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost TimeStamp . text Ġ= Ġget Formatted Time ( post . updatedAt ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserName . text Ġ= Ġpost . userName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Photo . load ( post . profile Photo ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġposts . size Ċ }