package Ġcom . example . re pol ist . view . issues Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . paging . Paging Data Adapter Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . re pol ist . R Ċ import Ġcom . example . re pol ist . data . model . Repo Issues Model Ċ import Ġkotlinx . android . synt hetic . main . repo _ issue _ items _ list . view .* ĊĊ Ċ class ĠIssue ListAdapter Ġ: ĠP aging Data Adapter < Repo Issues Model , ĠRecyclerView . ViewHolder >( CO MA PRE _ LIST ) Ġ Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepo Item Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġif Ġ( repo Item Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( holder Ġas ĠMy Issues ViewHolder ). bind To ( repo Item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . repo _ issue _ items _ list , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠMy Issues ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠCO MA PRE _ LIST Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < Repo Issues Model >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item : ĠRepo Issues Model , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Item : ĠRepo Issues Model ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ= Ġold Item . id == Ġnew Item . id ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item : ĠRepo Issues Model , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Item : ĠRepo Issues Model ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ= Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠMy Issues ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġrepo Model : ĠRepo Issues Model ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtxt Title Ġ= ĠitemView . txt _ title ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtxt Status Ġ= ĠitemView . txt _ status ĊĠĠĠĠĠĠĠ Ġval Ġresources Ġ= Ġthis . item View . context . resources ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtxt No Issues Ġ= ĠitemView . no _ issues ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind To ( repos List : ĠRepo Issues Model ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( repos List Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Repository List ( repos List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtxt No Issues . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Title . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Status . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtxt No Issues . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġdisplay Repository List ( repo Model : ĠRepo Issues Model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . repo Model Ġ= Ġrepo Model ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Title . text Ġ= Ġrepo Model . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Status . text Ġ= Ġresources . getString ( R . string . str _ issue _ status , Ġrepo Model . state ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }