package Ġcom . dia z ad ri ang . api example Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . PopupMenu Ċ import Ġandroid . widget . TextView Ċ import Ġcom . dia z ad ri ang . api example . models . Github User Ċ import Ġcom . squareup . pic asso . Pic asso Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġdia z ad ri ang Ġon Ġ 7 / 3 1 / 1 7 . Ċ Ġ*/ Ċ class ĠGithub User Adapter ( context : ĠContext , Ġusers : ĠArrayList < Github User >) Ġ: ĠRecyclerView . Adapter < Github User Holder >() Ġ{ ĊĠ Ġprivate Ġval Ġm Users Ġ: ĠArrayList < Github User > Ġ= Ġusers ĊĠ Ġprivate Ġval ĠmContext Ġ: ĠContext Ġ= Ġcontext ĊĊĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġm Users . size ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup ?, Ġview Type : ĠInt ): ĠGithub User Holder Ġ{ ĊĠĠĠ Ġval Ġinfl ated View Ġ= ĠLayoutInflater . from ( parent ?. context ) ĊĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . layout _ user _ item , Ġparent , Ġfalse ) ĊĊĠĠĠ Ġreturn ĠGithub User Holder ( mContext , Ġinfl ated View ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠGithub User Holder ?, Ġposition : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġuser Ġ= Ġm Users [ position ] ĊĠĠĠ Ġholder ?. bind Github User ( user ) ĊĠ Ġ} Ċ } Ċ Ċ class ĠGithub User Holder ( context : ĠContext , ĠitemView : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠ Ġprivate Ġval ĠmContext Ġ: ĠContext Ġ= Ġcontext ĊĠ Ġprivate Ġval Ġm Item Image Ġ: ĠImageView Ġ= ĠitemView . findViewById < ImageView >( R . id . imageView Item Photo ) ĊĠ Ġprivate Ġval Ġm Item Title Ġ: ĠTextView Ġ= ĠitemView . findViewById < TextView >( R . id . textView Item Title ) ĊĠ Ġprivate Ġval Ġm Item Url Ġ: ĠTextView Ġ= ĠitemView . findViewById < TextView >( R . id . textView Item Url ) ĊĠ Ġprivate Ġval Ġm Overflow Ġ: ĠImageView = ĠitemView . findViewById < ImageView >( R . id . overflow ) ĊĊĠ Ġprivate Ġvar Ġm User : ĠGithub User ? Ġ= Ġnull ĊĊĠ Ġfun Ġbind Github User ( user : ĠGithub User ) Ġ{ ĊĠĠĠ Ġm User Ġ= Ġuser ĊĊĠĠĠ ĠPic asso . with ( m Item Image . context ). load ( user . avatar _ url ). into ( m Item Image ) ĊĠĠĠ Ġm Item Title . text Ġ= Ġuser . login ĊĠĠĠ Ġm Item Url . text Ġ= Ġuser . html _ url ĊĊĠĠĠ Ġm Overflow . setOnClickListener Ġ{ Ġview Ġ-> ĊĠĠĠĠĠ Ġshow PopupMenu ( view ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġshow PopupMenu ( view : ĠView ) Ġ{ ĊĠĠĠ Ġval Ġpopup Ġ= ĠPopup Menu ( mContext , Ġview ) ĊĠĠĠ Ġval Ġinflater Ġ= Ġpopup . menu Inflater ĊĠĠĠ Ġinflater . inflate ( R . menu . menu _ user , Ġpopup . menu ) ĊĠĠĠ Ġpopup . setOn MenuItem ClickListener Ġ{ Ġmenu Item Ġ-> ĊĠĠĠĠĠ Ġif Ġ( menuItem ?. itemId Ġ== ĠR . id . action _ view _ details ){ ĊĠĠĠĠĠĠĠ ĠLog . d (" Click ", Ġ" view Ġdetails ") ĊĠĠĠĠĠĠĠ Ġval Ġintent : ĠIntent Ġ= ĠIntent ( mContext , ĠUser Details :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" USER ", Ġm User ?. login ) ĊĠĠĠĠĠĠĠ ĠmContext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġpopup . show () ĊĠ Ġ} Ċ } Ċ