package Ġcom . d mb ary she v . bd . view . groups . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġcom . d mb ary she v . bd . R Ċ import Ġcom . d mb ary she v . bd . model . view _ model . Group VM Ċ import Ġcom . d mb ary she v . bd . utils . dog i Ċ import Ġcom . d mb ary she v . bd . utils . image . load Rounded Image Ċ import Ġcom . d mb ary she v . bd . utils . make Log Tag Ċ import Ġcom . d mb ary she v . bd . utils . set Count ing String Ċ import Ġcom . d mb ary she v . bd . view . common . adapter . I Holder Click Ċ import Ġcom . d mb ary she v . bd . view . common . adapter . Search able Adapter Ċ Ċ class ĠGroups Adapter ( var Ġitems : ĠMutable List < Group VM >, Ġlistener : ĠI Holder Click ) Ġ: ĠSearch able Adapter < Group VM , ĠGroups Adapter . ViewHolder >( items ){ ĊĠĠĠ Ġprivate Ġvar Ġcontext : ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Listener : ĠI Holder Click ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġm Listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . item _ group , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view , Ġm Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdo gi ( TAG , Ġ" on Bind ViewHolder Ġposition Ġ= Ġ$ position ") ĊĠĠĠĠĠĠĠ Ġif Ġ( items . size Ġ<= Ġ 0 ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġitems [ position ] ĊĠĠĠĠĠĠĠ Ġholder . tv Name . text Ġ= Ġitem . name ĊĠĠĠĠĠĠĠ Ġholder . iv Avatar . load Rounded Image ( context !! , Ġitem . photo 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġholder . tv GI ft Counts . text Ġ= Ġitem . gift Counts . set Count ing String ( context Ġ?: Ġreturn , ĠR . plurals . goods _ count ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitems . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Group ( adapter Position : ĠInt ): ĠGroup VM Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitems [ adapter Position ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( view : ĠView , Ġprotected Ġvar Ġlistener : ĠI Holder Click ?) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġiv Avatar : ĠImageView ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġtv Name : ĠTextView ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġtv GI ft Counts : ĠTextView ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv Avatar Ġ= Ġview . findViewById ( R . id . iv _ avatar ) Ġas ĠImageView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Name Ġ= Ġview . findViewById ( R . id . tv _ name ) Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv GI ft Counts Ġ= Ġview . findViewById ( R . id . tv _ gift _ counts ) Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ Ġlistener ?. on Item Click ( adapter Position ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġmake Log Tag ( Groups Adapter :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ