package Ġcom . long le . sof user . presentation . ui Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . Switch Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . long le . sof user . G lide Requests Ċ import Ġcom . long le . sof user . R Ċ import Ġcom . long le . sof user . presentation . vo . User ĊĊ Ċ /** Ċ Ġ* ĠA ĠRecyclerView ĠViewHolder Ġthat Ġdisplays Ġa Ġuser . Ċ Ġ*/ Ċ class ĠUser ViewHolder ( view : ĠView , Ġprivate Ġval Ġg lide : ĠG lide Requests , Ġprivate Ġval Ġbookmark Method : Ġ( Boolean , ĠUser ?) Ġ-> ĠUnit ) Ġ: ĊĠĠĠ ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdisplay _ name : ĠTextView Ġ= Ġview . findViewById ( R . id . display _ name ) ĊĠĠĠ Ġprivate Ġval Ġre putation : ĠTextView Ġ= Ġview . findViewById ( R . id . re putation ) ĊĠĠĠ Ġprivate Ġval Ġthumbnail : ĠImageView Ġ= Ġview . findViewById ( R . id . thumbnail ) ĊĠĠĠ Ġprivate Ġval Ġbook marked : ĠSwitch Ġ= Ġview . findViewById ( R . id . toggle Book marked ) ĊĠĠĠ Ġprivate Ġvar Ġuser : ĠUser ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġbook marked . setOn Checked ChangeListener Ġ{ Ġ_, Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark Method . invoke ( isChecked , Ġuser ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind ( user : ĠUser ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . user Ġ= Ġuser ĊĠĠĠĠĠĠĠ Ġdisplay _ name . text Ġ= Ġuser ?. display _ name Ġ?: Ġ" loading " ĊĠĠĠĠĠĠĠ Ġre putation . text Ġ= Ġ" Re putation :" Ġ+ Ġ( user ?. re putation ?. toString () Ġ?: Ġ" unknown ") ĊĠĠĠĠĠĠĠ Ġbook marked . isChecked Ġ= Ġuser ?. book marked Ġ?: Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( user ?. profile _ image ?. startsWith (" http ") Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthumbnail . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg lide . load ( user . profile _ image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ insert _ photo _ black _ 4 8 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( thumbnail ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthumbnail . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg lide . clear ( thumbnail ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( parent : ĠViewGroup , Ġg lide : ĠG lide Requests , Ġbookmark Method : Ġ( Boolean , ĠUser ?) Ġ-> ĠUnit ): ĠUser ViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . user _ post _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠUser ViewHolder ( view , Ġg lide , Ġbookmark Method ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Score ( item : ĠUser ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġuser Ġ= Ġitem ĊĠĠĠ Ġ} Ċ }