package Ġcom . wil son rc . github users . ui . users Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . wil son rc . github users . R Ċ import Ġcom . wil son rc . github users . data . models . User Ċ import Ġkotlinx . android . synt hetic . main . item _ github _ user . view .* Ċ Ċ class ĠUsers Adapter ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġusers : ĠList < User >, ĊĠĠĠ Ġprivate Ġval Ġuser Options Listener : ĠUser Options Listener Ċ ) Ġ: ĠRecyclerView . Adapter < Users Adapter . Users ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġusers List Ġ= ĠArrayList < User >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . users List Ġ= Ġusers Ġas ĠArrayList < User > ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠUsers ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ github _ user , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent , Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn ĠUsers ViewHolder ( item View ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġusers List . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreplace ( users : ĠList < User >) Ġ{ ĊĠĠĠĠĠĠĠ Ġusers List . clear () ĊĠĠĠĠĠĠĠ Ġusers List . addAll ( users ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Users ( users : ĠList < User >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinit Position Ġ= Ġusers List . size ĊĠĠĠĠĠĠĠ Ġusers List . addAll ( users ) ĊĠĠĠĠĠĠĠ Ġnotify Item Range Inserted ( init Position , Ġusers List . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠUsers ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind User ( users List [ position ], Ġcontext , Ġuser Options Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠUsers ViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind User ( user : ĠUser , Ġcontext : ĠContext ?, Ġuser Options Listener : ĠUser Options Listener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( user ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( context ). load ( avatar Url ). into ( item View . image Avatar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . text UserName . text Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . btn Image Star . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Options Listener . on Favorite Clicked ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }