package Ġcom . example . mini _ pro jet . views . adapter Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . text . format . Date Utils Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . swiper ef resh layout . widget . Swipe Refresh Layout Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . example . mini _ pro jet . R Ċ import Ġcom . example . mini _ pro jet . models . Posts Ċ import Ġcom . example . mini _ pro jet . views .* Ċ import Ġkotlinx . android . synt hetic . main . my post frag . view .* Ċ import Ġkotlinx . android . synt hetic . main . post frag . view .* Ċ import Ġretrofit 2 . Response Ċ private Ġlateinit Ġvar Ġm Shared Pref : ĠSharedPreferences Ċ class ĠPost Adapter ( var Ġposts : ĠMutable List < Posts >) Ġ: ĊĊĠĠĠ ĠRecyclerView . Adapter < Post Adapter . Post ViewHolder >() Ġ{ ĊĠĠĠ Ġinner Ġclass ĠPost ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠPost ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview = ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . post frag , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠPost ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠPost ViewHolder , Ġ@ Suppress Lint (" RecyclerView ") Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . item View . apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfilename Ġ: ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Shared Pref Ġ= Ġholder . item View . context . get SharedPreferences ( PRE F _ NAME , ĠAppCompatActivity . MODE _ PRIVATE ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( posts [ position ]. users image ==" No ĠPicture ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusers _ post _ img . setImage Resource ( R . drawable . avatar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" image ", posts [ position ]. users image . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilename Ġ= Ġposts [ position ]. users image ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġ" https :// firebase storage . googleapis . com / v 0 / b / mini - pro jet - 2 e 9 3 4 . app spot . com / o / images % 2 F "+ filename +" ? alt = media " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( users _ post _ img ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġd Ġ= Ġposts [ position ]. createdAt . time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreated at post . setText ( Date Utils . get Relative TimeSpan String ( d , now , ĠDate Utils . SECOND _ IN _ M ILL IS )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusers _ message _ posted . setText ( posts [ position ]. message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// if ( users [ position ]. username . startsWith ( search _ text . text )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġholder . item View . context . startActivity ( intent ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġpublic Ġfun ĠAdd item ( p Ġ: ĠMutable List < Posts >) Ġ{ ĊĠĠĠĠĠĠĠ Ġposts . addAll ( p ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠClean Ġall Ġelements Ġof Ġthe Ġre cycler ĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġposts . clear () ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠAdd Ġa Ġlist Ġof Ġitems Ġ-- Ġchange Ġto Ġtype Ġused ĊĠĠĠ Ġfun Ġadd All ( post List : ĠList < Posts >) Ġ{ ĊĠĠĠĠĠĠĠ Ġposts . addAll ( post List ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġposts . size ĊĠĠĠ Ġ} Ċ Ċ } Ċ