package Ġcom . luc id soft works ll c . s abot community . adapters Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget .* Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . luc id soft works ll c . s abot community . others . Constants Ċ import Ġcom . luc id soft works ll c . s abot community . R Ċ import Ġcom . luc id soft works ll c . s abot community . ret rofit . User Ċ import Ġde . hd od enh of . circle image view . Circle ImageView Ċ import Ġjava . util .* Ċ Ċ class ĠNew Group Message User Adapter ( private Ġval Ġusers : ĠMutable List < User >, Ġcontext : ĠContext , Ġcallback : ĠAdapter Callback ) Ġ: ĠRecyclerView . Adapter < New Group Message User Adapter . Search ViewHolder >(), ĠFilter able Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġusers Full : ĠMutable List < User >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext ĊĠĠĠ Ġprivate Ġval Ġm Adapter Callback : ĠAdapter Callback ĊĊĠĠĠ Ġinterface ĠAdapter Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon New Group Method Callback ( user _ id : ĠString ?, Ġprofile _ pic : ĠString ?, Ġnickname : ĠString ?, Ġusername : ĠString ?, Ġverified : ĠString ?, Ġonline : ĠString ?) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠSearch ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . layout _ user _ list item _ group , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠSearch ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSearch ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġusers [ position ] ĊĠĠĠĠĠĠĠ Ġval Ġuser At Ġ= Ġ"@ " Ġ+ Ġuser . name ĊĠĠĠĠĠĠĠ Ġholder . username . text Ġ= Ġuser At ĊĠĠĠĠĠĠĠ Ġholder . nickname . text Ġ= Ġuser . sub name ĊĠĠĠĠĠĠĠ Ġholder . num Posts . text Ġ= Ġuser . extra ĊĠĠĠĠĠĠĠ Ġholder . num Ratings . text Ġ= Ġuser . num ratings ĊĠĠĠĠĠĠĠ Ġval Ġprofile Pic Ġ= Ġuser . image !!. substring ( 0 , Ġuser . image . length Ġ- Ġ 4 ) Ġ+ Ġ"_ r . JPG " ĊĠĠĠĠĠĠĠ ĠG lide . with ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( Constants . BASE _ URL Ġ+ Ġprofile Pic ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . profile Pic ) ĊĠĠĠĠĠĠĠ Ġif Ġ( user . type Ġ== Ġ" users ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user . verified Ġ== Ġ" yes ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . verified . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user . last _ Online Ġ== Ġ" yes ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . online . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( user . type Ġ== Ġ" public s _ cat ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . user List Layout . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . tv Total Posts . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . accept Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . accept Btn . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter Callback . on New Group Method Callback ( user . id , Ġuser . image , Ġuser . sub name , Ġuser . name , Ġuser . verified , Ġuser . last _ Online ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/* holder . user List Layout . setOnClickListener ( new ĠView . OnClickListener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Override ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġvoid ĠonClick ( View Ġv ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( context Ġinstanceof ĠChat Activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ/* if ( user . getType (). equals (" users ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Put Ġthe Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMessage Fragment Ġl df Ġ= Ġnew ĠMessage Fragment (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBundle Ġargs Ġ= Ġnew ĠBundle (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString (" user _ to ", Ġuser . getName ()); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString (" profile _ pic ", Ġuser . getImage ()); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString (" nickname ", Ġuser . getSub name ()); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl df . set Arguments ( args ); ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Inf late Ġthe Ġfragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( Fragment Activity ) Ġcontext ). get Support FragmentManager (). beginTransaction (). replace ( R . id . chat _ fragment _ container , Ġl df ). addTo Back Stack ( null ). commit (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Toast . makeText ( context , Ġ" You Ġclicked Ġ" Ġ+ Ġuser . getId (), ĠToast . LENGTH _ LONG ). show (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}*/ ĊĠĠĠĠĠĠĠ Ġ/* ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}} ĊĠĠĠĠĠĠĠ Ġ}); */ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġusers . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Filter (): ĠFilter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġuser Filter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġuser Filter : ĠFilter Ġ= Ġobject Ġ: ĠFilter () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġperform Filtering ( constraint : ĠCharSequence ): ĠFilter Results Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilter edList : ĠMutable List < User > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( constraint . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter edList . addAll ( users Full !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilter Pattern Ġ= Ġconstraint . toString (). toLowerCase ( Locale . ROOT ). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( user Ġin Ġusers Full !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user . name !!. toLowerCase ( Locale . ROOT ). contains ( filter Pattern )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter edList . add ( user ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresults Ġ= ĠFilter Results () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults . values Ġ= Ġfilter edList ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresults ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġpublish Results ( constraint : ĠCharSequence , Ġresults : ĠFilter Results ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusers . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusers . addAll ( results . values Ġas ĠCollection < User >) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠSearch ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġusername : ĠTextView Ġ= ĠitemView . findViewById ( R . id . Search username ) ĊĠĠĠĠĠĠĠ Ġvar Ġnickname : ĠTextView Ġ= ĠitemView . findViewById ( R . id . Search nickname ) ĊĠĠĠĠĠĠĠ Ġvar Ġnum Posts : ĠTextView Ġ= ĠitemView . findViewById ( R . id . textView Num Public s Posts ) ĊĠĠĠĠĠĠĠ Ġvar Ġnum Ratings : ĠTextView Ġ= ĠitemView . findViewById ( R . id . review Count ) ĊĠĠĠĠĠĠĠ Ġvar Ġprofile Pic : ĠCircle ImageView Ġ= ĠitemView . findViewById ( R . id . profile _ image ) ĊĠĠĠĠĠĠĠ Ġvar Ġonline : ĠCircle ImageView Ġ= ĠitemView . findViewById ( R . id . online ) ĊĠĠĠĠĠĠĠ Ġvar Ġverified : ĠCircle ImageView Ġ= ĠitemView . findViewById ( R . id . verified ) ĊĠĠĠĠĠĠĠ Ġvar Ġuser List Layout : ĠRelative Layout Ġ= ĠitemView . findViewById ( R . id . user List Layout ) ĊĠĠĠĠĠĠĠ Ġvar Ġpublic s Topic Layout : ĠRelative Layout Ġ= ĠitemView . findViewById ( R . id . public s Topic List ) ĊĠĠĠĠĠĠĠ Ġvar Ġtv Total Posts : ĠRelative Layout Ġ= ĠitemView . findViewById ( R . id . tv Total Posts ) ĊĠĠĠĠĠĠĠ Ġvar Ġaccept Btn : ĠButton Ġ= ĠitemView . findViewById ( R . id . accept Btn ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġusers Full Ġ= ĠArrayList ( users ) ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġm Adapter Callback Ġ= Ġcallback ĊĠĠĠ Ġ} Ċ }