package Ġcom . dp . github example . activity . contributors Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . paging . Paged ListAdapter Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . dp . github example . R Ċ import Ġcom . dp . github example . db . model . Contributor Info Ċ import Ġcom . dp . github example . util . Circular Image Transformation Ċ import Ġcom . squareup . pic asso . Pic asso Ċ Ċ type alias ĠOn ItemClickListener Ġ= Ġ( v : ĠView ) Ġ-> ĠUnit Ċ Ċ internal Ġclass ĠMy RecyclerView Adapter ( private Ġval Ġon ItemClickListener : ĠOn ItemClickListener ) Ġ: ĊĠĠĠ ĠP aged ListAdapter < Contributor Info , ĠMy RecyclerView Adapter . My ViewHolder >( diff Callback ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠMy ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . contributor _ list _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemClickListener ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠMy ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠMy ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position ) !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠMy ViewHolder ( v : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( v ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcontext Ġ= Ġv . context ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġavatar : ĠImageView Ġ= Ġv . findViewById ( R . id . avatar ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġusername : ĠTextView Ġ= Ġv . findViewById ( R . id . username ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbio : ĠTextView Ġ= Ġv . findViewById ( R . id . bio ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcontributions : ĠTextView Ġ= Ġv . findViewById ( R . id . cont ributions ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrepo Count : ĠTextView Ġ= Ġv . findViewById ( R . id . repo Count ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġfollow ers : ĠTextView Ġ= Ġv . findViewById ( R . id . followers ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( contributor : ĠContributor Info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( contributor . name Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername . text Ġ= Ġcontext . getString ( R . string . username _ with _ name , Ġcontributor . username , Ġcontributor . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername . text Ġ= Ġcontributor . username ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( contributor . bio Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbio . text Ġ= Ġcontributor . bio ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbio . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbio . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontributions . text Ġ= Ġcontext . getString ( R . string . integer _ x , Ġcontributor . cont ributions ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepo Count . text Ġ= Ġcontext . getString ( R . string . integer _ x , Ġcontributor . public Repos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfollow ers . text Ġ= Ġcontext . getString ( R . string . integer _ x , Ġcontributor . followers ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( contributor . avatar Url Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( contributor . avatar Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . tint ed _ ic _ avatar _ placeholder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transform ( Circular Image Transformation ( contributor . avatar Url )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( avatar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavatar . background Ġ= ĠContext Compat . get Drawable ( context , ĠR . drawable . tint ed _ ic _ avatar _ placeholder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdiff Callback Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < Contributor Info >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠContributor Info , Ġnew Item : ĠContributor Info ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠContributor Info , Ġnew Item : ĠContributor Info ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }